class Retained::Configuration
Attributes
default_group[R]
group_configs[R]
prefix[RW]
redis[RW]
redis_connection[W]
Public Class Methods
new()
click to toggle source
# File lib/retained/configuration.rb, line 12 def initialize @redis = { url: 'redis://localhost:6379' } @prefix = 'retained' @default_group = 'default' @group_configs = {} end
Public Instance Methods
group(group) { |group_configs| ... }
click to toggle source
Retrieve the configuration for the group. A block may be provided to configure the group.
# File lib/retained/configuration.rb, line 21 def group(group) @group_configs[group.to_s] ||= fetch_group_configuration(group) if block_given? yield(@group_configs[group.to_s]) save_group_configuration(group, @group_configs[group.to_s]) else @group_configs[group.to_s].set_defaults end @group_configs[group.to_s] end
redis_connection()
click to toggle source
# File lib/retained/configuration.rb, line 34 def redis_connection @redis_connection ||= RedisConnection.new(redis) end
Private Instance Methods
fetch_group_configuration(group)
click to toggle source
# File lib/retained/configuration.rb, line 40 def fetch_group_configuration(group) redis_connection.sadd "#{prefix}:groups", group.to_s GroupConfiguration.new(redis_connection.hgetall "#{prefix}:group_config:#{group}") end
save_group_configuration(group, configuration)
click to toggle source
# File lib/retained/configuration.rb, line 45 def save_group_configuration(group, configuration) configuration.set_defaults redis_connection.hmset "#{prefix}:group_config:#{group}", *configuration.to_hash redis_connection.sadd "#{prefix}:groups", group.to_s @group_configs[group.to_s] = configuration end