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