Class: StormForge::Dsl::TestCase::DataSource::RandomNumber

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Serializers::JSON
Defined in:
lib/stormforge/dsl/test_case/data_source/random_number.rb

Defined Under Namespace

Classes: InvalidRange

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options) ⇒ RandomNumber

Returns a new instance of RandomNumber.



10
11
12
13
14
15
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 10

def initialize(name, options)
  @name = name
  @sequence = 0

  @range = ensure_range(options.fetch(:range, nil))
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 8

def name
  @name
end

#rangeObject (readonly)

Returns the value of attribute range.



8
9
10
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 8

def range
  @range
end

Instance Method Details

#countObject



27
28
29
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 27

def count
  @sequence
end

#nextObject



17
18
19
20
21
22
23
24
25
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 17

def next
  args = {
    t: "random_number",
    n: name,
    seq: (@sequence += 1)
  }

  StormForge::Dsl::TestCase::DataSource.build_marker("GENERATOR", args)
end

#serializable_hash(*args) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/stormforge/dsl/test_case/data_source/random_number.rb', line 31

def serializable_hash(*args)
  {
    name: name,
    type: "random_number",
    range: [range.begin, range.end]
  }
end