class Multiples::MultiplesEnumerator
Attributes
palindrome[R]
phase[R]
Public Class Methods
new(palindrome)
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 38 def initialize palindrome @base = 0 @palindrome = palindrome @phase = 0 end
Public Instance Methods
current()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 44 def current @base end
each() { |base| ... }
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 53 def each loop do send :next yield @base end end
lazy()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 60 def lazy Enumerator::Lazy.new(self) do |yielder, *vals| yielder.<<(*vals) end end
next()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 66 def next @base += progress_phase end
prev()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 70 def prev @base -= regress_phase end
reset!()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 48 def reset! @base = 0 @phase = 0 end
Private Instance Methods
progress_phase()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 75 def progress_phase val = @palindrome[@phase] @phase += 1 @phase = 0 if @phase > @palindrome.length - 1 val end
regress_phase()
click to toggle source
# File lib/multiples/multiples_enumerator.rb, line 82 def regress_phase @phase -= 1 @phase = @palindrome.length - 1 if @phase < 0 @palindrome[@phase] end