From a5c159ba3d07f858b3667d4c9d29d37ab8068ef3 Mon Sep 17 00:00:00 2001 From: Brian Shirai Date: Fri, 22 Mar 2013 18:16:01 -0700 Subject: [PATCH] Fixed Range#last for 1.9. --- kernel/common/range.rb | 1 - kernel/common/range18.rb | 1 + kernel/common/range19.rb | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/common/range.rb b/kernel/common/range.rb index e573449e4a..8eb0bfed79 100644 --- a/kernel/common/range.rb +++ b/kernel/common/range.rb @@ -70,7 +70,6 @@ def inspect end attr_reader :end - alias_method :last, :end def step(step_size=1) # :yields: object return to_enum(:step, step_size) unless block_given? diff --git a/kernel/common/range18.rb b/kernel/common/range18.rb index 8bbd1b7ab0..9588ea7846 100644 --- a/kernel/common/range18.rb +++ b/kernel/common/range18.rb @@ -40,6 +40,7 @@ def each(&block) end alias_method :first, :begin + alias_method :last, :end protected diff --git a/kernel/common/range19.rb b/kernel/common/range19.rb index ba2e918b0d..084f462a12 100644 --- a/kernel/common/range19.rb +++ b/kernel/common/range19.rb @@ -51,6 +51,10 @@ def first(n=undefined) n.equal?(undefined) ? @begin : super end + def last(n=undefined) + n.equal?(undefined) ? @end : to_a.last(n) + end + def max(&block) return super(&block) if block_given? || (@excl && !@end.kind_of?(Numeric)) return nil if @end < @begin || (@excl && @end == @begin)