From aa0d4e12d66b3ee2a1b94f55a435f8177ae20f84 Mon Sep 17 00:00:00 2001 From: Grant Rodgers Date: Wed, 25 Mar 2009 19:55:57 -0700 Subject: [PATCH] OrderedHash#shift should return nil on empty --- activesupport/lib/active_support/ordered_hash.rb | 1 + activesupport/test/ordered_hash_test.rb | 5 +++++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/activesupport/lib/active_support/ordered_hash.rb b/activesupport/lib/active_support/ordered_hash.rb index fed8094..0928582 100644 --- a/activesupport/lib/active_support/ordered_hash.rb +++ b/activesupport/lib/active_support/ordered_hash.rb @@ -78,6 +78,7 @@ module ActiveSupport end def shift + return nil if @keys.empty? k = @keys.first v = delete(k) [k, v] diff --git a/activesupport/test/ordered_hash_test.rb b/activesupport/test/ordered_hash_test.rb index 7cd8c8a..9826583 100644 --- a/activesupport/test/ordered_hash_test.rb +++ b/activesupport/test/ordered_hash_test.rb @@ -147,6 +147,11 @@ class OrderedHashTest < Test::Unit::TestCase pair = @ordered_hash.shift assert_equal [@keys.first, @values.first], pair assert !@ordered_hash.keys.include?(pair.first) + + while !@ordered_hash.empty? + @ordered_hash.shift + end + assert_nil @ordered_hash.shift end def test_keys -- 1.6.2