Parent

Class Index [+]

Quicksearch

Rack::Session::Abstract::SessionHash

SessionHash is responsible to lazily load the session from store.

Public Class Methods

new(by, env) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 51
51:         def initialize(by, env)
52:           super()
53:           @by = by
54:           @env = env
55:           @loaded = false
56:         end

Public Instance Methods

[](key) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 58
58:         def [](key)
59:           load_for_read!
60:           super(key.to_s)
61:         end
[]=(key, value) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 70
70:         def []=(key, value)
71:           load_for_write!
72:           super(key.to_s, value)
73:         end
clear() click to toggle source
    # File lib/rack/session/abstract/id.rb, line 75
75:         def clear
76:           load_for_write!
77:           super
78:         end
delete(key) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 92
92:         def delete(key)
93:           load_for_write!
94:           super(key.to_s)
95:         end
empty?() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 114
114:         def empty?
115:           load_for_read!
116:           super
117:         end
exists?() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 105
105:         def exists?
106:           return @exists if instance_variable_defined?(:@exists)
107:           @exists = @by.send(:session_exists?, @env)
108:         end
has_key?(key) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 63
63:         def has_key?(key)
64:           load_for_read!
65:           super(key.to_s)
66:         end
Also aliased as: key?, include?
include?(key) click to toggle source
Alias for: has_key?
inspect() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 97
 97:         def inspect
 98:           if loaded?
 99:             super
100:           else
101:             "#<#{self.class}:0x#{self.object_id.to_s(16)} not yet loaded>"
102:           end
103:         end
key?(key) click to toggle source
Alias for: has_key?
loaded?() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 110
110:         def loaded?
111:           @loaded
112:         end
to_hash() click to toggle source
    # File lib/rack/session/abstract/id.rb, line 80
80:         def to_hash
81:           load_for_read!
82:           h = {}.replace(self)
83:           h.delete_if { |k,v| v.nil? }
84:           h
85:         end
update(hash) click to toggle source
    # File lib/rack/session/abstract/id.rb, line 87
87:         def update(hash)
88:           load_for_write!
89:           super(stringify_keys(hash))
90:         end

Private Instance Methods

load!() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 129
129:         def load!
130:           id, session = @by.send(:load_session, @env)
131:           @env[ENV_SESSION_OPTIONS_KEY][:id] = id
132:           replace(stringify_keys(session))
133:           @loaded = true
134:         end
load_for_read!() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 121
121:         def load_for_read!
122:           load! if !loaded? && exists?
123:         end
load_for_write!() click to toggle source
     # File lib/rack/session/abstract/id.rb, line 125
125:         def load_for_write!
126:           load! unless loaded?
127:         end
stringify_keys(other) click to toggle source
     # File lib/rack/session/abstract/id.rb, line 136
136:         def stringify_keys(other)
137:           hash = {}
138:           other.each do |key, value|
139:             hash[key.to_s] = value
140:           end
141:           hash
142:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.