Skip to content

msales/smart_cookie_store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Problem

SmartCookieStore is a fix for the current (as of 2.3.5) Rails CookieStore. The problem with the CookieStore as is, is that it sends a Set-Cookie header whenever the session (including the flash) is accessed. This means that whenever you have a call to flash[:notice] in your layout file, a Set-Cookie will be sent to the client. Even if the session/flash is completely empty! This is problematic when you want to use something like Varnish. By default it doesn't cache pages that send a header (and rightly so).

The Solution

This plugin adds a new CookieStore, the SmartCookieStore that checks if the session is empty and only sends the Set-Cookie header when the session is not empty.

Usage

Install as a gem:

gem install smart_cookie_store

And add it to your config/environment.rb:

config.gem "smart_cookie_store"

Install as a plugin:

script/plugin install git://github.com/msales/smart_cookie_store.git

Configuration

The configure your app to use the new SmartCookieStore:

ActionController::Base.session_store = :smart_cookie_store

Compatibility

This is an initial release that was only tested on Rails 2.3.5!

To Do

This plugin should also include a SmartAbstractStore that fixes the Rails AbstractStore. This is the parent class of the ActiveRecordStore which would fix its behaviour in turn. Some unit tests would be good, too ;)

About

Fixes the Rails CookieStore lazy loading so that empty sessions don't get sent to the client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages