Froze rails gems
[depot.git] / vendor / rails / activesupport / lib / active_support / option_merger.rb
diff --git a/vendor/rails/activesupport/lib/active_support/option_merger.rb b/vendor/rails/activesupport/lib/active_support/option_merger.rb
new file mode 100644 (file)
index 0000000..b563b09
--- /dev/null
@@ -0,0 +1,17 @@
+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)
+        arguments << (arguments.last.respond_to?(:to_hash) ? @options.deep_merge(arguments.pop) : @options.dup)
+        @context.__send__(method, *arguments, &block)
+      end
+  end
+end