diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 08:31:04 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-02 08:31:04 +0000 |
commit | f099a94afaa5a8e3871e7de8fa89c97ce016dd54 (patch) | |
tree | 9acf743ec17a2a52706d8b87938514d17e9371b4 /range.c | |
parent | 3330ec6cffd7fc128e23b6021689e6a58851bfd0 (diff) |
* range.c (range_step): call to_int if step is not a numeric
value. [ruby-dev:34575]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r-- | range.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -306,6 +306,9 @@ range_step(int argc, VALUE *argv, VALUE range) } else { rb_scan_args(argc, argv, "01", &step); + if (!rb_obj_is_kind_of(step, rb_cNumeric)) { + step = rb_to_int(step); + } if (rb_funcall(step, '<', 1, INT2FIX(0))) { rb_raise(rb_eArgError, "step can't be negative"); } |