Class: Datadog::Core::Utils::Sequence

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/core/utils/sequence.rb

Overview

Generates values from a consistent sequence

Instance Method Summary collapse

Constructor Details

#initialize(seed = 0, &block) ⇒ Sequence

Returns a new instance of Sequence.



6
7
8
9
10
# File 'lib/datadog/core/utils/sequence.rb', line 6

def initialize(seed = 0, &block)
  @seed = seed
  @current = seed
  @next_item = block
end

Instance Method Details

#nextObject



12
13
14
15
16
# File 'lib/datadog/core/utils/sequence.rb', line 12

def next
  next_item = @next_item ? @next_item.call(@current) : @current
  @current += 1
  next_item
end

#reset!Object



18
19
20
# File 'lib/datadog/core/utils/sequence.rb', line 18

def reset!
  @current = @seed
end