Class: ActiveModel::AttributeMethods::ClassMethods::AttributeMethodPatternSet
| 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
- .new(patterns) ⇒ AttributeMethodPatternSet constructor
Instance Attribute Summary
- #patterns readonly protected
::Enumerable - Included
| #many? | Returns |
Instance Method Summary
::Enumerable - Included
| #compact_blank | Returns a new |
| #exclude? | The negative of the |
| #excluding | Returns a copy of the enumerable excluding the specified elements. |
| #in_order_of | Returns a new |
| #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 | Alias for Enumerable#excluding. |
| #as_json | |
::ActiveSupport::EnumerableCoreExt::Constants - Included
Constructor Details
.new(patterns) ⇒ AttributeMethodPatternSet
# 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 ]#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