Class Merb::Session
In: lib/merb/session/merb_session.rb
Parent: ::ActiveRecord::Base

Methods

generate   persist  

Constants

RAND_CHARS = [*'A'..'Z'] + [*'0'..'9'] + [*'a'..'z']

Public Class methods

Generates a new session ID and creates a row for the new session in the database.

[Source]

    # File lib/merb/session/merb_session.rb, line 40
40:     def self.generate cookies
41:       rand_max = RAND_CHARS.size
42:       sid = (0...32).inject("") { |ret,_| ret << RAND_CHARS[rand(rand_max)] }
43:       sess = Merb::Session.create(:sess_id => sid, :data => MerbHash[])
44:       cookies[:sess_id] = sess.sess_id
45:       sess
46:     end

Gets the existing session based on the camping_sid available in cookies. If none is found, generates a new session.

[Source]

    # File lib/merb/session/merb_session.rb, line 50
50:     def self.persist cookies
51:       if cookies[:sess_id]
52:         session = Merb::Session.find_by_sess_id cookies[:sess_id]
53:       end
54:       unless session
55:         session = Merb::Session.generate cookies
56:       end
57:       session
58:     end

[Validate]