Module: Flagship

Defined in:
lib/flagship.rb,
lib/flagship/version.rb

Defined Under Namespace

Classes: Context, Dsl, Feature, Flagset, FlagsetsContainer, NoFlagsetSelectedError

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.clear_stateObject



49
50
51
52
# File 'lib/flagship.rb', line 49

def self.clear_state
  @@default_flagsts_container = nil
  @@current_flagset = nil
end

.current_flagsetObject



41
42
43
# File 'lib/flagship.rb', line 41

def self.current_flagset
  @@current_flagset or raise NoFlagsetSelectedError.new('No flagset is selected')
end

.default_contextObject



45
46
47
# File 'lib/flagship.rb', line 45

def self.default_context
  @@default_context ||= ::Flagship::Context.new
end

.default_flagsets_containerObject



37
38
39
# File 'lib/flagship.rb', line 37

def self.default_flagsets_container
  @@default_flagsts_container ||= ::Flagship::FlagsetsContainer.new
end

.define(key, options = {}, &block) ⇒ Object



11
12
13
14
15
# File 'lib/flagship.rb', line 11

def self.define(key, options = {}, &block)
  context = self.default_context
  base = options[:extend] ? self.get_flagset(options[:extend]) : nil
  self.default_flagsets_container.add ::Flagship::Dsl.new(key, context, base, &block).flagset
end

.enabled?(key) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/flagship.rb', line 17

def self.enabled?(key)
  self.current_flagset.enabled?(key)
end

.featuresObject



29
30
31
# File 'lib/flagship.rb', line 29

def self.features
  self.current_flagset.features
end

.get_flagset(key) ⇒ Object



33
34
35
# File 'lib/flagship.rb', line 33

def self.get_flagset(key)
  self.default_flagsets_container.get(key)
end

.select_flagset(key) ⇒ Object



25
26
27
# File 'lib/flagship.rb', line 25

def self.select_flagset(key)
  @@current_flagset = self.default_flagsets_container.get(key)
end

.set_context(key, value) ⇒ Object



21
22
23
# File 'lib/flagship.rb', line 21

def self.set_context(key, value)
  self.default_context.__set(key, value)
end