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
formatted_acceptable_values=(values)
Alias for: acceptable_values=
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