Module: ConfigManager::Toggle

Defined in:
lib/config_manager/toggle.rb

Class Method Summary collapse

Class Method Details

.active?(test, challenge = nil) ⇒ Boolean

Returns:

  • (Boolean)


3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/config_manager/toggle.rb', line 3

def self.active?(test, challenge=nil)
return true if stub_in_host_app?

 	toggle_def = Toggles::Definition.new(test)
 	return false unless toggle_def.type

 	type_klass = toggle_def.type_class
 	if challenge
   	type_klass.active? toggle_def, challenge
   else
   	type_klass.active? toggle_def
   end
end

.create(*args) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/config_manager/toggle.rb', line 25

def self.create(*args)
 	toggle_hash = args.first

 	toggle_def = Toggles::Definition.new(toggle_hash[:name])
 	toggle_def.type = toggle_hash[:type]
 	values = (toggle_hash[:type] == 'boolean') ? 
 			toggle_hash[:formatted_acceptable_values] : 
 			toggle_hash[:formatted_acceptable_values].gsub(/\s*,\s*/,',').split(',')
 	toggle_def.acceptable_values = values

 	toggle_def
end

.delete(name) ⇒ Object



38
39
40
41
# File 'lib/config_manager/toggle.rb', line 38

def self.delete(name)
 	toggle = Toggles::Definition.new(name)
 	toggle.delete
end

.from_yaml(path) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/config_manager/toggle.rb', line 43

def self.from_yaml(path)
	toggles = YAML::load(File.open(path))
	counts = [0, 0]
	toggles.each do |name, values|
		begin
			create({:name => name,
						 	:type => values['type'],
						 	:formatted_acceptable_values => values['acceptable_values']})
			counts[0] += 1
		rescue RuntimeError
			Rails.logger.error "Bad toggle definition. #{$!}"
			counts[1] += 1
		end
	end

	counts
end

.quick(name, acceptable_values = 'test') ⇒ Object



66
67
68
69
70
# File 'lib/config_manager/toggle.rb', line 66

def self.quick(name, acceptable_values='test')
	create 	:name => name,
					:type => 'set',
					:formatted_acceptable_values => acceptable_values
end

.to_yamlObject



61
62
63
64
# File 'lib/config_manager/toggle.rb', line 61

def self.to_yaml
	toggles_hash = Hash[toggles.map(&:to_hash).map{|t| [t.keys.first, t.values.first]}]
	YAML.dump(toggles_hash)
end

.togglesObject



17
18
19
20
21
22
23
# File 'lib/config_manager/toggle.rb', line 17

def self.toggles
 	toggle_defs = []
 	$redis.keys("#{Toggles::Definition.prefix}*").each do |key|
   	toggle_defs << Toggles::Definition.new(key.gsub(Toggles::Definition.prefix, ''))
 	end
 	toggle_defs.sort{|x,y| x.name <=> y.name}
end