Class: Citrus::Common::Service::BackendSessionService::BackendSession
- Inherits:
-
Object
- Object
- Citrus::Common::Service::BackendSessionService::BackendSession
- Defined in:
- lib/citrus/common/service/backend_session_service.rb
Overview
BackendSession
Instance Method Summary collapse
-
#bind(uid, &block) ⇒ Object
Bind current session with the user id.
-
#export ⇒ Object
Export the key/values for serialization.
-
#get(key) ⇒ Object
Get the value from backend session by key.
-
#initialize(args = {}, service) ⇒ BackendSession
constructor
Create a new backend session.
-
#push(key, &block) ⇒ Object
Push the key/value in backend session to the front internal session.
-
#push_all(&block) ⇒ Object
Push all the key/values in backend session to the frontend internal session.
-
#set(key, value) ⇒ Object
Set the key/value into backend session.
-
#unbind(uid, &block) ⇒ Object
Unbind current session with the user id.
Constructor Details
#initialize(args = {}, service) ⇒ BackendSession
Create a new backend session
199 200 201 202 203 204 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 199 def initialize args={}, service args.each_pair { |key, value| instance_eval %Q{ @#{key} = value } } @session_service = service end |
Instance Method Details
#bind(uid, &block) ⇒ Object
Bind current session with the user id
209 210 211 212 213 214 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 209 def bind uid, &block @session_service.bind(@frontend_id, @id, uid) { |err| @uid = uid unless err block_given? and yield err } end |
#export ⇒ Object
Export the key/values for serialization
254 255 256 257 258 259 260 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 254 def export res = {} EXPORTED_FIELDS.each { |field| instance_eval %Q{ res['#{field}'] = @#{field} } } res end |
#get(key) ⇒ Object
Get the value from backend session by key
237 238 239 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 237 def get key @settings[key] end |
#push(key, &block) ⇒ Object
Push the key/value in backend session to the front internal session
244 245 246 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 244 def push key, &block @session_service.push @frontend_id, @id, key, get(key), &block end |
#push_all(&block) ⇒ Object
Push all the key/values in backend session to the frontend internal session
249 250 251 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 249 def push_all &block @session_service.push_all @frontend_id, @id, @settings, &block end |
#set(key, value) ⇒ Object
Set the key/value into backend session
230 231 232 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 230 def set key, value @settings[key] = value end |
#unbind(uid, &block) ⇒ Object
Unbind current session with the user id
219 220 221 222 223 224 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 219 def unbind uid, &block @session_service.unbind(@frontend_id, @id, uid) { |err| @uid = nil unless err block_given? and yield err } end |