lib/action_dispatch/middleware/session/cache_store.rb
require 'action_dispatch/middleware/session/abstract_store' module ActionDispatch module Session # Session store that uses an ActiveSupport::Cache::Store to store the sessions. This store is most useful # if you don't store critical data in your sessions and you don't need them to live for extended periods # of time. class CacheStore < AbstractStore # Create a new store. The cache to use can be passed in the <tt>:cache</tt> option. If it is # not specified, <tt>Rails.cache</tt> will be used. def initialize(app, options = {}) @cache = options[:cache] || Rails.cache options[:expire_after] ||= @cache.options[:expires_in] super end # Get a session from the cache. def get_session(env, sid) sid ||= generate_sid session = @cache.read(cache_key(sid)) session ||= {} [sid, session] end # Set a session in the cache. def set_session(env, sid, session, options) key = cache_key(sid) if session @cache.write(key, session, :expires_in => options[:expire_after]) else @cache.delete(key) end sid end # Remove a session from the cache. def destroy_session(env, sid, options) @cache.delete(cache_key(sid)) generate_sid end private # Turn the session id into a cache key. def cache_key(sid) "_session_id:#{sid}" end end end end
Source Files
- lib/abstract_controller.rb
- lib/abstract_controller/asset_paths.rb
- lib/abstract_controller/base.rb
- lib/abstract_controller/callbacks.rb
- lib/abstract_controller/collector.rb
- lib/abstract_controller/helpers.rb
- lib/abstract_controller/layouts.rb
- lib/abstract_controller/logger.rb
- lib/abstract_controller/railties/routes_helpers.rb
- lib/abstract_controller/rendering.rb
- lib/abstract_controller/translation.rb
- lib/abstract_controller/url_for.rb
- lib/abstract_controller/view_paths.rb
- lib/action_controller.rb
- lib/action_controller/base.rb
- lib/action_controller/caching.rb
- lib/action_controller/caching/fragments.rb
- lib/action_controller/deprecated.rb
- lib/action_controller/deprecated/integration_test.rb
- lib/action_controller/log_subscriber.rb
- lib/action_controller/metal.rb
- lib/action_controller/metal/conditional_get.rb
- lib/action_controller/metal/cookies.rb
- lib/action_controller/metal/data_streaming.rb
- lib/action_controller/metal/exceptions.rb
- lib/action_controller/metal/flash.rb
- lib/action_controller/metal/force_ssl.rb
- lib/action_controller/metal/head.rb
- lib/action_controller/metal/helpers.rb
- lib/action_controller/metal/hide_actions.rb
- lib/action_controller/metal/http_authentication.rb
- lib/action_controller/metal/implicit_render.rb
- lib/action_controller/metal/instrumentation.rb
- lib/action_controller/metal/live.rb
- lib/action_controller/metal/mime_responds.rb
- lib/action_controller/metal/params_wrapper.rb
- lib/action_controller/metal/rack_delegation.rb
- lib/action_controller/metal/redirecting.rb
- lib/action_controller/metal/renderers.rb
- lib/action_controller/metal/rendering.rb
- lib/action_controller/metal/request_forgery_protection.rb
- lib/action_controller/metal/rescue.rb
- lib/action_controller/metal/responder.rb
- lib/action_controller/metal/streaming.rb
- lib/action_controller/metal/strong_parameters.rb
- lib/action_controller/metal/testing.rb
- lib/action_controller/metal/url_for.rb
- lib/action_controller/middleware.rb
- lib/action_controller/model_naming.rb
- lib/action_controller/railtie.rb
- lib/action_controller/railties/helpers.rb
- lib/action_controller/record_identifier.rb
- lib/action_controller/test_case.rb
- lib/action_controller/vendor/html-scanner.rb
- lib/action_dispatch.rb
- lib/action_dispatch/http/cache.rb
- lib/action_dispatch/http/filter_parameters.rb
- lib/action_dispatch/http/filter_redirect.rb
- lib/action_dispatch/http/headers.rb
- lib/action_dispatch/http/mime_negotiation.rb
- lib/action_dispatch/http/mime_type.rb
- lib/action_dispatch/http/mime_types.rb
- lib/action_dispatch/http/parameter_filter.rb
- lib/action_dispatch/http/parameters.rb
- lib/action_dispatch/http/rack_cache.rb
- lib/action_dispatch/http/request.rb
- lib/action_dispatch/http/response.rb
- lib/action_dispatch/http/upload.rb
- lib/action_dispatch/http/url.rb
- lib/action_dispatch/journey.rb
- lib/action_dispatch/journey/backwards.rb
- lib/action_dispatch/journey/formatter.rb
- lib/action_dispatch/journey/gtg/builder.rb
- lib/action_dispatch/journey/gtg/simulator.rb
- lib/action_dispatch/journey/gtg/transition_table.rb
- lib/action_dispatch/journey/nfa/builder.rb
- lib/action_dispatch/journey/nfa/dot.rb
- lib/action_dispatch/journey/nfa/simulator.rb
- lib/action_dispatch/journey/nfa/transition_table.rb
- lib/action_dispatch/journey/nodes/node.rb
- lib/action_dispatch/journey/parser.rb
- lib/action_dispatch/journey/parser_extras.rb
- lib/action_dispatch/journey/path/pattern.rb
- lib/action_dispatch/journey/route.rb
- lib/action_dispatch/journey/router.rb
- lib/action_dispatch/journey/router/strexp.rb
- lib/action_dispatch/journey/router/utils.rb
- lib/action_dispatch/journey/routes.rb
- lib/action_dispatch/journey/scanner.rb
- lib/action_dispatch/journey/visitors.rb
- lib/action_dispatch/middleware/callbacks.rb
- lib/action_dispatch/middleware/cookies.rb
- lib/action_dispatch/middleware/debug_exceptions.rb
- lib/action_dispatch/middleware/exception_wrapper.rb
- lib/action_dispatch/middleware/flash.rb
- lib/action_dispatch/middleware/params_parser.rb
- lib/action_dispatch/middleware/public_exceptions.rb
- lib/action_dispatch/middleware/reloader.rb
- lib/action_dispatch/middleware/remote_ip.rb
- lib/action_dispatch/middleware/request_id.rb
- lib/action_dispatch/middleware/session/abstract_store.rb
- lib/action_dispatch/middleware/session/cache_store.rb
- lib/action_dispatch/middleware/session/cookie_store.rb
- lib/action_dispatch/middleware/session/mem_cache_store.rb
- lib/action_dispatch/middleware/show_exceptions.rb
- lib/action_dispatch/middleware/ssl.rb
- lib/action_dispatch/middleware/stack.rb
- lib/action_dispatch/middleware/static.rb
- lib/action_dispatch/railtie.rb
- lib/action_dispatch/request/session.rb
- lib/action_dispatch/routing.rb
- lib/action_dispatch/routing/inspector.rb
- lib/action_dispatch/routing/mapper.rb
- lib/action_dispatch/routing/polymorphic_routes.rb
- lib/action_dispatch/routing/redirection.rb
- lib/action_dispatch/routing/route_set.rb
- lib/action_dispatch/routing/routes_proxy.rb
- lib/action_dispatch/routing/url_for.rb
- lib/action_dispatch/testing/assertions.rb
- lib/action_dispatch/testing/assertions/dom.rb
- lib/action_dispatch/testing/assertions/response.rb
- lib/action_dispatch/testing/assertions/routing.rb
- lib/action_dispatch/testing/assertions/selector.rb
- lib/action_dispatch/testing/assertions/tag.rb
- lib/action_dispatch/testing/integration.rb
- lib/action_dispatch/testing/test_process.rb
- lib/action_dispatch/testing/test_request.rb
- lib/action_dispatch/testing/test_response.rb
- lib/action_pack.rb
- lib/action_pack/version.rb
- lib/action_view.rb
- lib/action_view/base.rb
- lib/action_view/buffers.rb
- lib/action_view/context.rb
- lib/action_view/dependency_tracker.rb
- lib/action_view/digestor.rb
- lib/action_view/flows.rb
- lib/action_view/helpers.rb
- lib/action_view/helpers/active_model_helper.rb
- lib/action_view/helpers/asset_tag_helper.rb
- lib/action_view/helpers/asset_url_helper.rb
- lib/action_view/helpers/atom_feed_helper.rb
- lib/action_view/helpers/cache_helper.rb
- lib/action_view/helpers/capture_helper.rb
- lib/action_view/helpers/controller_helper.rb
- lib/action_view/helpers/csrf_helper.rb
- lib/action_view/helpers/date_helper.rb
- lib/action_view/helpers/debug_helper.rb
- lib/action_view/helpers/form_helper.rb
- lib/action_view/helpers/form_options_helper.rb
- lib/action_view/helpers/form_tag_helper.rb
- lib/action_view/helpers/javascript_helper.rb
- lib/action_view/helpers/number_helper.rb
- lib/action_view/helpers/output_safety_helper.rb
- lib/action_view/helpers/record_tag_helper.rb
- lib/action_view/helpers/rendering_helper.rb
- lib/action_view/helpers/sanitize_helper.rb
- lib/action_view/helpers/tag_helper.rb
- lib/action_view/helpers/tags.rb
- lib/action_view/helpers/tags/base.rb
- lib/action_view/helpers/tags/check_box.rb
- lib/action_view/helpers/tags/checkable.rb
- lib/action_view/helpers/tags/collection_check_boxes.rb
- lib/action_view/helpers/tags/collection_helpers.rb
- lib/action_view/helpers/tags/collection_radio_buttons.rb
- lib/action_view/helpers/tags/collection_select.rb
- lib/action_view/helpers/tags/color_field.rb
- lib/action_view/helpers/tags/date_field.rb
- lib/action_view/helpers/tags/date_select.rb
- lib/action_view/helpers/tags/datetime_field.rb
- lib/action_view/helpers/tags/datetime_local_field.rb
- lib/action_view/helpers/tags/datetime_select.rb
- lib/action_view/helpers/tags/email_field.rb
- lib/action_view/helpers/tags/file_field.rb
- lib/action_view/helpers/tags/grouped_collection_select.rb
- lib/action_view/helpers/tags/hidden_field.rb
- lib/action_view/helpers/tags/label.rb
- lib/action_view/helpers/tags/month_field.rb
- lib/action_view/helpers/tags/number_field.rb
- lib/action_view/helpers/tags/password_field.rb
- lib/action_view/helpers/tags/radio_button.rb
- lib/action_view/helpers/tags/range_field.rb
- lib/action_view/helpers/tags/search_field.rb
- lib/action_view/helpers/tags/select.rb
- lib/action_view/helpers/tags/tel_field.rb
- lib/action_view/helpers/tags/text_area.rb
- lib/action_view/helpers/tags/text_field.rb
- lib/action_view/helpers/tags/time_field.rb
- lib/action_view/helpers/tags/time_select.rb
- lib/action_view/helpers/tags/time_zone_select.rb
- lib/action_view/helpers/tags/url_field.rb
- lib/action_view/helpers/tags/week_field.rb
- lib/action_view/helpers/text_helper.rb
- lib/action_view/helpers/translation_helper.rb
- lib/action_view/helpers/url_helper.rb
- lib/action_view/log_subscriber.rb
- lib/action_view/lookup_context.rb
- lib/action_view/model_naming.rb
- lib/action_view/path_set.rb
- lib/action_view/railtie.rb
- lib/action_view/record_identifier.rb
- lib/action_view/renderer/abstract_renderer.rb
- lib/action_view/renderer/partial_renderer.rb
- lib/action_view/renderer/renderer.rb
- lib/action_view/renderer/streaming_template_renderer.rb
- lib/action_view/renderer/template_renderer.rb
- lib/action_view/routing_url_for.rb
- lib/action_view/template.rb
- lib/action_view/template/error.rb
- lib/action_view/template/handlers.rb
- lib/action_view/template/handlers/builder.rb
- lib/action_view/template/handlers/erb.rb
- lib/action_view/template/handlers/raw.rb
- lib/action_view/template/resolver.rb
- lib/action_view/template/text.rb
- lib/action_view/template/types.rb
- lib/action_view/test_case.rb
- lib/action_view/testing/resolvers.rb
- lib/action_view/vendor/html-scanner.rb
- lib/action_view/vendor/html-scanner/html/document.rb
- lib/action_view/vendor/html-scanner/html/node.rb
- lib/action_view/vendor/html-scanner/html/sanitizer.rb
- lib/action_view/vendor/html-scanner/html/selector.rb
- lib/action_view/vendor/html-scanner/html/tokenizer.rb
- lib/action_view/vendor/html-scanner/html/version.rb