Class: P1MeterReader::DataParsing::ParseChain::Chainable

Inherits:
Object
  • Object
show all
Defined in:
lib/p1_meter_reader/data_parsing/parse_chain/chainable.rb

Instance Method Summary collapse

Constructor Details

#initialize(next_chain = nil) ⇒ Chainable

Returns a new instance of Chainable.



5
6
7
# File 'lib/p1_meter_reader/data_parsing/parse_chain/chainable.rb', line 5

def initialize(next_chain = nil)
  @next = next_chain
end

Instance Method Details

#next=(chainable) ⇒ Object



9
10
11
# File 'lib/p1_meter_reader/data_parsing/parse_chain/chainable.rb', line 9

def next=(chainable)
  @next=chainable
end

#try(lines_enumerator, output) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/p1_meter_reader/data_parsing/parse_chain/chainable.rb', line 13

def try(lines_enumerator, output)
  if can_handle?(lines_enumerator.peek)
    handle(lines_enumerator, output)
  else
    next_chain = @next || :no_next_chain

    next_chain.try(lines_enumerator, output)
  end
end