Module: GlobalSession::Rails
- Defined in:
- lib/global_session/rails/action_controller_instance_methods.rb,
lib/global_session/rails/action_controller_class_methods.rb,
lib/global_session/rails.rb
Overview
Rails integration for GlobalSession.
The configuration file for Rails apps is located in config/global_session.yml and a generator
(global_session_config) is available for creating a sensible default.
There is also a generator (global_session_authority) for creating authority keypairs.
The main integration touchpoint for Rails is the module ActionControllerInstanceMethods, which gets mixed into ActionController::Base. This is where all of the magic happens..
Defined Under Namespace
Modules: ActionControllerClassMethods, ActionControllerInstanceMethods
Class Attribute Summary collapse
-
.configuration ⇒ Object
Single Configuration object used by entire Rails app.
-
.directory ⇒ Object
Single Directory object used by entire Rails app.
Class Method Summary collapse
Class Attribute Details
.configuration ⇒ Object
Single Configuration object used by entire Rails app
46 47 48 |
# File 'lib/global_session/rails.rb', line 46 def configuration @configuration end |
.directory ⇒ Object
Single Directory object used by entire Rails app
49 50 51 |
# File 'lib/global_session/rails.rb', line 49 def directory @directory end |
Class Method Details
.activate(rails_config, &block) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/global_session/rails.rb', line 52 def self.activate(rails_config, &block) config_file = File.join(::Rails.root, 'config', 'global_session.yml') self.configuration = GlobalSession::Configuration.new(config_file, ::Rails.env) dir_name = self.configuration['directory'] || 'GlobalSession::Directory' begin dir_klass = dir_name.constantize rescue NameError => e raise GlobalSession::ConfigurationError, "Unknown/malformed directory class '#{dir_name}' in config file: #{e.}" end unless dir_klass.ancestors.include?(GlobalSession::Directory) raise GlobalSession::ConfigurationError, "Specified directory class '#{dir_name}' does not inherit from GlobalSession::Directory" end = File.join(::Rails.root, 'config', 'authorities') self.directory = dir_klass.new(self.configuration, ) # Add our middleware to the stack. rails_config.middleware.insert_before(ActionController::Base.session_store, ::Rack::Cookies) rails_config.middleware.insert_before(ActionController::Base.session_store, ::Rack::GlobalSession, self.configuration, self.directory, &block) return true end |