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



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

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

.init(uuid, skill_name) ⇒ Object



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

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

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

  session
end

Instance Method Details

#full_controller_nameObject



47
48
49
# File 'lib/charyf/engine/session/session.rb', line 47

def full_controller_name
  @controller.blank? ? nil : @skill.camelize + '::' + @controller.camelize
end

#invalidate!Object



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

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

#keep!Object



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

def keep!
  @active = true
  store!
end

#route_to(controller, action) ⇒ Object



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

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

#storageObject



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

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

#store!Object



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

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