Class: ActiveModel::AttributeMethods::ClassMethods::AttributeMethodPattern
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Namespace Children | |
|
Classes:
| |
| Inherits: | Object |
| Defined in: | activemodel/lib/active_model/attribute_methods.rb |
Constant Summary
Class Method Summary
Instance Attribute Summary
- #define_method_proxy_target readonly
- #parameters readonly
- #prefix readonly
- #proxy_target readonly
- #suffix readonly
Instance Method Summary
Constructor Details
.new(prefix: "", suffix: "", parameters: nil) ⇒ AttributeMethodPattern
# File 'activemodel/lib/active_model/attribute_methods.rb', line 467
def initialize(prefix: "", suffix: "", parameters: nil) @prefix = -prefix @suffix = -suffix @parameters = parameters.nil? ? "..." : (parameters.is_a?(String) ? -parameters : parameters) @prefix_length = @prefix.length @affix_length = @prefix.length + @suffix.length @unaffixed = @prefix.empty? && @suffix.empty? @proxy_target = "#{@prefix}attribute#{@suffix}".freeze @define_method_proxy_target = :"define_method_#{@proxy_target}" @method_name = "#{prefix}%s#{suffix}".freeze freeze end
Instance Attribute Details
#define_method_proxy_target (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 463
attr_reader :prefix, :suffix, :define_method_proxy_target, :proxy_target, :parameters
#parameters (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 463
attr_reader :prefix, :suffix, :define_method_proxy_target, :proxy_target, :parameters
#prefix (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 463
attr_reader :prefix, :suffix, :define_method_proxy_target, :proxy_target, :parameters
#proxy_target (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 463
attr_reader :prefix, :suffix, :define_method_proxy_target, :proxy_target, :parameters
#suffix (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 463
attr_reader :prefix, :suffix, :define_method_proxy_target, :proxy_target, :parameters
Instance Method Details
#matched_attribute_name(method_name)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 480
def matched_attribute_name(method_name) return method_name if @unaffixed return if method_name.length < @affix_length return unless method_name.end_with?(@suffix) && method_name.start_with?(@prefix) method_name[@prefix_length, method_name.length - @affix_length] end
#method_for_attr(attr_name)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 487
def method_for_attr(attr_name) AttributeMethod.new(@proxy_target, attr_name) end
#method_name(attr_name)
[ GitHub ]# File 'activemodel/lib/active_model/attribute_methods.rb', line 491
def method_name(attr_name) @method_name % attr_name end