Class: SplitIoClient::Api::Segments
- Defined in:
- lib/engine/api/segments.rb
Instance Method Summary collapse
-
#initialize(api_key, config, metrics, segments_repository) ⇒ Segments
constructor
A new instance of Segments.
- #store_segments_by_names(names) ⇒ Object
Methods inherited from Client
Constructor Details
#initialize(api_key, config, metrics, segments_repository) ⇒ Segments
Returns a new instance of Segments.
4 5 6 7 8 9 |
# File 'lib/engine/api/segments.rb', line 4 def initialize(api_key, config, metrics, segments_repository) @config = config @metrics = metrics @api_key = api_key @segments_repository = segments_repository end |
Instance Method Details
#store_segments_by_names(names) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/engine/api/segments.rb', line 11 def store_segments_by_names(names) start = Time.now prefix = 'segmentChangeFetcher' return if names.nil? || names.empty? names.each do |name| since = @segments_repository.get_change_number(name) while true fetch_segments(name, prefix, since).each { |segment| @segments_repository.add_to_segment(segment) } @config.logger.debug("Segment #{name} fetched before: #{since}, till: #{@segments_repository.get_change_number(name)}") if @config.debug_enabled break if (since.to_i >= @segments_repository.get_change_number(name).to_i) since = @segments_repository.get_change_number(name) end end latency = (Time.now - start) * 1000.0 @metrics.time(prefix + '.time', latency) end |