--00151774040878198404b0c56782
Content-Type: text/plain; charset=UTF-8

Hello, not sure what the convention(s)/requirement(s) are for posting gem
release annoucements but I'm going to just hold my breath here and click
"send" anyway... (hope no one is too offended).

The redrack-session gem is a redis-based session store for rack
applications while redrails-session is a simple "glue" or wrapper gem to
make it super-simple to use redrack-session in your rails apps.

Like others who've created similar gems, this is pretty much a
"translation" of the Memcached session store that comes with the rack gem
(Rack::Session::Memcached). This is a fresh, brand new gem and I'd love to
get some feedback.

This gem requires a redis server, the redis gem (~> 2.2.2), and the
redis-namespace gem (~> 1.1.0). It's a given that rack is required (~>
1.3.5). This gem is based on the latest 1.3.x version of rack and does NOT
support the older 1.2.x version(s) of rack.

The redrails-session gem requires rails (~> 3.1.0) and the redrack-session
gem (~> 1.0.0).

redrack-session: https://github.com/zettabyte/redrack-session (gem
install redrack-session)
redrails-session: https://github.com/zettabyte/redrails-session (gem
install redrails-session)

Example usage of redrack-session:

> require 'rack'
> require 'redrack-session'
>
> class MyApp
>   def call(env)
>     session  nv["rack.session"]
>     session["counter"] || 
>     session["counter"]  + 
>     [200, {"Content-Type" "text/plain"}, ["Counter:
#{session['counter']}"]]
>   end
> end
>
> Rack::Server.start(
>   :app  Redrack::Session::Middleware.new(MyApp.new),
>   :Port 9292
> )

Example usage of redrails-session:

> # Gemfile
> source :rubygems
> gem "rails", "3.1.1"
> gem "redrails-session", "~> 1.0.0"
> # ... other gems ...
>
> # config/initializers/session_store.rb
> require 'redrails-store'
> MyApp::Application.config.session_store :redrails_session_store

Future Improvements

I plan to add clustering support to the  redrack-session gem (using
Redis::HashRing?). I'd also like to make it so the redrails-session gem
can, by default, look for a 'config/redrails-session.yml' (or similar)
configuration file in a rails project in order to load environment-specific
configuration settings. I may play with adding a railtie initializer to
redrails-session to support zero-configuration when using defaults,
obviating the need for 'config/initializers/session_store.rb'.

Anyhow, I know there are already solutions out there but none quite met the
demanding requirements of my personal OCD requirements. Plus, it's been a
fun learning opportunity. Hopefully others will find this useful too.

-- 
Kendall Gifford
https://github.com/zettabyte

--00151774040878198404b0c56782--