define_attribute_method(attr_name) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activemodel/lib/active_model/attribute_methods.rb, line 285
      def define_attribute_method(attr_name)
        attribute_method_matchers.each do |matcher|
          unless instance_method_already_implemented?(matcher.method_name(attr_name))
            generate_method = "define_method_#{matcher.prefix}attribute#{matcher.suffix}"

            if respond_to?(generate_method)
              send(generate_method, attr_name)
            else
              method_name = matcher.method_name(attr_name)

              generated_attribute_methods.module_eval                 if method_defined?('#{method_name}')                  undef :'#{method_name}'                end, __FILE__, __LINE__ + 1

              if method_name.to_s =~ COMPILABLE_REGEXP
                generated_attribute_methods.module_eval                   def #{method_name}(*args)                    send(:#{matcher.method_missing_target}, '#{attr_name}', *args)                  end, __FILE__, __LINE__ + 1
              else
                generated_attribute_methods.module_eval                   define_method('#{method_name}') do |*args|                    send('#{matcher.method_missing_target}', '#{attr_name}', *args)                  end, __FILE__, __LINE__ + 1
              end
            end
          end
        end
      end
Register or log in to add new notes.