Class: PrimePrinter::PrimeGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/prime_printer/prime_generator.rb

Instance Method Summary collapse

Constructor Details

#initializePrimeGenerator

Returns a new instance of PrimeGenerator.



2
3
4
5
6
7
8
9
10
11
# File 'lib/prime_printer/prime_generator.rb', line 2

def initialize
  @generator = Fiber.new do
    Fiber.yield 2
    value = 3
    loop do
      Fiber.yield value if is_prime? value
      value += 2
    end
  end
end

Instance Method Details

#next(count = 1) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/prime_printer/prime_generator.rb', line 13

def next(count = 1)
  if count == 1
    @generator.resume
  else
    [].tap do |primes|
      count.times { primes.push @generator.resume }
    end
  end
end