Module: Flagship
- Defined in:
- lib/flagship.rb,
lib/flagship/version.rb
Defined Under Namespace
Classes: Context, Dsl, Feature, Features, Flagset, FlagsetsContainer, NoFlagsetSelectedError
Constant Summary
collapse
- VERSION =
"0.6.0"
Class Method Summary
collapse
Class Method Details
.clear_state ⇒ Object
61
62
63
64
65
|
# File 'lib/flagship.rb', line 61
def clear_state
@default_flagsts_container = nil
@current_flagset = nil
@default_context && @default_context.clear
end
|
.current_flagset ⇒ Object
53
54
55
|
# File 'lib/flagship.rb', line 53
def current_flagset
@current_flagset or raise NoFlagsetSelectedError.new('No flagset is selected')
end
|
.default_context ⇒ Object
57
58
59
|
# File 'lib/flagship.rb', line 57
def default_context
@default_context ||= ::Flagship::Context.new
end
|
.default_flagsets_container ⇒ Object
49
50
51
|
# File 'lib/flagship.rb', line 49
def default_flagsets_container
@default_flagsts_container ||= ::Flagship::FlagsetsContainer.new
end
|
.define(key, options = {}, &block) ⇒ Object
13
14
15
16
17
|
# File 'lib/flagship.rb', line 13
def define(key, options = {}, &block)
context = self.default_context
base = options[:extend] ? self.get_flagset(options[:extend]) : nil
default_flagsets_container.add ::Flagship::Dsl.new(key, context, base, &block).flagset
end
|
.enabled?(key) ⇒ Boolean
19
20
21
|
# File 'lib/flagship.rb', line 19
def enabled?(key)
current_flagset.enabled?(key)
end
|
.features ⇒ Object
41
42
43
|
# File 'lib/flagship.rb', line 41
def features
current_flagset.features
end
|
.get_flagset(key) ⇒ Object
45
46
47
|
# File 'lib/flagship.rb', line 45
def get_flagset(key)
default_flagsets_container.get(key)
end
|
.select_flagset(key) ⇒ Object
37
38
39
|
# File 'lib/flagship.rb', line 37
def select_flagset(key)
@current_flagset = default_flagsets_container.get(key)
end
|
.set_context(key_or_hash, value = nil) ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/flagship.rb', line 23
def set_context(key_or_hash, value=nil)
if key_or_hash.is_a?(Hash)
key_or_hash.each { |k, v| default_context.__set(k, v) }
else
default_context.__set(key_or_hash, value)
end
end
|
.with_context(values, &block) ⇒ Object
31
32
33
34
35
|
# File 'lib/flagship.rb', line 31
def with_context(values, &block)
default_context.with_values values do
block.call
end
end
|