Class: Mongoid::SessionStore::Session

Inherits:
Object
  • Object
show all
Includes:
Document, Timestamps
Defined in:
lib/mongoid/session_store/session.rb

Constant Summary collapse

DEFAULT_SESSION_EXPIRY =
60

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_session_id(session_id) ⇒ Object



20
21
22
# File 'lib/mongoid/session_store/session.rb', line 20

def self.find_by_session_id(session_id)
  where(:session_id => session_id).last
end

.session_expiryObject



24
25
26
# File 'lib/mongoid/session_store/session.rb', line 24

def self.session_expiry
  ENV['SESSION_TIMEOUT'].to_i.minutes || DEFAULT_SESSION_EXPIRY.minutes
end

Instance Method Details

#current?Boolean



44
45
46
47
# File 'lib/mongoid/session_store/session.rb', line 44

def current?
  return true unless self.expires_at.present?
  self.expires_at.in_time_zone > Time.now.in_time_zone
end

#dataObject



28
29
30
# File 'lib/mongoid/session_store/session.rb', line 28

def data
  self.raw_data.present? && Marshal.load(Base64.decode64(self.raw_data)).merge(:expires_at => self.expires_at) || {}
end

#data=(raw = {}) ⇒ Object



32
33
34
# File 'lib/mongoid/session_store/session.rb', line 32

def data=(raw={})
  self.raw_data = Base64.encode64(Marshal.dump(raw))
end

#expired?Boolean



49
50
51
# File 'lib/mongoid/session_store/session.rb', line 49

def expired?
  ! current?
end

#loaded?Boolean



53
54
55
# File 'lib/mongoid/session_store/session.rb', line 53

def loaded?
  self.raw_data.present?
end

#set_expires_atObject



36
37
38
39
40
41
42
# File 'lib/mongoid/session_store/session.rb', line 36

def set_expires_at
  if current?
    self.expires_at = Time.now + Session.session_expiry
  else
    self.expires_at = nil
  end
end