mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
AS::Callbacks: remove unused code
This commit is contained in:
parent
a9bebaedb9
commit
24b75fc40c
1 changed files with 13 additions and 17 deletions
|
@ -66,8 +66,6 @@ module ActiveSupport
|
||||||
#
|
#
|
||||||
# Calls the before and around callbacks in the order they were set, yields
|
# Calls the before and around callbacks in the order they were set, yields
|
||||||
# the block (if given one), and then runs the after callbacks in reverse order.
|
# the block (if given one), and then runs the after callbacks in reverse order.
|
||||||
# Optionally accepts a key, which will be used to compile an optimized callback
|
|
||||||
# method for each key. See +ClassMethods.define_callbacks+ for more information.
|
|
||||||
#
|
#
|
||||||
# If the callback chain was halted, returns +false+. Otherwise returns the result
|
# If the callback chain was halted, returns +false+. Otherwise returns the result
|
||||||
# of the block, or +true+ if no block is given.
|
# of the block, or +true+ if no block is given.
|
||||||
|
@ -77,7 +75,8 @@ module ActiveSupport
|
||||||
# end
|
# end
|
||||||
#
|
#
|
||||||
def run_callbacks(kind, key = nil, &block)
|
def run_callbacks(kind, key = nil, &block)
|
||||||
self.class.__run_callbacks(key, kind, self, &block)
|
#TODO: deprecate key argument
|
||||||
|
self.class.__run_callbacks(kind, self, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -100,8 +99,7 @@ module ActiveSupport
|
||||||
|
|
||||||
@raw_filter, @options = filter, options
|
@raw_filter, @options = filter, options
|
||||||
@filter = _compile_filter(filter)
|
@filter = _compile_filter(filter)
|
||||||
@compiled_options = _compile_options(options)
|
recompile_options!
|
||||||
@callback_id = next_id
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def deprecate_per_key_option(options)
|
def deprecate_per_key_option(options)
|
||||||
|
@ -146,13 +144,11 @@ module ActiveSupport
|
||||||
deprecate_per_key_option(_options)
|
deprecate_per_key_option(_options)
|
||||||
_update_filter(self.options, _options)
|
_update_filter(self.options, _options)
|
||||||
|
|
||||||
@callback_id = next_id
|
recompile_options!
|
||||||
@filter = _compile_filter(@raw_filter)
|
|
||||||
@compiled_options = _compile_options(@options)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Wraps code with filter
|
# Wraps code with filter
|
||||||
def apply(code, key=nil, object=nil)
|
def apply(code)
|
||||||
case @kind
|
case @kind
|
||||||
when :before
|
when :before
|
||||||
<<-RUBY_EVAL
|
<<-RUBY_EVAL
|
||||||
|
@ -222,7 +218,7 @@ module ActiveSupport
|
||||||
# Options support the same options as filters themselves (and support
|
# Options support the same options as filters themselves (and support
|
||||||
# symbols, string, procs, and objects), so compile a conditional
|
# symbols, string, procs, and objects), so compile a conditional
|
||||||
# expression based on the options
|
# expression based on the options
|
||||||
def _compile_options(options)
|
def recompile_options!
|
||||||
conditions = ["true"]
|
conditions = ["true"]
|
||||||
|
|
||||||
unless options[:if].empty?
|
unless options[:if].empty?
|
||||||
|
@ -233,7 +229,7 @@ module ActiveSupport
|
||||||
conditions << Array(_compile_filter(options[:unless])).map {|f| "!#{f}"}
|
conditions << Array(_compile_filter(options[:unless])).map {|f| "!#{f}"}
|
||||||
end
|
end
|
||||||
|
|
||||||
conditions.flatten.join(" && ")
|
@compiled_options = conditions.flatten.join(" && ")
|
||||||
end
|
end
|
||||||
|
|
||||||
# Filters support:
|
# Filters support:
|
||||||
|
@ -316,14 +312,14 @@ module ActiveSupport
|
||||||
}.merge(config)
|
}.merge(config)
|
||||||
end
|
end
|
||||||
|
|
||||||
def compile(key=nil, object=nil)
|
def compile
|
||||||
method = []
|
method = []
|
||||||
method << "value = nil"
|
method << "value = nil"
|
||||||
method << "halted = false"
|
method << "halted = false"
|
||||||
|
|
||||||
callbacks = yielding
|
callbacks = yielding
|
||||||
reverse_each do |callback|
|
reverse_each do |callback|
|
||||||
callbacks = callback.apply(callbacks, key, object)
|
callbacks = callback.apply(callbacks)
|
||||||
end
|
end
|
||||||
method << callbacks
|
method << callbacks
|
||||||
|
|
||||||
|
@ -354,14 +350,14 @@ module ActiveSupport
|
||||||
|
|
||||||
module ClassMethods
|
module ClassMethods
|
||||||
|
|
||||||
# This method runs callback chain for the given key.
|
# This method runs callback chain for the given kind.
|
||||||
# If this called first time it creates a new callback method for the key.
|
# If this called first time it creates a new callback method for the kind.
|
||||||
# This generated method plays caching role.
|
# This generated method plays caching role.
|
||||||
#
|
#
|
||||||
def __run_callbacks(key, kind, object, &blk) #:nodoc:
|
def __run_callbacks(kind, object, &blk) #:nodoc:
|
||||||
name = __callback_runner_name(kind)
|
name = __callback_runner_name(kind)
|
||||||
unless object.respond_to?(name)
|
unless object.respond_to?(name)
|
||||||
str = object.send("_#{kind}_callbacks").compile(key, object)
|
str = object.send("_#{kind}_callbacks").compile
|
||||||
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
||||||
def #{name}() #{str} end
|
def #{name}() #{str} end
|
||||||
protected :#{name}
|
protected :#{name}
|
||||||
|
|
Loading…
Reference in a new issue