Class: Prefab::FeatureFlagClient

Inherits:
Object
  • Object
show all
Defined in:
lib/prefab/feature_flag_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_client) ⇒ FeatureFlagClient

Returns a new instance of FeatureFlagClient.



5
6
7
# File 'lib/prefab/feature_flag_client.rb', line 5

def initialize(base_client)
  @base_client = base_client
end

Instance Method Details

#feature_is_on?(feature_name) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/prefab/feature_flag_client.rb', line 9

def feature_is_on?(feature_name)
  feature_is_on_for?(feature_name, nil)
end

#feature_is_on_for?(feature_name, lookup_key, attributes: {}) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
19
# File 'lib/prefab/feature_flag_client.rb', line 13

def feature_is_on_for?(feature_name, lookup_key, attributes: {})
  @base_client.stats.increment('prefab.featureflag.on', tags: ["feature:#{feature_name}"])

  variant = @base_client.config_client.get(feature_name, false, attributes, lookup_key)

  is_on?(variant)
end

#get(feature_name, lookup_key = nil, attributes = {}, default: false) ⇒ Object



21
22
23
24
25
# File 'lib/prefab/feature_flag_client.rb', line 21

def get(feature_name, lookup_key = nil, attributes = {}, default: false)
  value = _get(feature_name, lookup_key, attributes)

  value.nil? ? default : value
end