Class: RediSesh::Store
- Inherits:
-
Object
- Object
- RediSesh::Store
- Defined in:
- lib/redi_sesh/store.rb
Constant Summary collapse
- DEFAULT_EXPIRES_IN =
1 day
60 * 60 * 24
Class Method Summary collapse
Instance Method Summary collapse
- #del(*keys) ⇒ Object
- #get(key) ⇒ Object
- #info ⇒ Object
-
#initialize(redis:, prefix:) ⇒ Store
constructor
A new instance of Store.
- #keys ⇒ Object
- #set(key, value, options = {}) ⇒ Object
Constructor Details
#initialize(redis:, prefix:) ⇒ Store
Returns a new instance of Store.
26 27 28 29 |
# File 'lib/redi_sesh/store.rb', line 26 def initialize(redis:, prefix:) @redis = redis @prefix = prefix end |
Class Method Details
.create(url) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/redi_sesh/store.rb', line 9 def self.create(url) uri = URI.parse(url) parts = uri.path.split('/') parts.shift if parts.first.empty? if parts.size > 1 path, prefix = parts uri.path = "/#{path}" else prefix = 'sessions' end redis = Redis.new(url: uri) new(redis: redis, prefix: prefix) end |
Instance Method Details
#del(*keys) ⇒ Object
47 48 49 |
# File 'lib/redi_sesh/store.rb', line 47 def del(*keys) redis.del(*keys.map { |key| build_key(key) }) end |
#get(key) ⇒ Object
42 43 44 45 |
# File 'lib/redi_sesh/store.rb', line 42 def get(key) data = redis.get(build_key(key)) deserialize(data) end |
#info ⇒ Object
31 32 33 |
# File 'lib/redi_sesh/store.rb', line 31 def info redis.info end |
#keys ⇒ Object
51 52 53 54 55 |
# File 'lib/redi_sesh/store.rb', line 51 def keys redis.keys("#{prefix}:*").map do |key| key.delete_prefix("#{prefix}:") end end |
#set(key, value, options = {}) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/redi_sesh/store.rb', line 35 def set(key, value, = {}) key = build_key(key) expires_in = .fetch(:expires_in, DEFAULT_EXPIRES_IN) value = serialize(value) redis.set(key, value, ex: expires_in) end |