Class: Magick::Adapters::Redis
- Defined in:
- lib/magick/adapters/redis.rb
Instance Method Summary collapse
- #all_features ⇒ Object
- #delete(feature_name) ⇒ Object
- #exists?(feature_name) ⇒ Boolean
- #get(feature_name, key) ⇒ Object
-
#initialize(redis_client = nil) ⇒ Redis
constructor
A new instance of Redis.
- #set(feature_name, key, value) ⇒ Object
Constructor Details
#initialize(redis_client = nil) ⇒ Redis
Returns a new instance of Redis.
6 7 8 9 10 11 12 |
# File 'lib/magick/adapters/redis.rb', line 6 def initialize(redis_client = nil) @redis = redis_client || default_redis_client @namespace = 'magick:features' raise AdapterError, 'Redis client is required' unless @redis rescue StandardError => e raise AdapterError, "Failed to initialize Redis adapter: #{e.message}" end |
Instance Method Details
#all_features ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/magick/adapters/redis.rb', line 39 def all_features pattern = "#{namespace}:*" keys = redis.keys(pattern) keys.map { |key| key.sub("#{namespace}:", '') } rescue StandardError => e raise AdapterError, "Failed to get all features from Redis: #{e.message}" end |
#delete(feature_name) ⇒ Object
27 28 29 30 31 |
# File 'lib/magick/adapters/redis.rb', line 27 def delete(feature_name) redis.del(key_for(feature_name)) rescue StandardError => e raise AdapterError, "Failed to delete from Redis: #{e.message}" end |
#exists?(feature_name) ⇒ Boolean
33 34 35 36 37 |
# File 'lib/magick/adapters/redis.rb', line 33 def exists?(feature_name) redis.exists?(key_for(feature_name)) rescue StandardError => e raise AdapterError, "Failed to check existence in Redis: #{e.message}" end |
#get(feature_name, key) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/magick/adapters/redis.rb', line 14 def get(feature_name, key) value = redis.hget(key_for(feature_name), key.to_s) deserialize_value(value) rescue StandardError => e raise AdapterError, "Failed to get from Redis: #{e.message}" end |
#set(feature_name, key, value) ⇒ Object
21 22 23 24 25 |
# File 'lib/magick/adapters/redis.rb', line 21 def set(feature_name, key, value) redis.hset(key_for(feature_name), key.to_s, serialize_value(value)) rescue StandardError => e raise AdapterError, "Failed to set in Redis: #{e.message}" end |