From 8cae3cd0cf2ae75e0489f9b3e9ac3ab5be89630a Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Tue, 2 Jun 2009 22:16:52 -0700 Subject: More pruning of NewCallbacks --- activesupport/lib/active_support/new_callbacks.rb | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/new_callbacks.rb b/activesupport/lib/active_support/new_callbacks.rb index 237a285665..0fe3ee4bad 100644 --- a/activesupport/lib/active_support/new_callbacks.rb +++ b/activesupport/lib/active_support/new_callbacks.rb @@ -283,25 +283,14 @@ module ActiveSupport filter.map {|f| _compile_filter(f)} when Symbol filter + when String + "(#{filter})" when Proc @klass.send(:define_method, method_name, &filter) - method_name << case filter.arity - when 1 - "(self)" - when 2 - " self, Proc.new " - else - "" - end - when String - @klass.class_eval <<-RUBY_EVAL - def #{method_name} - #{filter} - end - RUBY_EVAL - method_name + return method_name if filter.arity == 0 + + method_name << (filter.arity == 1 ? "(self)" : " self, Proc.new ") else - kind = @kind @klass.send(:define_method, "#{method_name}_object") { filter } _normalize_legacy_filter(kind, filter) -- cgit v1.2.3