module DuckRecord::AttributeMethods::Write::ClassMethods

Private Instance Methods

define_method_attribute=(name) click to toggle source
# File lib/duck_record/attribute_methods/write.rb, line 13
          def define_method_attribute=(name)
            safe_name = name.unpack("h*".freeze).first
            DuckRecord::AttributeMethods::AttrNames.set_name_cache safe_name, name

            generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
            def __temp__#{safe_name}=(value)
              name = ::DuckRecord::AttributeMethods::AttrNames::ATTR_#{safe_name}
              write_attribute(name, value)
            end
            alias_method #{(name + '=').inspect}, :__temp__#{safe_name}=
            undef_method :__temp__#{safe_name}=
          STR
          end