Class: Prefab::FeatureFlagClient

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

Constant Summary collapse

MAX_32_FLOAT =
4294967294.0

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)


13
14
15
# File 'lib/prefab/feature_flag_client.rb', line 13

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)


17
18
19
20
21
22
# File 'lib/prefab/feature_flag_client.rb', line 17

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

  feature_obj = @base_client.config_client.get(feature_name)
  return is_on?(feature_name, lookup_key, attributes, feature_obj)
end

#upsert(feature_name, feature_obj) ⇒ Object



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

def upsert(feature_name, feature_obj)
  @base_client.config_client.upsert(feature_name, Prefab::ConfigValue.new(feature_flag: feature_obj))
end