Difference between revisions of "Powers Of 2 Range Assignment"
Jump to navigation
Jump to search
Line 30: | Line 30: | ||
16 | 16 | ||
32</nowiki> | 32</nowiki> | ||
+ | |||
+ | ====inclusive client with block given==== | ||
+ | |||
+ | <nowiki>exclusive_powers_of_two = PowersOfTwoRange.new(64, inclusive: true) | ||
+ | exclusive_powers_of_two.each do |n| | ||
+ | puts n | ||
+ | end</nowiki> | ||
+ | |||
+ | outputs | ||
+ | |||
+ | <nowiki>1 | ||
+ | 2 | ||
+ | 4 | ||
+ | 8 | ||
+ | 16 | ||
+ | 32 | ||
+ | 64</nowiki> | ||
===each_with_index=== | ===each_with_index=== |
Revision as of 16:04, 11 April 2022
Contents
Reference
Ruby
Code to Implement
PowersOfTwoRange
file: | src/main/ruby/powers_of_two_range/powers_of_two_range.rb | ![]() |
class: | PowersOfTwoRange | |
superclass: | Object | |
methods: | initialize(maximum, inclusive: false) each each_with_index |
initialize(maximum, inclusive: false)
hang onto enough information in instance variables to support each and each_with_index
each
if a block is given, repeatedly yield with appropriate value.
otherwise, return an enum via to_enum.
exclusive client with block given
exclusive_powers_of_two = PowersOfTwoRange.new(64) exclusive_powers_of_two.each do |n| puts n end
outputs
1 2 4 8 16 32
inclusive client with block given
exclusive_powers_of_two = PowersOfTwoRange.new(64, inclusive: true) exclusive_powers_of_two.each do |n| puts n end
outputs
1 2 4 8 16 32 64
each_with_index
if a block is given, repeatedly yield with appropriate value and its index.
otherwise, return an enum via to_enum.
Unit Test
file: | src/test/ruby/powers_of_two_range/powers_of_two_range.rb | ![]() |
note: ensure that you have removed all printing to receive credit for any assignment.