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.
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rails/session_cookie/app.rb', line 27 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.
25 26 27 |
# File 'lib/rails/session_cookie/app.rb', line 25 def app @app end |
Class Method Details
.simple_app_from_session_hash(session = {}) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/rails/session_cookie/app.rb', line 9 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
18 19 20 21 22 23 |
# File 'lib/rails/session_cookie/app.rb', line 18 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
39 40 41 |
# File 'lib/rails/session_cookie/app.rb', line 39 def call(env = {}) app.call(default_env.merge(Env.new(env).env).dup) end |
#session_cookie(env = {}) ⇒ Object
43 44 45 46 |
# File 'lib/rails/session_cookie/app.rb', line 43 def (env = {}) _status, headers, _body = call(env) headers[ActionDispatch::Cookies::HTTP_HEADER] end |