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
12
# File 'lib/feature_toggle_service/repository.rb', line 7

def initialize(config)
  @config    = config
  @overrides = {}
  @cached    = {}
  @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



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

def clear_defaults
  @defaults.clear
end

#clear_overridesObject



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

def clear_overrides
  @overrides.clear
end

#default_value_for(key) ⇒ Object



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

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

#get(key) ⇒ Object



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

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

#set_default(key, value) ⇒ Object



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

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

#set_override(key, value) ⇒ Object



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

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

#unset_default(key) ⇒ Object



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

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

#unset_override(key) ⇒ Object



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

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