Sha256: 939d5dfafabb0c22d3af1cba173314c98e59b1dfb48cb50919982c74ca474989
Contents?: true
Size: 943 Bytes
Versions: 8
Compression:
Stored size: 943 Bytes
Contents
require 'active_fedora/associations' module ActiveFedora::Associations::Builder class CollectionAssociation < Association #:nodoc: CALLBACKS = [:before_add, :after_add, :before_remove, :after_remove].freeze self.valid_options += [ :before_add, :after_add, :before_remove, :after_remove ] def self.define_callbacks(model, reflection) name = reflection.name options = reflection.options CALLBACKS.each { |callback_name| define_callback(model, callback_name, name, options) } end def self.define_callback(model, callback_name, name, options) full_callback_name = "#{callback_name}_for_#{name}" # TODO : why do i need method_defined? I think its because of the inheritance chain model.class_attribute full_callback_name.to_sym unless model.method_defined?(full_callback_name) model.send("#{full_callback_name}=", Array(options[callback_name.to_sym])) end end end
Version data entries
8 entries across 8 versions & 1 rubygems