class Telegram::Bot::UpdatesController::Session::SessionHash

Rack::Session::Abstract::SessionHash is taken to provide lazy loading. All methods that access store are overriden to support ActiveSupport::Cache::Store stores.

Attributes

id[R]

Public Class Methods

new(store, id) click to toggle source
# File lib/telegram/bot/updates_controller/session.rb, line 44
def initialize(store, id)
  @store = store
  @id = id
end

Public Instance Methods

commit() click to toggle source
# File lib/telegram/bot/updates_controller/session.rb, line 66
def commit
  return unless loaded?
  data = to_hash.delete_if { |_, v| v.nil? }
  @store.write(id, data)
end
destroy() click to toggle source
# File lib/telegram/bot/updates_controller/session.rb, line 49
def destroy
  clear
  @store.delete(id)
end
exists?() click to toggle source
# File lib/telegram/bot/updates_controller/session.rb, line 54
def exists?
  return @exists if defined?(@exists)
  @data = {}
  @exists = @store.exist? id
end
load!() click to toggle source
# File lib/telegram/bot/updates_controller/session.rb, line 60
def load!
  session = @store.read(id)
  @data = session ? stringify_keys(session) : {}
  @loaded = true
end