Class: Range
- Inherits:
-
Object
- Object
- Range
- Defined in:
- lib/fizzbuzz/core/range.rb
Overview
Provides a convenient integration of FizzBuzz with Range class.
Instance Method Summary collapse
-
#fizzbuzz(reverse = false, &block) ⇒ Object
call-seq: range.fizzbuzz( reverse ) {|value| block } -> self range.fizzbuzz( reverse ) -> an Enumerator.
Instance Method Details
#fizzbuzz(reverse = false, &block) ⇒ Object
call-seq:
range.fizzbuzz( reverse ) {|value| block } -> self
range.fizzbuzz( reverse ) -> an Enumerator
Returns either an Enumerator
or accepts a block if such is given. When a block is given then it will call the block once for each subsequent value for a given range, passing the value as a parameter to the block.
Additionally, if the value of reverse
is set to be true
then the results will be given in an reverse order whether in a resulting array or when passing values to a block given.
Example:
(1..15).fizzbuzz #=> #<Enumerator: 1..15:fizzbuzz(false)>
(1..15).fizzbuzz(true) #=> #<Enumerator: 1..15:fizzbuzz(true)>
Example:
(1..15).fizzbuzz {|value| puts "Got #{value}" }
Produces:
Got 1
Got 2
Got Fizz
Got 4
Got Buzz
Got Fizz
Got 7
Got 8
Got Fizz
Got Buzz
Got 11
Got Fizz
Got 13
Got 14
Got FizzBuzz
See also: FizzBuzz::fizzbuzz, FizzBuzz#to_a, FizzBuzz#each and FizzBuzz#reverse_each
47 48 49 50 51 52 53 54 |
# File 'lib/fizzbuzz/core/range.rb', line 47 def fizzbuzz(reverse = false, &block) if block_given? FizzBuzz.fizzbuzz(self.begin, self.end, reverse, &block) self else enum_for(:fizzbuzz, reverse) end end |