Class: Mixpanel::OpenFeature::Provider

Inherits:
Object
  • Object
show all
Defined in:
lib/mixpanel/openfeature/provider.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(flags_provider) ⇒ Provider

Returns a new instance of Provider.



27
28
29
30
# File 'lib/mixpanel/openfeature/provider.rb', line 27

def initialize(flags_provider)
  @flags_provider = flags_provider
  @metadata = ::OpenFeature::SDK::Provider::ProviderMetadata.new(name: 'mixpanel-provider').freeze
end

Instance Attribute Details

#metadataObject (readonly)

Returns the value of attribute metadata.



8
9
10
# File 'lib/mixpanel/openfeature/provider.rb', line 8

def 
  @metadata
end

#mixpanelObject (readonly)

Returns the value of attribute mixpanel.



8
9
10
# File 'lib/mixpanel/openfeature/provider.rb', line 8

def mixpanel
  @mixpanel
end

Class Method Details

.from_local(token, config, error_handler: nil) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/mixpanel/openfeature/provider.rb', line 10

def self.from_local(token, config, error_handler: nil)
  tracker = ::Mixpanel::Tracker.new(token, error_handler, local_flags_config: config)
  flags_provider = tracker.local_flags
  flags_provider.start_polling_for_definitions!
  provider = new(flags_provider)
  provider.instance_variable_set(:@mixpanel, tracker)
  provider
end

.from_remote(token, config, error_handler: nil) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/mixpanel/openfeature/provider.rb', line 19

def self.from_remote(token, config, error_handler: nil)
  tracker = ::Mixpanel::Tracker.new(token, error_handler, remote_flags_config: config)
  flags_provider = tracker.remote_flags
  provider = new(flags_provider)
  provider.instance_variable_set(:@mixpanel, tracker)
  provider
end

Instance Method Details

#fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



36
37
38
# File 'lib/mixpanel/openfeature/provider.rb', line 36

def fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :boolean, evaluation_context)
end

#fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



52
53
54
# File 'lib/mixpanel/openfeature/provider.rb', line 52

def fetch_float_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :float, evaluation_context)
end

#fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



48
49
50
# File 'lib/mixpanel/openfeature/provider.rb', line 48

def fetch_integer_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :integer, evaluation_context)
end

#fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



44
45
46
# File 'lib/mixpanel/openfeature/provider.rb', line 44

def fetch_number_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :number, evaluation_context)
end

#fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



56
57
58
# File 'lib/mixpanel/openfeature/provider.rb', line 56

def fetch_object_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :object, evaluation_context)
end

#fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object



40
41
42
# File 'lib/mixpanel/openfeature/provider.rb', line 40

def fetch_string_value(flag_key:, default_value:, evaluation_context: nil)
  resolve(flag_key, default_value, :string, evaluation_context)
end

#shutdownObject



32
33
34
# File 'lib/mixpanel/openfeature/provider.rb', line 32

def shutdown
  @flags_provider.shutdown if @flags_provider.respond_to?(:shutdown)
end