From 9ae7f04cd6c1cdbdd6454448b25302b584860ef6 Mon Sep 17 00:00:00 2001 From: wycats Date: Tue, 3 Aug 2010 11:47:57 -0700 Subject: [PATCH] properly deprecate #{type}_validation_on_#{on} --- .../lib/active_model/validations/callbacks.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/activemodel/lib/active_model/validations/callbacks.rb b/activemodel/lib/active_model/validations/callbacks.rb index afd65d3dd5..f46593b058 100644 --- a/activemodel/lib/active_model/validations/callbacks.rb +++ b/activemodel/lib/active_model/validations/callbacks.rb @@ -44,6 +44,20 @@ module ActiveModel options[:if] << "self.validation_context == :#{options[:on]}" if options[:on] set_callback(:validation, :after, *(args << options), &block) end + + [:before, :after].each do |type| + [:create, :update].each do |on| + class_eval <<-RUBY + def #{type}_validation_on_#{on}(*args, &block) + msg = "#{type}_validation_on_#{on} is deprecated. Please use #{type}_validation(arguments, :on => :#{on}" + ActiveSupport::Deprecation.warn(msg, caller) + options = args.extract_options! + options[:on] = :#{on} + before_validation(args.push(options), &block) + end + RUBY + end + end end protected