class ActiveSupport::ArrayInquirer

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

Public Instance Methods

any?(*candidates) click to toggle source

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
Calls superclass method
# File lib/active_support/array_inquirer.rb, line 25
def any?(*candidates)
  if candidates.none?
    super
  else
    candidates.any? do |candidate|
      include?(candidate.to_sym) || include?(candidate.to_s)
    end
  end
end

Private Instance Methods

method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/active_support/array_inquirer.rb, line 40
def method_missing(name, *args)
  if name.end_with?("?")
    any?(name[0..-2])
  else
    super
  end
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/active_support/array_inquirer.rb, line 36
def respond_to_missing?(name, include_private = false)
  name.end_with?("?") || super
end