Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Make `ActiveSupport::OrderedHash` extractable when using `Array#extra…

…ct_options!`

`ActiveSupport::OrderedHash` is actually a subclass of the hash, so it does make sense that it should be extractable from the array list.
  • Loading branch information...
commit 9984266c041e1079a09140f9307fc1ca13858988 1 parent 36f1612
@sikachu sikachu authored
View
2  activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*Rails 3.2.0 (unreleased)*
+* ActiveSupport::OrderedHash is now marked as extractable when using Array#extract_options! [Prem Sichanugrist]
+
* Added Array#prepend as an alias for Array#unshift and Array#append as an alias for Array#<< [DHH]
* The definition of blank string for Ruby 1.9 has been extended to Unicode whitespace.
View
5 activesupport/lib/active_support/ordered_hash.rb
@@ -47,6 +47,11 @@ def nested_under_indifferent_access
self
end
+ # Returns true to make sure that this hash is extractable via <tt>Array#extract_options!</tt>
+ def extractable_options?
+ true
+ end
+
# Hash is ordered in Ruby 1.9!
if RUBY_VERSION < '1.9'
View
5 activesupport/test/ordered_hash_test.rb
@@ -329,4 +329,9 @@ def test_invert
assert_equal expected, @ordered_hash.invert
assert_equal @values.zip(@keys), @ordered_hash.invert.to_a
end
+
+ def test_extractable
+ @ordered_hash[:rails] = "snowman"
+ assert_equal @ordered_hash, [1, 2, @ordered_hash].extract_options!
+ end
end
Please sign in to comment.
Something went wrong with that request. Please try again.