Method: Featureflow::Client#initialize

Defined in:
lib/featureflow/client.rb

#initialize(configuration = nil) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/featureflow/client.rb', line 7

def initialize(configuration = nil)
  @configuration = configuration || Featureflow.configuration
  @configuration.validate!
  @features = {}

  Featureflow.logger.info 'initializing client'

  @failover_variants = {}
  @configuration.with_features.each do |feature|
    Featureflow.logger.info "Registering feature with key #{feature[:key]}"
    failover = feature[:failover_variant];
    @failover_variants[feature[:key]] = failover if failover.is_a?(String) && !failover.empty?
  end

  unless @configuration.disable_events
    @events_client = EventsClient.new @configuration.event_endpoint, @configuration.api_key
    @events_client.register_features @configuration.with_features
  end

  reload

  Featureflow.logger.info 'client initialized'
end