Module: ActiveModel::AttributeRegistration::ClassMethods
- Defined in:
 - activemodel/lib/active_model/attribute_registration.rb
 
Overview
:nodoc:
Defined Under Namespace
Classes: PendingDecorator, PendingDefault, PendingType
Instance Method Summary collapse
- 
  
    
      #_default_attributes  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - #attribute(name, type = nil, default: (no_default = true), **options) ⇒ Object
 - 
  
    
      #attribute_types  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - 
  
    
      #decorate_attributes(names = nil, &decorator)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - #type_for_attribute(attribute_name, &block) ⇒ Object
 
Instance Method Details
#_default_attributes ⇒ Object
:nodoc:
      31 32 33 34 35  | 
    
      # File 'activemodel/lib/active_model/attribute_registration.rb', line 31 def _default_attributes # :nodoc: @default_attributes ||= AttributeSet.new({}).tap do |attribute_set| apply_pending_attribute_modifications(attribute_set) end end  | 
  
#attribute(name, type = nil, default: (no_default = true), **options) ⇒ Object
      12 13 14 15 16 17 18 19 20 21  | 
    
      # File 'activemodel/lib/active_model/attribute_registration.rb', line 12 def attribute(name, type = nil, default: (no_default = true), **) name = resolve_attribute_name(name) type = resolve_type_name(type, **) if type.is_a?(Symbol) type = hook_attribute_type(name, type) if type pending_attribute_modifications << PendingType.new(name, type) if type || no_default pending_attribute_modifications << PendingDefault.new(name, default) unless no_default reset_default_attributes end  | 
  
#attribute_types ⇒ Object
:nodoc:
      37 38 39 40 41  | 
    
      # File 'activemodel/lib/active_model/attribute_registration.rb', line 37 def attribute_types # :nodoc: @attribute_types ||= _default_attributes.cast_types.tap do |hash| hash.default = Type.default_value end end  | 
  
#decorate_attributes(names = nil, &decorator) ⇒ Object
:nodoc:
      23 24 25 26 27 28 29  | 
    
      # File 'activemodel/lib/active_model/attribute_registration.rb', line 23 def decorate_attributes(names = nil, &decorator) # :nodoc: names = names&.map { |name| resolve_attribute_name(name) } pending_attribute_modifications << PendingDecorator.new(names, decorator) reset_default_attributes end  | 
  
#type_for_attribute(attribute_name, &block) ⇒ Object
      43 44 45 46 47 48 49 50 51  | 
    
      # File 'activemodel/lib/active_model/attribute_registration.rb', line 43 def type_for_attribute(attribute_name, &block) attribute_name = resolve_attribute_name(attribute_name) if block attribute_types.fetch(attribute_name, &block) else attribute_types[attribute_name] end end  |