diff --git a/actionmailer/CHANGELOG b/actionmailer/CHANGELOG index bf23f7b4dd..1a25b310b9 100644 --- a/actionmailer/CHANGELOG +++ b/actionmailer/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + * Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] * Correct spurious documentation example code which results in a SyntaxError. [Marcel Molina Jr.] diff --git a/actionmailer/lib/action_mailer/helpers.rb b/actionmailer/lib/action_mailer/helpers.rb index ee7523a507..8176ba8a9a 100644 --- a/actionmailer/lib/action_mailer/helpers.rb +++ b/actionmailer/lib/action_mailer/helpers.rb @@ -11,14 +11,12 @@ def self.included(base) #:nodoc: base.class_eval do # Wrap inherited to create a new master helper module for subclasses. class << self - alias_method :inherited_without_helper, :inherited - alias_method :inherited, :inherited_with_helper + alias_method_chain :inherited, :helper end # Wrap initialize_template_class to extend new template class # instances with the master helper module. - alias_method :initialize_template_class_without_helper, :initialize_template_class - alias_method :initialize_template_class, :initialize_template_class_with_helper + alias_method_chain :initialize_template_class, :helper end end diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 865aec8672..1d28af1c3d 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + * Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] * Use #flush between switching from #write to #syswrite. Closes #4907. [Blair Zajac ] diff --git a/actionpack/lib/action_controller/benchmarking.rb b/actionpack/lib/action_controller/benchmarking.rb index a30212c8bd..8b548f9d25 100644 --- a/actionpack/lib/action_controller/benchmarking.rb +++ b/actionpack/lib/action_controller/benchmarking.rb @@ -8,11 +8,8 @@ def self.included(base) base.extend(ClassMethods) base.class_eval do - alias_method :perform_action_without_benchmark, :perform_action - alias_method :perform_action, :perform_action_with_benchmark - - alias_method :render_without_benchmark, :render - alias_method :render, :render_with_benchmark + alias_method_chain :perform_action, :benchmark + alias_method_chain :render, :benchmark end end diff --git a/actionpack/lib/action_controller/components.rb b/actionpack/lib/action_controller/components.rb index 75005daaec..c746928697 100644 --- a/actionpack/lib/action_controller/components.rb +++ b/actionpack/lib/action_controller/components.rb @@ -50,14 +50,9 @@ def render_component(options) base.send :attr_accessor, :parent_controller base.class_eval do - alias_method :process_cleanup_without_components, :process_cleanup - alias_method :process_cleanup, :process_cleanup_with_components - - alias_method :set_session_options_without_components, :set_session_options - alias_method :set_session_options, :set_session_options_with_components - - alias_method :flash_without_components, :flash - alias_method :flash, :flash_with_components + alias_method_chain :process_cleanup, :components + alias_method_chain :set_session_options, :components + alias_method_chain :flash, :components alias_method :component_request?, :parent_controller end diff --git a/actionpack/lib/action_controller/filters.rb b/actionpack/lib/action_controller/filters.rb index 01a4b9fba1..624124ac01 100644 --- a/actionpack/lib/action_controller/filters.rb +++ b/actionpack/lib/action_controller/filters.rb @@ -350,14 +350,9 @@ def remove_contradicting_conditions!(filters, conditions) module InstanceMethods # :nodoc: def self.included(base) base.class_eval do - alias_method :perform_action_without_filters, :perform_action - alias_method :perform_action, :perform_action_with_filters - - alias_method :process_without_filters, :process - alias_method :process, :process_with_filters - - alias_method :process_cleanup_without_filters, :process_cleanup - alias_method :process_cleanup, :process_cleanup_with_filters + alias_method_chain :perform_action, :filters + alias_method_chain :process, :filters + alias_method_chain :process_cleanup, :filters end end diff --git a/actionpack/lib/action_controller/flash.rb b/actionpack/lib/action_controller/flash.rb index 8877c33741..61ac33f399 100644 --- a/actionpack/lib/action_controller/flash.rb +++ b/actionpack/lib/action_controller/flash.rb @@ -28,11 +28,8 @@ def self.included(base) base.send :include, InstanceMethods base.class_eval do - alias_method :assign_shortcuts_without_flash, :assign_shortcuts - alias_method :assign_shortcuts, :assign_shortcuts_with_flash - - alias_method :process_cleanup_without_flash, :process_cleanup - alias_method :process_cleanup, :process_cleanup_with_flash + alias_method_chain :assign_shortcuts, :flash + alias_method_chain :process_cleanup, :flash end end diff --git a/actionpack/lib/action_controller/helpers.rb b/actionpack/lib/action_controller/helpers.rb index cdfcfd7e91..8aeef52868 100644 --- a/actionpack/lib/action_controller/helpers.rb +++ b/actionpack/lib/action_controller/helpers.rb @@ -12,8 +12,7 @@ def self.included(base) base.class_eval do # Wrap inherited to create a new master helper module for subclasses. class << self - alias_method :inherited_without_helper, :inherited - alias_method :inherited, :inherited_with_helper + alias_method_chain :inherited, :helper end end end diff --git a/actionpack/lib/action_controller/integration.rb b/actionpack/lib/action_controller/integration.rb index 74817c4b4c..56ac4b74fe 100644 --- a/actionpack/lib/action_controller/integration.rb +++ b/actionpack/lib/action_controller/integration.rb @@ -317,9 +317,8 @@ module ControllerCapture #:nodoc: def self.included(base) base.extend(ClassMethods) base.class_eval do - class <] diff --git a/activerecord/lib/active_record/callbacks.rb b/activerecord/lib/active_record/callbacks.rb index 26d8bfa7b6..d219efe727 100755 --- a/activerecord/lib/active_record/callbacks.rb +++ b/activerecord/lib/active_record/callbacks.rb @@ -175,27 +175,12 @@ def self.included(base) #:nodoc: base.class_eval do class << self include Observable - alias_method :instantiate_without_callbacks, :instantiate - alias_method :instantiate, :instantiate_with_callbacks + alias_method_chain :instantiate, :callbacks end - alias_method :initialize_without_callbacks, :initialize - alias_method :initialize, :initialize_with_callbacks - - alias_method :create_or_update_without_callbacks, :create_or_update - alias_method :create_or_update, :create_or_update_with_callbacks - - alias_method :valid_without_callbacks, :valid? - alias_method :valid?, :valid_with_callbacks - - alias_method :create_without_callbacks, :create - alias_method :create, :create_with_callbacks - - alias_method :update_without_callbacks, :update - alias_method :update, :update_with_callbacks - - alias_method :destroy_without_callbacks, :destroy - alias_method :destroy, :destroy_with_callbacks + [:initialize, :create_or_update, :valid?, :create, :update, :destroy].each do |method| + alias_method_chain method, :callbacks + end end CALLBACKS.each do |method| diff --git a/activerecord/lib/active_record/locking.rb b/activerecord/lib/active_record/locking.rb index 3e0c47e706..ee4224c004 100644 --- a/activerecord/lib/active_record/locking.rb +++ b/activerecord/lib/active_record/locking.rb @@ -23,8 +23,7 @@ module ActiveRecord module Locking def self.included(base) #:nodoc: base.class_eval do - alias_method :update_without_lock, :update - alias_method :update, :update_with_lock + alias_method_chain :update, :lock end end diff --git a/activerecord/lib/active_record/timestamp.rb b/activerecord/lib/active_record/timestamp.rb index 44936a1432..26fb0c17ac 100644 --- a/activerecord/lib/active_record/timestamp.rb +++ b/activerecord/lib/active_record/timestamp.rb @@ -8,11 +8,9 @@ module ActiveRecord module Timestamp def self.included(base) # :nodoc: base.class_eval do - alias_method :create_without_timestamps, :create - alias_method :create, :create_with_timestamps - - alias_method :update_without_timestamps, :update - alias_method :update, :update_with_timestamps + [:create, :update].each do |method| + alias_method_chain method, :timestamps + end end end diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 01bbdf4c8a..c222e18097 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -13,11 +13,9 @@ def self.included(base) base.extend(ClassMethods) base.class_eval do - alias_method :destroy_without_transactions, :destroy - alias_method :destroy, :destroy_with_transactions - - alias_method :save_without_transactions, :save - alias_method :save, :save_with_transactions + [:destroy, :save].each do |method| + alias_method_chain method, :transactions + end end end diff --git a/activerecord/lib/active_record/validations.rb b/activerecord/lib/active_record/validations.rb index d66c5934fb..4194e68b2f 100755 --- a/activerecord/lib/active_record/validations.rb +++ b/activerecord/lib/active_record/validations.rb @@ -217,14 +217,9 @@ module Validations def self.included(base) # :nodoc: base.extend ClassMethods base.class_eval do - alias_method :save_without_validation, :save - alias_method :save, :save_with_validation - - alias_method :save_without_validation!, :save! - alias_method :save!, :save_with_validation! - - alias_method :update_attribute_without_validation_skipping, :update_attribute - alias_method :update_attribute, :update_attribute_with_validation_skipping + alias_method_chain :save, :validation + alias_method_chain :save!, :validation! + alias_method_chain :update_attribute, :validation_skipping end end diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index 7d20611df2..16052680da 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + * Strip out punctuation on predicates or bang methods being aliased with alias_method_chain since target?_without_feature is not a valid method name. Add tests for Module#alias_method_chain. [Marcel Molina Jr.] * Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] diff --git a/activesupport/lib/active_support/core_ext/time/calculations.rb b/activesupport/lib/active_support/core_ext/time/calculations.rb index 7c60d5bed5..8511a74d5c 100644 --- a/activesupport/lib/active_support/core_ext/time/calculations.rb +++ b/activesupport/lib/active_support/core_ext/time/calculations.rb @@ -3,8 +3,7 @@ module CoreExtensions #:nodoc: module Time #:nodoc: # Enables the use of time calculations within Time itself module Calculations - def self.append_features(base) #:nodoc: - super + def self.included(base) #:nodoc: base.extend(ClassMethods) end