Class: Mentawai::Core::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/mentawai/core/session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(req, res) ⇒ Session

Returns a new instance of Session.



8
9
10
11
12
13
# File 'lib/mentawai/core/session.rb', line 8

def initialize(req, res)
  @request = req
  @response = res
  @session = req.env['rack.session']
  @sdat = @session.instance_variable_get '@dat'
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'lib/mentawai/core/session.rb', line 6

def request
  @request
end

#responseObject (readonly)

Returns the value of attribute response.



6
7
8
# File 'lib/mentawai/core/session.rb', line 6

def response
  @response
end

Instance Method Details

#get(key) ⇒ Object Also known as: []



19
20
21
# File 'lib/mentawai/core/session.rb', line 19

def get(key)
  @session[key]
end

#hasKey?(key) ⇒ Boolean Also known as: has_key?, key?

Returns:

  • (Boolean)


42
43
44
# File 'lib/mentawai/core/session.rb', line 42

def hasKey?(key)
  @session.has_key?(key)
end

#keysObject



49
50
51
52
53
# File 'lib/mentawai/core/session.rb', line 49

def keys
  @session.each do |k,v|
    yield k
  end
end

#put(key, value) ⇒ Object Also known as: []=



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mentawai/core/session.rb', line 23

def put(key, value)
  
  # Are we replacing an object?
  if @session.key?(key) then
    removed = @session[key]
    if not value.equal?(removed) then
      removed.removed_from_session(key) if removed.respond_to?(:removed_from_session)            
    end
  end
  
  @session[key] = value
  value.added_to_session(key) if value.respond_to?(:added_to_session)
end

#remove(key) ⇒ Object Also known as: delete



37
38
39
40
# File 'lib/mentawai/core/session.rb', line 37

def remove(key)
  removed = @session.delete(key)
  removed.removed_from_session(key) if removed.respond_to?(:removed_from_session)
end

#resetObject



61
62
63
# File 'lib/mentawai/core/session.rb', line 61

def reset
  @sdat[1] = 0 # expire it!
end

#sidObject



15
16
17
# File 'lib/mentawai/core/session.rb', line 15

def sid
  @sdat[0]
end

#valuesObject Also known as: each



55
56
57
58
59
# File 'lib/mentawai/core/session.rb', line 55

def values
  @session.each do |k,v|
    yield k,v
  end
end