From e0d6430f63c4cbe0c71ce82ee23284671389a818 Mon Sep 17 00:00:00 2001 From: mimaki Date: Fri, 20 Apr 2012 09:39:03 +0900 Subject: add mruby sources --- mrblib/range.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 mrblib/range.rb (limited to 'mrblib/range.rb') diff --git a/mrblib/range.rb b/mrblib/range.rb new file mode 100644 index 000000000..79bc40ecd --- /dev/null +++ b/mrblib/range.rb @@ -0,0 +1,30 @@ +# +# Range +# +class Range + # 15.2.14.4.4 + def each(&block) + val = self.first + unless val.respond_to? :succ + raise TypeError, "can't iterate" + end + + last = self.last + return self if (val <=> last) > 0 + + while((val <=> last) < 0) + block.call(val) + val = val.succ + end + + block.call(val) unless exclude_end? + + self + end +end + +# include modules +module Enumerable; end +class Range + include Enumerable +end -- cgit v1.2.3