Class: DFuzz::Diagonal

Inherits:
Generator
  • Object
show all
Defined in:
lib/dfuzz/diagonal.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Generator

#current, #each, #empty?, #end?, #index, #next, #next?, #pos, #rewind, #shift, #yield

Constructor Details

#initialize(*enums) ⇒ Diagonal

Returns a new instance of Diagonal.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dfuzz/diagonal.rb', line 4

def initialize *enums
  @enums = enums

  super() do |yldr|
    while !@enums.empty?
      @enums.dup.each do |enum|
        begin
          yldr.yield enum.next
        rescue StopIteration
          @enums.delete enum
        end
      end
    end
  end
end

Instance Attribute Details

#enumsObject

Returns the value of attribute enums.



3
4
5
# File 'lib/dfuzz/diagonal.rb', line 3

def enums
  @enums
end