Class: ExvoAuth::SessionStore
- Inherits:
-
Object
- Object
- ExvoAuth::SessionStore
- Defined in:
- lib/exvo_auth/session_store.rb
Overview
For Merb apps only. This replaces merb sessions with Rails3 sessions. We use this to share sessions between merb and rails apps.
Class Method Summary collapse
-
.replace_merb_sessions_with_rails_3_sessions! ⇒ Object
this is crazy.
Instance Method Summary collapse
- #call(env) ⇒ Object
- #env_defaults ⇒ Object
-
#initialize(app, options = {}) ⇒ SessionStore
constructor
A new instance of SessionStore.
Constructor Details
#initialize(app, options = {}) ⇒ SessionStore
Returns a new instance of SessionStore.
6 7 8 9 10 11 |
# File 'lib/exvo_auth/session_store.rb', line 6 def initialize(app, = {}) raise "Please configure :secret_token" unless @secret_token = [:secret_token] raise "Please configure :domain" unless @domain = [:domain] @app = ActionDispatch::Cookies.new(ActionDispatch::Session::CookieStore.new(ActionDispatch::Flash.new(app), :key => "_exvo_session", :domain => @domain, :expire_after => 2.weeks)) end |
Class Method Details
.replace_merb_sessions_with_rails_3_sessions! ⇒ Object
this is crazy
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/exvo_auth/session_store.rb', line 20 def self.replace_merb_sessions_with_rails_3_sessions! # this is crazy [Merb::BootLoader::MixinSession, Merb::BootLoader::SetupSession, Merb::BootLoader::Cookies].each do |c| c.class_eval do def self.run; end end end Merb::Controller.class_eval do def session; request.session end def ; request.env["action_dispatch.cookies"] ||= ActionDispatch::Cookies::CookieJar.build(request) end end Merb::Request.class_eval do def session?; true end def session; Rack::Request.new(env).session end def ; Rack::Request.new(env). end end end |
Instance Method Details
#call(env) ⇒ Object
12 13 14 |
# File 'lib/exvo_auth/session_store.rb', line 12 def call(env) @app.call(env.reverse_merge!(env_defaults)) end |
#env_defaults ⇒ Object
15 16 17 18 19 |
# File 'lib/exvo_auth/session_store.rb', line 15 def env_defaults @env_defaults ||= { "action_dispatch.secret_token" => @secret_token } end |