class ConfigManager::Toggles::Definition
Public Class Methods
new(test)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 5 def initialize(test) @key = key(test) end
prefix()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 58 def self.prefix "#{Rails.application.class.parent_name.underscore}_toggles-" end
types()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 54 def self.types %w(boolean set) end
Public Instance Methods
acceptable_values()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 36 def acceptable_values @values ||= $redis.hget(@key, 'acceptable_values') #self.send("to_#{type}", @values) type_class.from_json(@values) end
acceptable_values=(values)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 42 def acceptable_values=(values) return unless valid? $redis.hset(@key, 'acceptable_values', type_class.to_json(values)) #$redis.hset(@key, 'acceptable_values', self.send("to_#{type}", values)) @values = $redis.hget(@key, 'acceptable_values') end
Also aliased as: formatted_acceptable_values=
delete()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 50 def delete $redis.del(@key) end
exists?()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 9 def exists? $redis.exists(@key) end
formatted_acceptable_values()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 73 def formatted_acceptable_values values = acceptable_values values.respond_to?(:join) ? values.join(',') : values end
message()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 66 def message return "missing name" unless name.present? return "missing type" unless type.present? nil end
name()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 13 def name @name ||= @key.gsub(Definition.prefix, '') end
to_hash()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 82 def to_hash {name => {'type' => type, 'acceptable_values' => formatted_acceptable_values}} end
to_yaml()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 78 def to_yaml to_hash.to_yaml end
type()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 17 def type @type ||= $redis.hget(@key, 'type') end
type=(type)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 21 def type=(type) return unless name.present? unless Definition.types.include?(type) raise("#{type} is an unsupported Toggle type. Acceptable values are #{Definition.types}") end $redis.hset(@key, 'type', type) @type = $redis.hget(@key, 'type') end
type_class()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 31 def type_class return Null unless valid? eval("ConfigManager::Toggles::#{type.camelize}") end
valid?()
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 62 def valid? !!(name.present? && type) end
Private Instance Methods
key(test)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 86 def key(test) "#{Definition.prefix}#{test}" end
to_(values)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 102 def to_(values) nil end
to_boolean(value)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 90 def to_boolean(value) if value.is_a?(String) !!(value =~ /^(true|t|yes|y|1)$/i) else value end end
to_set(values)
click to toggle source
# File lib/config_manager/toggles/definition.rb, line 98 def to_set(values) values || [] end