aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorJared McFarland <jared.online@gmail.com>2011-04-26 14:46:52 -0700
committerJared McFarland <jared.online@gmail.com>2011-04-26 14:46:52 -0700
commit74634d452b3087575fe7b912da9827021aed4a70 (patch)
tree6a75ceb552ca9a6b66eb5002562222da710f4b9c /activesupport
parent4ce14fb0809ea8d636be0a1790fa38eafe64a46f (diff)
downloadrails-74634d452b3087575fe7b912da9827021aed4a70.tar.gz
rails-74634d452b3087575fe7b912da9827021aed4a70.tar.bz2
rails-74634d452b3087575fe7b912da9827021aed4a70.zip
fixing Array#from to return consistent results
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/core_ext/array/access.rb4
-rw-r--r--activesupport/test/core_ext/array_ext_test.rb2
2 files changed, 3 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/core_ext/array/access.rb b/activesupport/lib/active_support/core_ext/array/access.rb
index c69a015f12..a2086fa3e5 100644
--- a/activesupport/lib/active_support/core_ext/array/access.rb
+++ b/activesupport/lib/active_support/core_ext/array/access.rb
@@ -3,10 +3,10 @@ class Array
#
# %w( a b c d ).from(0) # => %w( a b c d )
# %w( a b c d ).from(2) # => %w( c d )
- # %w( a b c d ).from(10) # => nil
+ # %w( a b c d ).from(10) # => %w()
# %w().from(0) # => %w()
def from(position)
- self[position..-1]
+ position > length ? [] : self[position..-1]
end
# Returns the beginning of the array up to +position+.
diff --git a/activesupport/test/core_ext/array_ext_test.rb b/activesupport/test/core_ext/array_ext_test.rb
index d7ab3ce605..0e5407bc35 100644
--- a/activesupport/test/core_ext/array_ext_test.rb
+++ b/activesupport/test/core_ext/array_ext_test.rb
@@ -10,7 +10,7 @@ class ArrayExtAccessTests < Test::Unit::TestCase
def test_from
assert_equal %w( a b c d ), %w( a b c d ).from(0)
assert_equal %w( c d ), %w( a b c d ).from(2)
- assert_nil %w( a b c d ).from(10)
+ assert_equal %w(), %w( a b c d ).from(10)
end
def test_to