+++ /dev/null
-module ActiveSupport
- class OptionMerger #:nodoc:
- instance_methods.each do |method|
- undef_method(method) if method !~ /^(__|instance_eval|class|object_id)/
- end
-
- def initialize(context, options)
- @context, @options = context, options
- end
-
- private
- def method_missing(method, *arguments, &block)
- if arguments.last.is_a?(Proc)
- proc = arguments.pop
- arguments << lambda { |*args| @options.deep_merge(proc.call(*args)) }
- else
- arguments << (arguments.last.respond_to?(:to_hash) ? @options.deep_merge(arguments.pop) : @options.dup)
- end
-
- @context.__send__(method, *arguments, &block)
- end
- end
-end