class OCG::Operator::AND

Public Instance Methods

finished?() click to toggle source
# File lib/ocg/operator/and.rb, line 35
def finished?
  @left_generator.finished? && @right_generator.finished?
end
last() click to toggle source
# File lib/ocg/operator/and.rb, line 22
def last
  left_last  = @left_generator.last
  right_last = @right_generator.last

  return nil if left_last.nil? || right_last.nil?

  left_last.merge right_last
end
length() click to toggle source
# File lib/ocg/operator/and.rb, line 39
def length
  @left_generator.length * @right_generator.length
end
next() click to toggle source
# File lib/ocg/operator/and.rb, line 9
def next
  return nil if finished?

  if @right_generator.finished?
    @right_generator.reset
    @left_generator.next.merge @right_generator.next
  else
    left_last = @left_generator.last
    left_last = @left_generator.next if left_last.nil?
    left_last.merge @right_generator.next
  end
end
started?() click to toggle source
# File lib/ocg/operator/and.rb, line 31
def started?
  @left_generator.started? || @right_generator.started?
end