Class: FeatureToggleService::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/feature_toggle_service/repository.rb

Constant Summary collapse

DEFAULT_VALUE =
nil

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Repository

Returns a new instance of Repository.



7
8
9
10
11
# File 'lib/feature_toggle_service/repository.rb', line 7

def initialize(config)
  @config    = config
  @overrides = {}
  @defaults  = {}
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



5
6
7
# File 'lib/feature_toggle_service/repository.rb', line 5

def config
  @config
end

Instance Method Details

#clear_defaultsObject



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

def clear_defaults
  @defaults.clear
end

#clear_overridesObject



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

def clear_overrides
  @overrides.clear
end

#default_value_for(key) ⇒ Object



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

def default_value_for(key)
  @defaults.fetch(key.to_s, DEFAULT_VALUE)
end

#get(key) ⇒ Object



13
14
15
# File 'lib/feature_toggle_service/repository.rb', line 13

def get(key)
  @overrides.fetch(key.to_s) { load_value(key) }
end

#set_default(key, value) ⇒ Object



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

def set_default(key, value)
  @defaults[key.to_s] = value
end

#set_override(key, value) ⇒ Object



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

def set_override(key, value)
  @overrides[key.to_s] = value
end

#unset_default(key) ⇒ Object



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

def unset_default(key)
  @defaults.delete key.to_s
end

#unset_override(key) ⇒ Object



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

def unset_override(key)
  @overrides.delete key.to_s
end