Class: Charyf::Engine::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/charyf/engine/session/session.rb,
lib/charyf/engine/session/processors/default.rb,
lib/charyf/engine/session/processors/processor.rb

Defined Under Namespace

Modules: Processor

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#actionObject (readonly)

Returns the value of attribute action.



7
8
9
# File 'lib/charyf/engine/session/session.rb', line 7

def action
  @action
end

#controllerObject (readonly)

Returns the value of attribute controller.



7
8
9
# File 'lib/charyf/engine/session/session.rb', line 7

def controller
  @controller
end

#skillObject (readonly)

Returns the value of attribute skill.



7
8
9
# File 'lib/charyf/engine/session/session.rb', line 7

def skill
  @skill
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



7
8
9
# File 'lib/charyf/engine/session/session.rb', line 7

def timestamp
  @timestamp
end

#uuidObject (readonly)

Returns the value of attribute uuid.



7
8
9
# File 'lib/charyf/engine/session/session.rb', line 7

def uuid
  @uuid
end

Class Method Details

.get(uuid) ⇒ Object

TODO - mention it could return nil TODO sig



11
12
13
14
# File 'lib/charyf/engine/session/session.rb', line 11

def self.get(uuid)
  yaml = _storage.get(uuid)
  yaml ? YAML.load(yaml) : nil
end

.init(uuid, skill_name) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/charyf/engine/session/session.rb', line 16

def self.init(uuid, skill_name)
  session = self.new(uuid, skill_name)

  _storage.store(uuid, YAML.dump(session))

  session
end

Instance Method Details

#invalidate!Object



38
39
40
41
# File 'lib/charyf/engine/session/session.rb', line 38

def invalidate!
  @active = false
  self.class._storage.remove(@uuid)
end

#keep!Object



33
34
35
36
# File 'lib/charyf/engine/session/session.rb', line 33

def keep!
  @active = true
  store!
end

#route_to(controller, action) ⇒ Object



24
25
26
27
# File 'lib/charyf/engine/session/session.rb', line 24

def route_to(controller, action)
  @controller = controller
  @action = action
end

#storageObject



29
30
31
# File 'lib/charyf/engine/session/session.rb', line 29

def storage
  @storage ||= Charyf.application.storage_provider.get_for("#{self.class}_#{@uuid}")
end

#store!Object



43
44
45
46
# File 'lib/charyf/engine/session/session.rb', line 43

def store!
  @timestamp = Time.now
  self.class._storage.store(@uuid, YAML.dump(self))
end