Class: Rack::JunoCookies
- Inherits:
-
Object
- Object
- Rack::JunoCookies
- Defined in:
- lib/rack/juno_cookies.rb
Overview
A Rack middleware that was made to reuse all juno transformers on the cookie hash.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}, &block) ⇒ JunoCookies
constructor
A new instance of JunoCookies.
Constructor Details
#initialize(app, options = {}, &block) ⇒ JunoCookies
Returns a new instance of JunoCookies.
36 37 38 39 40 41 42 43 44 |
# File 'lib/rack/juno_cookies.rb', line 36 def initialize(app, = {}, &block) @app = app if block raise 'Use either block or options' unless .empty? @builder = Juno::Builder.new(&block) else @builder = Juno::Builder.new { adapter :Cookie, } end end |
Instance Method Details
#call(env) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/rack/juno_cookies.rb', line 46 def call(env) stores = @builder.build env['rack.request.cookie_hash'] = stores.last env['rack.request.cookie_string'] = env['HTTP_COOKIE'] stores.first.reset(Rack::Utils.parse_query(env['HTTP_COOKIE'])) status, headers, body = @app.call(env) stores.first..each do |key, | if == nil Rack::Utils.(headers, key) else Rack::Utils.(headers, key, ) end end [status, headers, body] end |