Class: ExpectSequence

Inherits:
Object
  • Object
show all
Defined in:
lib/teuton/case/dsl/expect_sequence.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lines) ⇒ ExpectSequence

Returns a new instance of ExpectSequence.



5
6
7
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 5

def initialize(lines)
  @lines = lines
end

Instance Attribute Details

#resultObject (readonly)

Returns the value of attribute result.



2
3
4
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 2

def result
  @result
end

#statesObject (readonly)

Returns the value of attribute states.



3
4
5
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 3

def states
  @states
end

Instance Method Details

#expectedObject



19
20
21
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 19

def expected
  @expected.join(">")
end

#is_valid?(&block) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
17
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 9

def is_valid?(&block)
  @expected = []
  @states = [
    {last_index: -1, steps: [], found: []}
  ]
  instance_eval(&block)
  @result = find_best_state
  @result[:ok]
end

#realObject



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/teuton/case/dsl/expect_sequence.rb', line 23

def real
  # From final result return evaluation progress
  text = []
  @result[:steps].each do |step|
    index = text.size
    text << if step
      @expected[index]
    else
      "not #{@expected[index]}"
    end
  end
  text.join(">")
end