Class: Kameleoon::Configuration::DataFile

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/configuration/data_file.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(environment) ⇒ DataFile

Returns a new instance of DataFile.



10
11
12
13
14
# File 'lib/kameleoon/configuration/data_file.rb', line 10

def initialize(environment)
  @settings = Settings.new
  @feature_flags = {}
  @environment = environment
end

Instance Attribute Details

#feature_flagsObject (readonly)

Returns the value of attribute feature_flags.



8
9
10
# File 'lib/kameleoon/configuration/data_file.rb', line 8

def feature_flags
  @feature_flags
end

#has_any_targeted_delivery_ruleObject (readonly)

Returns the value of attribute has_any_targeted_delivery_rule.



8
9
10
# File 'lib/kameleoon/configuration/data_file.rb', line 8

def has_any_targeted_delivery_rule
  @has_any_targeted_delivery_rule
end

#settingsObject (readonly)

Returns the value of attribute settings.



8
9
10
# File 'lib/kameleoon/configuration/data_file.rb', line 8

def settings
  @settings
end

Instance Method Details

#get_feature_flag(feature_key) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/kameleoon/configuration/data_file.rb', line 26

def get_feature_flag(feature_key)
  ff = @feature_flags[feature_key]
  raise Exception::FeatureNotFound, feature_key if ff.nil?
  raise Exception::FeatureEnvironmentDisabled.new(feature_key, @environment) unless ff.environment_enabled

  ff
end

#init(configuration) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/kameleoon/configuration/data_file.rb', line 16

def init(configuration)
  @settings.update(configuration['configuration'])
  configuration['featureFlags'].each do |raw|
    ff = FeatureFlag.new(raw)
    @feature_flags[ff.feature_key] = ff
  end
  @has_any_targeted_delivery_rule = any_targeted_delivery_rule?
  self
end