Class: Prefab::FeatureFlagClient

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

Constant Summary collapse

MAX_32_FLOAT =
4294967294.0

Instance Method Summary collapse

Methods included from ConfigHelper

#value_of, #value_of_variant

Constructor Details

#initialize(base_client) ⇒ FeatureFlagClient

Returns a new instance of FeatureFlagClient.



7
8
9
# File 'lib/prefab/feature_flag_client.rb', line 7

def initialize(base_client)
  @base_client = base_client
end

Instance Method Details

#feature_is_on?(feature_name) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/prefab/feature_flag_client.rb', line 15

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)


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

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

  return is_on?(_get(feature_name, lookup_key, attributes, default: false))
end

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



25
26
27
28
29
# File 'lib/prefab/feature_flag_client.rb', line 25

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

  value_of_variant_or_nil(variant, default)
end

#upsert(feature_name, feature_obj) ⇒ Object



11
12
13
# File 'lib/prefab/feature_flag_client.rb', line 11

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