Class: ActiveSupport::ArrayInquirer
- Defined in:
 - 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
  Instance Method Summary collapse
- 
  
    
      #any?(*candidates)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Passes each element of
candidatescollection to ArrayInquirer collection. 
Methods inherited from Array
#as_json, #compact_blank!, #deep_dup, #excluding, #extract!, #extract_options!, #fifth, #forty_two, #fourth, #from, #in_groups, #in_groups_of, #including, #inquiry, #present?, #second, #second_to_last, #split, #third, #third_to_last, #to, #to_fs, #to_param, #to_query, #to_sentence, #to_xml, wrap
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) ⇒ Object (private)
      42 43 44 45 46 47 48  | 
    
      # File '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
  
      27 28 29 30 31 32 33 34 35  | 
    
      # File '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  |