提交 b86a4965 编写于 作者: A Aaron Patterson

we can define callbacks without a builder instance

上级 73ee85f3
......@@ -32,7 +32,7 @@ def self.build(model, name, scope, options, &block)
builder = new(name, scope, options, &block)
reflection = builder.build(model)
builder.define_accessors model, reflection
builder.define_callbacks model, reflection
define_callbacks model, reflection
builder.define_extensions model
reflection
end
......@@ -68,8 +68,8 @@ def validate_options
def define_extensions(model)
end
def define_callbacks(model, reflection)
self.class.add_before_destroy_callbacks(model, reflection) if reflection.options[:dependent]
def self.define_callbacks(model, reflection)
add_before_destroy_callbacks(model, reflection) if reflection.options[:dependent]
Association.extensions.each do |extension|
extension.build model, reflection
end
......
......@@ -12,10 +12,10 @@ def self.valid_dependent_options
[:destroy, :delete]
end
def define_callbacks(model, reflection)
def self.define_callbacks(model, reflection)
super
self.class.add_counter_cache_callbacks(model, reflection) if reflection.options[:counter_cache]
self.class.add_touch_callbacks(model, reflection) if reflection.options[:touch]
add_counter_cache_callbacks(model, reflection) if reflection.options[:counter_cache]
add_touch_callbacks(model, reflection) if reflection.options[:touch]
end
def define_accessors(mixin, reflection)
......
......@@ -23,12 +23,12 @@ def initialize(name, scope, options)
end
end
def define_callbacks(model, reflection)
def self.define_callbacks(model, reflection)
super
name = reflection.name
options = reflection.options
CALLBACKS.each { |callback_name|
self.class.define_callback(model, callback_name, name, options)
define_callback(model, callback_name, name, options)
}
end
......
......@@ -8,7 +8,7 @@ def valid_options
super + [:join_table, :association_foreign_key]
end
def define_callbacks(model, reflection)
def self.define_callbacks(model, reflection)
super
name = reflection.name
model.send(:include, Module.new {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册