Class: Rails::SessionCookie::App
- Inherits:
-
Object
- Object
- Rails::SessionCookie::App
- Defined in:
- lib/rails/session_cookie/app.rb
Overview
This mini rack app allows easily get rails session cookie
Direct Known Subclasses
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
Class Method Summary collapse
Instance Method Summary collapse
- #call(env = {}) ⇒ Object
-
#initialize(app, session_options = nil) ⇒ App
constructor
A new instance of App.
- #session_cookie(env = {}) ⇒ Object
Constructor Details
#initialize(app, session_options = nil) ⇒ App
Returns a new instance of App.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rails/session_cookie/app.rb', line 25 def initialize(app, = nil) = || rails_app.config. auth_app = if app.respond_to?(:call) self.class.simple_app_returning_rack(app) else self.class.simple_app_from_session_hash(app) end @app = with_middlewares(auth_app, ) end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
23 24 25 |
# File 'lib/rails/session_cookie/app.rb', line 23 def app @app end |
Class Method Details
.simple_app_from_session_hash(session = {}) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/rails/session_cookie/app.rb', line 7 def self.simple_app_from_session_hash(session = {}) proc { |env| session.each do |k, v| env[RACK_SESSION][k] = v end [200, {}, []] } end |
.simple_app_returning_rack(app) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/rails/session_cookie/app.rb', line 16 def self.simple_app_returning_rack(app) proc { |env| result = app.call(env) result.is_a?(Hash) ? [200, result, []] : result } end |
Instance Method Details
#call(env = {}) ⇒ Object
37 38 39 |
# File 'lib/rails/session_cookie/app.rb', line 37 def call(env = {}) app.call(default_env.merge(env).dup) end |
#session_cookie(env = {}) ⇒ Object
41 42 43 44 |
# File 'lib/rails/session_cookie/app.rb', line 41 def (env = {}) _status, headers, _body = call(env) headers[ActionDispatch::Cookies::HTTP_HEADER] end |