Sha256: 1ee90293dc539d91f2d2af69ca1ab04c3ae590af2dd1ae4440adf49256452f0e

Contents?: true

Size: 878 Bytes

Versions: 2

Compression:

Stored size: 878 Bytes

Contents

class Kiss
  class Login < Hash
    def initialize(session)
      @_session = session
      @_session['login'] ||= {}
      
      # check if login expired
      if expired?
        # login expired
        @_session['login'] = {}
      end
      
      self.merge!(@_session['login'])
    end
    
    def expired?
      @_session['login']['expires_at'] && session['login']['expires_at'] < Time.now
    end
    
    def persist(data = {})
      @_session['login'].merge!(data)
      self.merge!(data)
    end
    
    def expires_at(time)
      persist(:expires_at => time)
    end
    def expires_at=(seconds)
      expires_at(seconds)
    end
    
    def expires_in(seconds)
      persist(:expires_at => Time.now + seconds)
    end
    def expires_in=(seconds)
      expires_in(seconds)
    end
    
    def clear
      @_session['login'] = {}
      super()
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kiss-1.8.9 lib/kiss/login.rb
kiss-1.8.8 lib/kiss/login.rb