Class: ActiveSupport::ArrayInquirer
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Array
|
|
Instance Chain:
self,
::Array
|
|
Inherits: | Array |
Defined in: | activesupport/lib/active_support/array_inquirer.rb |
Overview
Array Inquirer
Wrapping an array in an ArrayInquirer
gives a friendlier way to check its string-like contents:
variants = ActiveSupport::ArrayInquirer.new([:phone, :tablet])
variants.phone? # => true
variants.tablet? # => true
variants.desktop? # => false
Class Method Summary
::Array
- Inherited
.wrap | Wraps its argument in an array unless it is already an array (or array-like). |
Instance Attribute Summary
Instance Method Summary
-
#any?(*candidates) ⇒ Boolean
Passes each element of
candidates
collection toArrayInquirer
collection. - #method_missing(name) private
- #respond_to_missing?(name, include_private = false) ⇒ Boolean private
::Array
- Inherited
#blank? | An array is blank if it’s empty: |
#deep_dup | Returns a deep copy of array. |
#excluding | Returns a copy of the |
#extract! | Removes and returns the elements for which the block returns a true value. |
#extract_options! | Extracts options from a set of arguments. |
#fifth | Equal to |
#forty_two | Equal to |
#fourth | Equal to |
#from | Returns the tail of the array from |
#in_groups | Splits or iterates over the array in |
#in_groups_of | Splits or iterates over the array in groups of size |
#including | Returns a new array that includes the passed elements. |
#inquiry | Wraps the array in an |
#second | Equal to |
#second_to_last | Equal to |
#split | Divides the array into one or more subarrays based on a delimiting |
#third | Equal to |
#third_to_last | Equal to |
#to | Returns the beginning of the array up to |
#to_formatted_s | Alias for Array#to_fs. |
#to_fs | Extends |
#to_param | Calls |
#to_query | Converts an array into a string suitable for use as a URL query string, using the given |
#to_sentence | Converts the array to a comma-separated sentence where the last element is joined by the connector word. |
#to_xml | Returns a string that represents the array in XML by invoking |
#without | Alias for Array#excluding. |
#as_json, | |
#compact_blank! | Removes all blank elements from the |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) (private)
[ GitHub ]# File 'activesupport/lib/active_support/array_inquirer.rb', line 42
def method_missing(name, ...) if name.end_with?("?") any?(name[0..-2]) else super end end
Instance Method Details
#any?(*candidates) ⇒ Boolean
Passes each element of candidates
collection to ArrayInquirer
collection. The method returns true if any element from the ArrayInquirer
collection is equal to the stringified or symbolized form of any element in the candidates
collection.
If candidates
collection is not given, method returns true.
variants = ActiveSupport::ArrayInquirer.new([:phone, :tablet])
variants.any? # => true
variants.any?(:phone, :tablet) # => true
variants.any?('phone', 'desktop') # => true
variants.any?(:desktop, :watch) # => false
# File 'activesupport/lib/active_support/array_inquirer.rb', line 27
def any?(*candidates) if candidates.none? super else candidates.any? do |candidate| include?(candidate.to_sym) || include?(candidate.to_s) end end end
#respond_to_missing?(name, include_private = false) ⇒ Boolean
(private)
# File 'activesupport/lib/active_support/array_inquirer.rb', line 38
def respond_to_missing?(name, include_private = false) name.end_with?("?") || super end