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:



48
49
50
# File 'lib/ocg/operator/abstract.rb', line 48

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

#lastObject



40
41
42
# File 'lib/ocg/operator/abstract.rb', line 40

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

#lengthObject



52
53
54
# File 'lib/ocg/operator/abstract.rb', line 52

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

#nextObject

:nocov:



36
37
38
# File 'lib/ocg/operator/abstract.rb', line 36

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:



44
45
46
# File 'lib/ocg/operator/abstract.rb', line 44

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