Class | Merb::Session |
In: |
lib/merb/session/merb_session.rb
|
Parent: | ::ActiveRecord::Base |
RAND_CHARS | = | [*'A'..'Z'] + [*'0'..'9'] + [*'a'..'z'] |
Generates a new session ID and creates a row for the new session in the database.
# 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.
# 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