Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Remove Module#delegate!

  • Loading branch information...
commit 5fb6bd8b22327b00061602b64af8c08886abc581 1 parent 402a119
@dasch authored
Showing with 0 additions and 52 deletions.
  1. +0 −52 activesupport/lib/active_support/core_ext/module/delegation.rb
View
52 activesupport/lib/active_support/core_ext/module/delegation.rb
@@ -156,56 +156,4 @@ def #{method_prefix}#{method}(#{definition}) # def customer_name(*args, &
end
end
end
-
- def delegate!(*methods)
- ActiveSupport::Deprecation.warn('Delegating to non-public methods is deprecated.', caller)
-
- options = methods.pop
- unless options.is_a?(Hash) && to = options[:to]
- raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, :to => :greeter)."
- end
- prefix, to, allow_nil = options[:prefix], options[:to], options[:allow_nil]
-
- if prefix == true && to.to_s =~ /^[^a-z_]/
- raise ArgumentError, "Can only automatically set the delegation prefix when delegating to a method."
- end
-
- method_prefix =
- if prefix
- "#{prefix == true ? to : prefix}_"
- else
- ''
- end
-
- file, line = caller.first.split(':', 2)
- line = line.to_i
-
- methods.each do |method|
- method = method.to_s
-
- if allow_nil
- module_eval(<<-EOS, file, line - 2)
- def #{method_prefix}#{method}(*args, &block) # def customer_name(*args, &block)
- if #{to} || #{to}.respond_to?(:#{method}) # if client || client.respond_to?(:name)
- #{to}.__send__(:#{method}, *args, &block) # client.__send__(:name, *args, &block)
- end # end
- end # end
- EOS
- else
- exception = %(raise "#{self}##{method_prefix}#{method} delegated to #{to}.#{method}, but #{to} is nil: \#{self.inspect}")
-
- module_eval(<<-EOS, file, line - 1)
- def #{method_prefix}#{method}(*args, &block) # def customer_name(*args, &block)
- #{to}.__send__(:#{method}, *args, &block) # client.__send__(:name, *args, &block)
- rescue NoMethodError # rescue NoMethodError
- if #{to}.nil? # if client.nil?
- #{exception} # # add helpful message to the exception
- else # else
- raise # raise
- end # end
- end # end
- EOS
- end
- end
- end
end
Please sign in to comment.
Something went wrong with that request. Please try again.