Class: OCG::Operator::Abstract

Inherits:
OCG
  • Object
show all
Defined in:
lib/ocg/operator/abstract.rb

Direct Known Subclasses

AND, MIX, OR

Constant Summary collapse

VARIABLES_TO_COPY =
%i[left_generator right_generator].freeze

Constants inherited from OCG

DELEGATORS, VERSION

Instance Method Summary collapse

Methods inherited from OCG

#and, #each, #mix, #or, prepare_generator

Methods included from Copyable

#initialize_copy

Constructor Details

#initialize(left_generator_or_options, right_generator_or_options) ⇒ Abstract

rubocop:disable Lint/MissingSuper



11
12
13
14
15
16
# File 'lib/ocg/operator/abstract.rb', line 11

def initialize(left_generator_or_options, right_generator_or_options) # rubocop:disable Lint/MissingSuper
  @left_generator  = OCG.prepare_generator left_generator_or_options
  @right_generator = OCG.prepare_generator right_generator_or_options

  reset
end

Instance Method Details

#finished?Boolean

Returns:

  • (Boolean)

Raises:



38
39
40
# File 'lib/ocg/operator/abstract.rb', line 38

def finished?
  raise NotImplementedError, "\"finished?\" is not implemented"
end

#lastObject



30
31
32
# File 'lib/ocg/operator/abstract.rb', line 30

def last
  raise NotImplementedError, "\"last\" is not implemented"
end

#lengthObject



42
43
44
# File 'lib/ocg/operator/abstract.rb', line 42

def length
  raise NotImplementedError, "\"length\" is not implemented"
end

#nextObject

:nocov:



26
27
28
# File 'lib/ocg/operator/abstract.rb', line 26

def next
  raise NotImplementedError, "\"next\" is not implemented"
end

#resetObject



18
19
20
21
22
23
# File 'lib/ocg/operator/abstract.rb', line 18

def reset
  @left_generator.reset
  @right_generator.reset

  nil
end

#started?Boolean

Returns:

  • (Boolean)

Raises:



34
35
36
# File 'lib/ocg/operator/abstract.rb', line 34

def started?
  raise NotImplementedError, "\"started?\" is not implemented"
end