Class: Rack::Session::Abstract::SessionHash
- Inherits:
-
Object
- Object
- Rack::Session::Abstract::SessionHash
- Includes:
- Enumerable
- Defined in:
- rack/rack/session/abstract/id.rb
Overview
SessionHash is responsible to lazily load the session from store.
Instance Attribute Summary (collapse)
Class Method Summary (collapse)
Instance Method Summary (collapse)
- - (void) [](key) (also: #fetch)
- - (void) []=(key, value) (also: #store)
- - (void) clear
- - (void) delete(key)
- - (void) destroy
- - (void) each(&block)
- - (Boolean) empty?
- - (Boolean) exists?
- - (Boolean) has_key?(key) (also: #key?, #include?)
-
- (SessionHash) initialize(store, env)
constructor
A new instance of SessionHash.
- - (void) inspect
- - (void) keys
- - (Boolean) loaded?
- - (void) options
- - (void) replace(hash)
- - (void) to_hash
- - (void) update(hash) (also: #merge!)
- - (void) values
Constructor Details
- (SessionHash) initialize(store, env)
Returns a new instance of SessionHash
39 40 41 42 43 |
# File 'rack/rack/session/abstract/id.rb', line 39 def initialize(store, env) @store = store @env = env @loaded = false end |
Instance Attribute Details
- (void) id
45 46 47 48 |
# File 'rack/rack/session/abstract/id.rb', line 45 def id return @id if @loaded or instance_variable_defined?(:@id) @id = @store.send(:extract_session_id, @env) end |
Class Method Details
+ (void) find(env)
27 28 29 |
# File 'rack/rack/session/abstract/id.rb', line 27 def self.find(env) env[ENV_SESSION_KEY] end |
+ (void) set(env, session)
31 32 33 |
# File 'rack/rack/session/abstract/id.rb', line 31 def self.set(env, session) env[ENV_SESSION_KEY] = session end |
+ (void) set_options(env, options)
35 36 37 |
# File 'rack/rack/session/abstract/id.rb', line 35 def self.(env, ) env[ENV_SESSION_OPTIONS_KEY] = .dup end |
Instance Method Details
- (void) [](key) Also known as: fetch
59 60 61 62 |
# File 'rack/rack/session/abstract/id.rb', line 59 def [](key) load_for_read! @data[key.to_s] end |
- (void) []=(key, value) Also known as: store
72 73 74 75 |
# File 'rack/rack/session/abstract/id.rb', line 72 def []=(key, value) load_for_write! @data[key.to_s] = value end |
- (void) clear
78 79 80 81 |
# File 'rack/rack/session/abstract/id.rb', line 78 def clear load_for_write! @data.clear end |
- (void) delete(key)
104 105 106 107 |
# File 'rack/rack/session/abstract/id.rb', line 104 def delete(key) load_for_write! @data.delete(key.to_s) end |
- (void) destroy
83 84 85 86 |
# File 'rack/rack/session/abstract/id.rb', line 83 def destroy clear @id = @store.send(:destroy_session, @env, id, ) end |
- (void) each(&block)
54 55 56 57 |
# File 'rack/rack/session/abstract/id.rb', line 54 def each(&block) load_for_read! @data.each(&block) end |
- (Boolean) empty?
127 128 129 130 |
# File 'rack/rack/session/abstract/id.rb', line 127 def empty? load_for_read! @data.empty? end |
- (Boolean) exists?
117 118 119 120 121 |
# File 'rack/rack/session/abstract/id.rb', line 117 def exists? return @exists if instance_variable_defined?(:@exists) @data = {} @exists = @store.send(:session_exists?, @env) end |
- (Boolean) has_key?(key) Also known as: key?, include?
65 66 67 68 |
# File 'rack/rack/session/abstract/id.rb', line 65 def has_key?(key) load_for_read! @data.has_key?(key.to_s) end |
- (void) inspect
109 110 111 112 113 114 115 |
# File 'rack/rack/session/abstract/id.rb', line 109 def inspect if loaded? @data.inspect else "#<#{self.class}:0x#{self.object_id.to_s(16)} not yet loaded>" end end |
- (void) keys
132 133 134 |
# File 'rack/rack/session/abstract/id.rb', line 132 def keys @data.keys end |
- (Boolean) loaded?
123 124 125 |
# File 'rack/rack/session/abstract/id.rb', line 123 def loaded? @loaded end |
- (void) options
50 51 52 |
# File 'rack/rack/session/abstract/id.rb', line 50 def @env[ENV_SESSION_OPTIONS_KEY] end |
- (void) replace(hash)
99 100 101 102 |
# File 'rack/rack/session/abstract/id.rb', line 99 def replace(hash) load_for_write! @data.replace(stringify_keys(hash)) end |
- (void) to_hash
88 89 90 91 |
# File 'rack/rack/session/abstract/id.rb', line 88 def to_hash load_for_read! @data.dup end |
- (void) update(hash) Also known as: merge!
93 94 95 96 |
# File 'rack/rack/session/abstract/id.rb', line 93 def update(hash) load_for_write! @data.update(stringify_keys(hash)) end |
- (void) values
136 137 138 |
# File 'rack/rack/session/abstract/id.rb', line 136 def values @data.values end |