Sha256: 4ef42ab715f9d8b244877439fe4c0ce12eac507b69872ffb105559178ee24052
Contents?: true
Size: 694 Bytes
Versions: 150
Compression:
Stored size: 694 Bytes
Contents
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
Version data entries
150 entries across 119 versions & 14 rubygems