class MicroSession::Store

Public Class Methods

new(controller) click to toggle source
# File lib/micro_session/store.rb, line 5
def initialize(controller)
  @controller = controller
end

Public Instance Methods

[](key) click to toggle source
# File lib/micro_session/store.rb, line 15
def [](key)
  data[key.to_sym]
end
[]=(key, value) click to toggle source
# File lib/micro_session/store.rb, line 19
def []=(key, value)
  data[key.to_sym] = value
end
data() click to toggle source
# File lib/micro_session/store.rb, line 9
def data
  @controller.session[MicroSession.key] ||= {}
  @controller.session[MicroSession.key][id] ||= {}
  @controller.session[MicroSession.key][id].symbolize_keys!
end
id() click to toggle source
# File lib/micro_session/store.rb, line 31
def id
  @id ||= id_from_params || generate_id
end
url_options() click to toggle source
# File lib/micro_session/store.rb, line 23
def url_options
  if empty?
    {}
  else
    { MicroSession.param => id }
  end
end

Private Instance Methods

generate_id() click to toggle source
# File lib/micro_session/store.rb, line 41
def generate_id
  case MicroSession.param_type
  when :hash
    secure_random.hex(MicroSession.length / 2)
  when :integer
    self.counter += 1
  when :random_integer
    secure_random.integer
  end
end
id_from_params() click to toggle source
# File lib/micro_session/store.rb, line 37
def id_from_params
  @controller.params[MicroSession.param] if @controller.params
end
secure_random() click to toggle source
# File lib/micro_session/store.rb, line 52
def secure_random
  if Object.const_defined?('SecureRandom')
    SecureRandom
  else
    ActiveSupport::SecureRandom
  end
end