Class: Citrus::Common::Service::BackendSessionService::BackendSession

Inherits:
Object
  • Object
show all
Defined in:
lib/citrus/common/service/backend_session_service.rb

Overview

BackendSession

Instance Method Summary collapse

Constructor Details

#initialize(args = {}, service) ⇒ BackendSession

Create a new backend session

Parameters:

  • args (Hash) (defaults to: {})
  • service (Object)


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

Parameters:

  • uid (String)


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

#exportObject

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

Parameters:

  • key (String)


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

Parameters:

  • key (String)


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

Parameters:

  • key (String)
  • value (Hash)


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

Parameters:

  • uid (String)


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