Sha256: e498c42d43688d381b6757683db86e1b591fae1a7b2ec0fea74b996dec60dbad
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
module ActiveFedora module AttributeMethods module Write module ClassMethods protected def define_method_attribute=(name, owner: nil) # rubocop:disable Lint/UnusedMethodArgument name = name.to_s safe_name = name.unpack('h*'.freeze).first ActiveFedora::AttributeMethods::AttrNames.set_name_cache safe_name, name generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1 def __temp__#{safe_name}=(value) name = ::ActiveRecord::AttributeMethods::AttrNames::ATTR_#{safe_name} write_attribute(name, value) end alias_method #{(name + '=').inspect}, :__temp__#{safe_name}= undef_method :__temp__#{safe_name}= STR end end extend ActiveSupport::Concern included do attribute_method_suffix "=" end def write_attribute(attribute_name, value) raise ActiveModel::MissingAttributeError, "can't write unknown attribute `#{attribute_name}'" unless self.class.properties.key?(attribute_name) attributes[attribute_name] = value end private def attribute=(attribute_name, value) write_attribute(attribute_name, value) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active-fedora-14.0.1 | lib/active_fedora/attribute_methods/write.rb |
active-fedora-14.0.0 | lib/active_fedora/attribute_methods/write.rb |