Class: ActiveSupport::OptionMerger
- Defined in:
- activesupport/lib/active_support/option_merger.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#initialize(context, options) ⇒ OptionMerger
constructor
A new instance of OptionMerger.
Constructor Details
#initialize(context, options) ⇒ OptionMerger
Returns a new instance of OptionMerger.
11 12 13 |
# File 'activesupport/lib/active_support/option_merger.rb', line 11 def initialize(context, ) @context, @options = context, end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *arguments, &block) ⇒ Object (private)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'activesupport/lib/active_support/option_merger.rb', line 16 def method_missing(method, *arguments, &block) = nil if arguments.size == 1 && arguments.first.is_a?(Proc) proc = arguments.shift arguments << lambda { |*args| @options.deep_merge(proc.call(*args)) } elsif arguments.last.respond_to?(:to_hash) = @options.deep_merge(arguments.pop) else = @options end if @context.__send__(method, *arguments, **, &block) else @context.__send__(method, *arguments, &block) end end |