def self.run
Merb.register_session_type('memory',
Merb.framework_root / "merb-core" / "dispatch" / "session" / "memory",
"Using in-memory sessions; sessions will be lost whenever the server stops.")
Merb.register_session_type('memcache',
Merb.framework_root / "merb-core" / "dispatch" / "session" / "memcached",
"Using 'memcached' sessions")
Merb.register_session_type('cookie',
Merb.framework_root / "merb-core" / "dispatch" / "session" / "cookie",
"Using 'share-nothing' cookie sessions (4kb limit per client)")
Merb::Controller.class_eval do
session_store = Merb::Config[:session_store].to_s
if ["", "false", "none"].include?(session_store)
Merb.logger.warn "Not Using Sessions"
elsif reg = Merb.registered_session_types[session_store]
if session_store == "cookie"
Merb::BootLoader::MixinSessionContainer.check_for_secret_key
Merb::BootLoader::MixinSessionContainer.check_for_session_id_key
end
require reg[:file]
include ::Merb::SessionMixin
Merb.logger.warn reg[:description]
else
Merb.logger.warn "Session store not found, '#{Merb::Config[:session_store]}'."
Merb.logger.warn "Defaulting to CookieStore Sessions"
Merb::BootLoader::MixinSessionContainer.check_for_secret_key
Merb::BootLoader::MixinSessionContainer.check_for_session_id_key
require Merb.registered_session_types['cookie'][:file]
include ::Merb::SessionMixin
Merb.logger.warn "(plugin not installed?)"
end
end
Merb.logger.flush
end