class ActionDispatch::Session::AerospikeStore

Constants

AEROSPIKE_DEFAULT_OPTIONS

Public Class Methods

new(app, options = {}) click to toggle source
Calls superclass method
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 17
def initialize(app, options = {})
  options.merge!(self.class::AEROSPIKE_DEFAULT_OPTIONS) { |key, v1| v1 }
  @client = options.delete(:client) ||
      Aerospike::Client.new(Aerospike::Host.new(options.delete(:host), options.delete(:port)))
  super
end

Private Instance Methods

as_key(sid) click to toggle source
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 62
def as_key(sid)
  Aerospike::Key.new(@default_options[:ns], @default_options[:set], sid)
end
destroy_session(env, sid, options) click to toggle source
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 57
def destroy_session(env, sid, options)
  @client.delete(as_key(sid))
  generate_sid unless options[:drop]
end
generate_sid() click to toggle source
Calls superclass method
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 26
def generate_sid
  loop do
    sid = super
    break sid unless @client.exists(as_key(sid))
  end
end
get_session(env, sid) click to toggle source
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 43
def get_session(env, sid)
  unless sid and session = internal_get_session(sid)
    sid, session = generate_sid, {}
  end
  [sid, session]
end
internal_get_session(sid) click to toggle source
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 33
def internal_get_session(sid)
  record = @client.get(as_key(sid))
  if record
    # single-bin namespaces do not return a bin name
    (record.bins.length == 1)? record.bins.values.first : record.bins[@default_options[:bin]]
  else
    nil
  end
end
set_session(env, sid, session, options) click to toggle source
# File lib/action_dispatch/middleware/session/aerospike_store.rb, line 50
def set_session(env, sid, session, options)
  opt = {:send_key => false}
  opt[:expiration] = options[:expire_after] if options[:expire_after]
  @client.put(as_key(sid), Aerospike::Bin.new(@default_options[:bin], session), opt)
  sid
end