Class: ActiveSupport::OptionMerger
Do not use. This class is for internal use only.
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activesupport/lib/active_support/option_merger.rb |
Class Method Summary
- .new(context, options) ⇒ OptionMerger constructor
Instance Method Summary
Constructor Details
.new(context, options) ⇒ OptionMerger
# 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) (private)
[ GitHub ]# 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
Instance Method Details
#respond_to_missing? ⇒ Boolean
(private)
# File 'activesupport/lib/active_support/option_merger.rb', line 34
def respond_to_missing?(...) @context.respond_to?(...) end