Method: MethodObject::ClassMethods#__check_for_unknown_options

Defined in:
lib/method_object.rb

#__check_for_unknown_options(*args, **kwargs) ⇒ Object

Raises:

  • (ArgumentError)


31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/method_object.rb', line 31

def __check_for_unknown_options(*args, **kwargs)
  return if __defined_options.empty?

  # Checking params
  opts = args.drop(__defined_params.length).first || kwargs
  raise ArgumentError, "Unexpected argument #{opts}" unless opts.is_a? Hash

  # Checking options
  unknown_options = opts.keys - __defined_options
  message = "Key(s) #{unknown_options} not found in #{__defined_options}"
  raise KeyError, message if unknown_options.any?
end