Class: SplitIoClient::Api::Splits

Inherits:
Client
  • Object
show all
Defined in:
lib/engine/api/splits.rb

Instance Method Summary collapse

Methods inherited from Client

#call_api

Constructor Details

#initialize(api_key, config, metrics) ⇒ Splits

Returns a new instance of Splits.



4
5
6
7
8
# File 'lib/engine/api/splits.rb', line 4

def initialize(api_key, config, metrics)
  @api_key = api_key
  @config = config
  @metrics = metrics
end

Instance Method Details

#since(since) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/engine/api/splits.rb', line 10

def since(since)
  start = Time.now
  prefix = 'splitChangeFetcher'
  splits = call_api('/splitChanges', @config, @api_key, {:since => since})

  if splits.status / 100 == 2
    result = splits_with_segment_names(splits.body)

    @metrics.count(prefix + '.status.' + splits.status.to_s, 1)

    @config.logger.debug("#{result[:splits].length} splits retrieved. since=#{since}") if @config.debug_enabled and result[:splits].length > 0
    @config.logger.debug("#{result}") if @config.transport_debug_enabled
  else
    @metrics.count(prefix + '.status.' + splits.status.to_s, 1)

    @config.logger.error('Unexpected result from API call')
  end

  latency = (Time.now - start) * 1000.0
  @metrics.time(prefix + '.time', latency)

  result
end