Class: Kiss::Login

Inherits:
Hash show all
Defined in:
lib/kiss/login.rb

Instance Method Summary collapse

Methods inherited from Hash

#id, #method_missing, #prepend_html, #to_query_string, #type

Constructor Details

#initialize(session) ⇒ Login

Returns a new instance of Login.



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/kiss/login.rb', line 3

def initialize(session)
  @_session = session
  @_session['login'] ||= {}
  
  # check if login expired
  if expired?
    # login expired
    @_session['login'] = {}
  end
  
  @_persist_data = @_session['login']
  self.merge!(@_persist_data)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Hash

Instance Method Details

#clearObject



40
41
42
43
# File 'lib/kiss/login.rb', line 40

def clear
  @_session['login'] = {}
  super()
end

#expired?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/kiss/login.rb', line 17

def expired?
  @_session['login']['expires_at'] && session['login']['expires_at'] < Time.now
end

#expires_at(time) ⇒ Object



26
27
28
# File 'lib/kiss/login.rb', line 26

def expires_at(time)
  persist(:expires_at => time)
end

#expires_at=(seconds) ⇒ Object



29
30
31
# File 'lib/kiss/login.rb', line 29

def expires_at=(seconds)
  expires_at(seconds)
end

#expires_in(seconds) ⇒ Object



33
34
35
# File 'lib/kiss/login.rb', line 33

def expires_in(seconds)
  persist(:expires_at => Time.now + seconds)
end

#expires_in=(seconds) ⇒ Object



36
37
38
# File 'lib/kiss/login.rb', line 36

def expires_in=(seconds)
  expires_in(seconds)
end

#persist(data = {}) ⇒ Object



21
22
23
24
# File 'lib/kiss/login.rb', line 21

def persist(data = {})
  @_persist_data.merge!(data)
  self.merge!(data)
end