File tree Expand file tree Collapse file tree 2 files changed +18
-31
lines changed
Expand file tree Collapse file tree 2 files changed +18
-31
lines changed Original file line number Diff line number Diff line change @@ -2,15 +2,23 @@ module Grape
22 class Cookies
33
44 def initialize
5- @send = true
65 @cookies = { }
76 @send_cookies = { }
87 end
98
10- def without_send
11- @send = false
12- yield self if block_given?
13- @send = true
9+ def read ( request )
10+ request . cookies . each do |name , value |
11+ @cookies [ name . to_sym ] = value
12+ end
13+ end
14+
15+ def write ( header )
16+ @cookies . select { |key , value |
17+ @send_cookies [ key . to_sym ] == true
18+ } . each { |name , value |
19+ Rack ::Utils . set_cookie_header! (
20+ header , name , value . instance_of? ( Hash ) ? value : { :value => value } )
21+ }
1422 end
1523
1624 def []( name )
@@ -19,17 +27,11 @@ def [](name)
1927
2028 def []=( name , value )
2129 @cookies [ name . to_sym ] = value
22- @send_cookies [ name . to_sym ] = true if @send
30+ @send_cookies [ name . to_sym ] = true
2331 end
2432
25- def each ( opt = nil , &block )
26- if opt == :to_send
27- @cookies . select { |key , value |
28- @send_cookies [ key . to_sym ] == true
29- } . each ( &block )
30- else
31- @cookies . each ( &block )
32- end
33+ def each ( &block )
34+ @cookies . each ( &block )
3335 end
3436
3537 def delete ( name )
Original file line number Diff line number Diff line change @@ -138,13 +138,13 @@ def call(env)
138138 @header = { }
139139 @request = Rack ::Request . new ( @env )
140140
141- get_cookies
141+ cookies . read ( @request )
142142
143143 run_filters self . class . options [ :befores ]
144144 response_text = instance_eval &self . class . block
145145 run_filters self . class . options [ :afters ]
146146
147- set_cookies
147+ cookies . write ( header )
148148
149149 [ status , header , [ body || response_text ] ]
150150 end
@@ -156,20 +156,5 @@ def run_filters(filters)
156156 instance_eval &filter
157157 end
158158 end
159-
160- def get_cookies
161- cookies . without_send do |c |
162- @request . cookies . each do |name , value |
163- c [ name ] = value
164- end
165- end
166- end
167-
168- def set_cookies
169- cookies . each ( :to_send ) do |name , value |
170- Rack ::Utils . set_cookie_header! (
171- header , name , value . instance_of? ( Hash ) ? value : { :value => value } )
172- end
173- end
174159 end
175160end
You can’t perform that action at this time.
0 commit comments