Class: ActionDispatch::Session::AerospikeStore
- Inherits:
-
AbstractStore
- Object
- AbstractStore
- ActionDispatch::Session::AerospikeStore
- Defined in:
- lib/action_dispatch/session/aerospike_store.rb
Constant Summary collapse
- DEFAULT_OPTIONS =
{ host: '127.0.0.1', port: 3000, ns: 'test', set: 'session_rails', bin: 'data' }
Instance Method Summary collapse
-
#destroy_session(_, sid, options) ⇒ Object
Remove a session from the cache.
- #get_session(_, sid) ⇒ Object
-
#initialize(app, options = {}) ⇒ AerospikeStore
constructor
A new instance of AerospikeStore.
-
#set_session(_, sid, session, options) ⇒ Object
Set a session in the cache.
Constructor Details
#initialize(app, options = {}) ⇒ AerospikeStore
Returns a new instance of AerospikeStore.
12 13 14 15 16 17 18 19 |
# File 'lib/action_dispatch/session/aerospike_store.rb', line 12 def initialize(app, = {}) .merge!(DEFAULT_OPTIONS) { |_, old, _| old } @client = Aerospike::Client.new(.delete(:host), .delete(:port), ) [:expire_after] ||= [:expiration] [:expire_after] ||= [:expires_in] @options = .deep_dup super end |
Instance Method Details
#destroy_session(_, sid, options) ⇒ Object
Remove a session from the cache.
41 42 43 44 45 |
# File 'lib/action_dispatch/session/aerospike_store.rb', line 41 def destroy_session(_, sid, ) merged = .to_hash.merge!(@options) {|_, old, _| old} @client.delete(key_from(sid, merged), merged) generate_sid end |
#get_session(_, sid) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/action_dispatch/session/aerospike_store.rb', line 21 def get_session(_, sid) unless sid and (session = @client.get(key_from(sid, @options)).bins[@options[:bin]]) sid, session = generate_sid, {} end [sid, session] end |
#set_session(_, sid, session, options) ⇒ Object
Set a session in the cache.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/action_dispatch/session/aerospike_store.rb', line 29 def set_session(_, sid, session, ) merged = .to_hash.merge!(@options) {|_, old, _| old} key = key_from(sid, merged) if session @client.put(key, Aerospike::Bin.new(merged[:bin], session), expiration: merged[:expire_after]) else @client.delete(key) end sid end |