Actions
Feature #15573
closedPermit zero step in Numeric#step and Range#step
Feature #15573:
Permit zero step in Numeric#step and Range#step
Description
Numeric#step disallows zero in the 2nd argument, but it allows zero passed as the value of by:
keyword argument. I confirmed that this inconsistency exists since 2.3. I want to allow zero in the 2nd argument, too.
>> 1.step(10, by: 0) { break }
=> nil
>> 1.step(10, 0) { break }
Traceback (most recent call last):
5: from /Users/mrkn/.rbenv/versions/2.6.0/bin/irb:23:in `<main>'
4: from /Users/mrkn/.rbenv/versions/2.6.0/bin/irb:23:in `load'
3: from /Users/mrkn/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `<top (required)>'
2: from (irb):5
1: from (irb):5:in `step'
ArgumentError (step can't be 0)
Moreover, Range#step disallows zero if a block is given. I want to relax also this restriction.
>> (1..10).step(0) { break }
Traceback (most recent call last):
6: from /Users/mrkn/.rbenv/versions/2.6.0/bin/irb:23:in `<main>'
5: from /Users/mrkn/.rbenv/versions/2.6.0/bin/irb:23:in `load'
4: from /Users/mrkn/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `<top (required)>'
3: from (irb):6
2: from (irb):6:in `rescue in irb_binding'
1: from (irb):6:in `step'
ArgumentError (step can't be 0)
Actions