123456789_123456789_123456789_123456789_123456789_

Class: ActiveModel::AttributeMethods::ClassMethods::AttributeMethodPatternSet

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: activemodel/lib/active_model/attribute_methods.rb

Class Method Summary

Instance Attribute Summary

::Enumerable - Included

#many?

Returns true if the enumerable has more than 1 element.

Instance Method Summary

::Enumerable - Included

#compact_blank

Returns a new ::Array without the blank items.

#exclude?

The negative of the Enumerable#include?.

#excluding

Returns a copy of the enumerable excluding the specified elements.

#in_order_of

Returns a new ::Array where the order has been set to that provided in the series, based on the key of the objects in the original enumerable.

#including

Returns a new array that includes the passed elements.

#index_by

Convert an enumerable to a hash, using the block result as the key and the element as the value.

#index_with

Convert an enumerable to a hash, using the element as the key and the block result as the value.

#maximum

Calculates the maximum from the extracted elements.

#minimum

Calculates the minimum from the extracted elements.

#pick

Extract the given key from the first element in the enumerable.

#pluck

Extract the given key from each element in the enumerable.

#sole

Returns the sole item in the enumerable.

#without
#as_json

::ActiveSupport::EnumerableCoreExt::Constants - Included

Constructor Details

.new(patterns) ⇒ AttributeMethodPatternSet

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 501

def initialize(patterns)
  @patterns = patterns.freeze
  @affixed = patterns.reject { |pattern| pattern.prefix.empty? && pattern.suffix.empty? }.freeze

  @prefixes = @affixed.map(&:prefix).reject(&:empty?).uniq.freeze
  @suffixes = @affixed.map(&:suffix).reject(&:empty?).uniq.freeze

  freeze
end

Instance Attribute Details

#patterns (readonly, protected)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 529

attr_reader :patterns

Instance Method Details

#+(other)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 515

def +(other)
  AttributeMethodPatternSet.new(@patterns + other)
end

#==(other)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 519

def ==(other)
  other.is_a?(AttributeMethodPatternSet) && patterns == other.patterns
end

#each(&block)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 511

def each(&block)
  @patterns.each(&block)
end

#matching(method_name)

[ GitHub ]

  
# File 'activemodel/lib/active_model/attribute_methods.rb', line 523

def matching(method_name)
  return if @affixed.empty?
  @affixed if method_name.end_with?(*@suffixes) || method_name.start_with?(*@prefixes)
end