class SharedSettings::Persistence::Redis
Constants
- PREFIX
Public Class Methods
new(client)
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 6 def initialize(client) @client = client end
Public Instance Methods
all()
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 36 def all setting_keys = @client.scan_each(match: prefixed_name('*')).to_a setting_keys.map do |key| setting_name = key.split("#{PREFIX}:").last get(setting_name) end end
delete(name)
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 46 def delete(name) @client.del(prefixed_name(name)) true end
get(name)
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 21 def get(name) stored_value = @client.hgetall(prefixed_name(name)) if stored_value.keys.any? return SharedSettings::Setting.new( stored_value['name'], stored_value['type'], stored_value['value'], stored_value['encrypted'] == '1' ) end raise SettingNotFoundError end
put(serialized_setting)
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 10 def put(serialized_setting) @client.hset(prefixed_name(serialized_setting.name), { 'name' => serialized_setting.name, 'type' => serialized_setting.type, 'value' => serialized_setting.value, 'encrypted' => serialized_setting.encrypted ? '1' : '0' }) serialized_setting.name end
Private Instance Methods
prefixed_name(name)
click to toggle source
# File lib/shared_settings/persistence/redis.rb, line 54 def prefixed_name(name) "#{PREFIX}:#{name}" end