Module: Camping::Session

Defined in:
lib/camping/session.rb

Overview

Getting Started

To get sessions working for your application:

  1. require 'camping/session'

  2. Define a secret (and keep it secret): set :secret, "SECRET!"

  3. Mixin the module: include Camping::Session

  4. Throughout your application, use the @state var like a hash to store your application’s data.

require 'camping/session'    # 1

module Nuts
  set :secret, "Oh yeah!"    # 2
  include Camping::Session   # 3
end

Other backends

Camping only ships with session-cookies. However, the @state variable is simply a shortcut for @env['rack.session']. Therefore you can also use any middleware which sets this variable:

module Nuts
  use Rack::Session::Memcache
end

Class Method Summary collapse

Class Method Details

.included(app) ⇒ Object



31
32
33
34
35
36
# File 'lib/camping/session.rb', line 31

def self.included(app)
  key    = "#{app}.state".downcase
  secret = app.options[:secret] || ['camping-secret',__FILE__, File.mtime('Rakefile')].join(":")*2
  raise InsecureSecretError, "Your Session Secret is too short. Minimum length is 64." if secret.length < 64
  app.use Rack::Session::Cookie, :key => key, :secrets => secret
end