From 22af62cf486721ee2e45bb720c42ac2f4121faf4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 17 Jun 2008 13:37:57 -0500 Subject: [PATCH] Added Array#second through Array#tenth as aliases for Array#[1] through Array#[9] [DHH] --- activesupport/CHANGELOG | 2 + .../active_support/core_ext/array/access.rb | 45 +++++++++++++++++++ activesupport/test/core_ext/array_ext_test.rb | 14 ++++++ 3 files changed, 61 insertions(+) diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index 1267f05c7509e..d87558aba93c4 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *Edge* +* Added Array#second through Array#tenth as aliases for Array#[1] through Array#[9] [DHH] + * Added test/do declaration style testing to ActiveSupport::TestCase [DHH via Jay Fields] * Added Object#present? which is equivalent to !Object#blank? [DHH] diff --git a/activesupport/lib/active_support/core_ext/array/access.rb b/activesupport/lib/active_support/core_ext/array/access.rb index 21a8584bb9198..4ac95efdc7fb0 100644 --- a/activesupport/lib/active_support/core_ext/array/access.rb +++ b/activesupport/lib/active_support/core_ext/array/access.rb @@ -20,6 +20,51 @@ def from(position) def to(position) self[0..position] end + + # Equal to self[1] + def second + self[1] + end + + # Equal to self[2] + def third + self[2] + end + + # Equal to self[3] + def fourth + self[3] + end + + # Equal to self[4] + def fifth + self[4] + end + + # Equal to self[5] + def sixth + self[5] + end + + # Equal to self[6] + def seventh + self[6] + end + + # Equal to self[7] + def eighth + self[7] + end + + # Equal to self[8] + def ninth + self[8] + end + + # Equal to self[9] + def tenth + self[9] + end end end end diff --git a/activesupport/test/core_ext/array_ext_test.rb b/activesupport/test/core_ext/array_ext_test.rb index 73fbeb8b6b4c5..7563be44f8333 100644 --- a/activesupport/test/core_ext/array_ext_test.rb +++ b/activesupport/test/core_ext/array_ext_test.rb @@ -13,6 +13,20 @@ def test_to assert_equal %w( a b c ), %w( a b c d ).to(2) assert_equal %w( a b c d ), %w( a b c d ).to(10) end + + def test_second_through_tenth + array = (1..10).to_a + + assert_equal array[1], array.second + assert_equal array[2], array.third + assert_equal array[3], array.fourth + assert_equal array[4], array.fifth + assert_equal array[5], array.sixth + assert_equal array[6], array.seventh + assert_equal array[7], array.eighth + assert_equal array[8], array.ninth + assert_equal array[9], array.tenth + end end class ArrayExtToParamTests < Test::Unit::TestCase