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, v2| v1 }
@client = options.delete(:client) || Aerospike::Client.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 61
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 56
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 25
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 42
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 32
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 49
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