diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-03-30 13:38:13 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-03-30 13:38:13 -0300 |
commit | b5c35023bd422c62973d003378b7185dfe221919 (patch) | |
tree | cfd8e337e80b4f0b72e4a01a17dd88179919c436 /activesupport | |
parent | cb012467214f6e4bb1ac3987554bb75020b4796b (diff) | |
download | rails-b5c35023bd422c62973d003378b7185dfe221919.tar.gz rails-b5c35023bd422c62973d003378b7185dfe221919.tar.bz2 rails-b5c35023bd422c62973d003378b7185dfe221919.zip |
Revert "Remove Array#inquiry"
This reverts commit 9420de59f5b7f5ceac77e28e6c326ec145f71f80.
Reason: Turns out we want to keep this method.
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/CHANGELOG.md | 5 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/array.rb | 1 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/array/inquiry.rb | 15 | ||||
-rw-r--r-- | activesupport/test/array_inquirer_test.rb | 7 |
4 files changed, 27 insertions, 1 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 50045a8c17..7eaad6340f 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,4 +1,4 @@ -* Added `ActiveSupport::ArrayInquirer`. +* Added `ActiveSupport::ArrayInquirer` and `Array#inquiry`. Wrapping an array in an `ArrayInquirer` gives a friendlier way to check its contents: @@ -13,6 +13,9 @@ variants.any?(:phone, :desktop) # => true variants.any?(:desktop, :watch) # => false + `Array#inquiry` is a shortcut for wrapping the receiving array in an + `ArrayInquirer`. + *George Claghorn* * Deprecate `alias_method_chain` in favour of `Module#prepend` introduced in Ruby 2.0 diff --git a/activesupport/lib/active_support/core_ext/array.rb b/activesupport/lib/active_support/core_ext/array.rb index 7d0c1e4c8d..7551551bd7 100644 --- a/activesupport/lib/active_support/core_ext/array.rb +++ b/activesupport/lib/active_support/core_ext/array.rb @@ -4,3 +4,4 @@ require 'active_support/core_ext/array/conversions' require 'active_support/core_ext/array/extract_options' require 'active_support/core_ext/array/grouping' require 'active_support/core_ext/array/prepend_and_append' +require 'active_support/core_ext/array/inquiry' diff --git a/activesupport/lib/active_support/core_ext/array/inquiry.rb b/activesupport/lib/active_support/core_ext/array/inquiry.rb new file mode 100644 index 0000000000..de623c466c --- /dev/null +++ b/activesupport/lib/active_support/core_ext/array/inquiry.rb @@ -0,0 +1,15 @@ +class Array + # Wraps the array in an +ArrayInquirer+ object, which gives a friendlier way + # to check its string-like contents. + # + # pets = [:cat, :dog].inquiry + # + # pets.cat? # => true + # pets.ferret? # => false + # + # pets.any?(:cat, :ferret) # => true + # pets.any?(:ferret, :alligator) # => false + def inquiry + ActiveSupport::ArrayInquirer.new(self) + end +end diff --git a/activesupport/test/array_inquirer_test.rb b/activesupport/test/array_inquirer_test.rb index 97adea85e6..488e0d34a9 100644 --- a/activesupport/test/array_inquirer_test.rb +++ b/activesupport/test/array_inquirer_test.rb @@ -25,4 +25,11 @@ class ArrayInquirerTest < ActiveSupport::TestCase def test_respond_to assert_respond_to @array_inquirer, :development? end + + def test_inquiry + result = [:mobile, :tablet].inquiry + + assert_instance_of ActiveSupport::ArrayInquirer, result + assert_equal @array_inquirer, result + end end |