class Fibber
Holds state for a fibonacci series
Public Class Methods
Source
# File src/ruby/bin/math_server.rb, line 50 def initialize(limit) fail "bad limit: got #{limit}, want limit > 0" if limit < 1 @limit = limit end
Public Instance Methods
Source
# File src/ruby/bin/math_server.rb, line 55 def generator return enum_for(:generator) unless block_given? idx, current, previous = 0, 1, 1 until idx == @limit if idx.zero? || idx == 1 yield Math::Num.new(num: 1) idx += 1 next end tmp = current current = previous + current previous = tmp yield Math::Num.new(num: current) idx += 1 end end