Class | Merb::BootLoader::SetupSession |
In: |
merb-core/lib/merb-core/bootloader.rb
|
Parent: | Merb::BootLoader |
Enable the configured session container(s); any class that inherits from SessionContainer will be considered by its session_store_type attribute.
nil
:api: plugin
# File merb-core/lib/merb-core/bootloader.rb, line 1188 1188: def self.run 1189: # Require all standard session containers. 1190: Dir[Merb.framework_root / "merb-core" / "dispatch" / "session" / "*.rb"].each do |file| 1191: base_name = File.basename(file, ".rb") 1192: require file unless base_name == "container" || base_name == "store_container" 1193: end 1194: 1195: # Set some defaults. 1196: Merb::Config[:session_id_key] ||= "_session_id" 1197: 1198: # List of all session_stores from :session_stores and :session_store config options. 1199: config_stores = Merb::Config.session_stores 1200: 1201: # Register all configured session stores - any loaded session container class 1202: # (subclassed from Merb::SessionContainer) will be available for registration. 1203: Merb::SessionContainer.subclasses.each do |class_name| 1204: if(store = Object.full_const_get(class_name)) && 1205: config_stores.include?(store.session_store_type) 1206: Merb::Request.register_session_type(store.session_store_type, class_name) 1207: end 1208: end 1209: 1210: # Mixin the Merb::Session module to add app-level functionality to sessions 1211: overrides = (Merb::Session.instance_methods & Merb::SessionContainer.instance_methods) 1212: overrides.each do |m| 1213: Merb.logger.warn!("Warning: Merb::Session##{m} overrides existing " \ 1214: "Merb::SessionContainer##{m}") 1215: end 1216: Merb::SessionContainer.send(:include, Merb::Session) 1217: nil 1218: end