Class: ActiveSupport::OptionMerger
- Inherits:
-
Object
- Object
- ActiveSupport::OptionMerger
- Defined in:
- activesupport/lib/active_support/option_merger.rb
Overview
:nodoc:
Instance Method Summary (collapse)
-
- (OptionMerger) initialize(context, options)
constructor
A new instance of OptionMerger.
Constructor Details
- (OptionMerger) initialize(context, options)
A new instance of OptionMerger
9 10 11 |
# File 'activesupport/lib/active_support/option_merger.rb', line 9 def initialize(context, ) @context, @options = context, end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
- (Object) method_missing(method, *arguments, &block) (private)
14 15 16 17 18 19 20 21 22 23 |
# File 'activesupport/lib/active_support/option_merger.rb', line 14 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 |