Method: MultiMail::Service#validate_options

Defined in:
lib/multi_mail/service.rb

#validate_options(options, raise_error_if_unrecognized = true) ⇒ Object

Ensures that required arguments are present and that optional arguments are recognized.

Parameters:

  • options (Hash)

    arguments

Raises:

  • (ArgumentError)

    if it can't find a required argument or can't recognize an optional argument

See Also:

  • Fog::Service::validate_options


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/multi_mail/service.rb', line 45

def validate_options(options, raise_error_if_unrecognized = true)
  keys = []
  for key, value in options
    unless value.nil?
      keys << key
    end
  end

  missing = requirements - keys
  unless missing.empty?
    raise ArgumentError, "Missing required arguments: #{missing.map(&:to_s).sort.join(', ')}"
  end

  if !recognizes.empty? && raise_error_if_unrecognized
    unrecognized = options.keys - requirements - recognized
    unless unrecognized.empty?
      raise ArgumentError, "Unrecognized arguments: #{unrecognized.map(&:to_s).sort.join(', ')}"
    end
  end
end