module MultiMail::Service
Interacts with email APIs to send or receive email.
Public Instance Methods
Returns the list of optional arguments.
@return [Array] a list of optional arguments @see Fog::Service::recognized
# File lib/multi_mail/service.rb, line 34 def recognized @recognized ||= [] end
Appends the given arguments to the list of optional arguments.
@param args one or more optional arguments @see Fog::Service::recognizes
# File lib/multi_mail/service.rb, line 26 def recognizes(*args) recognized.concat(args) end
Returns the list of required arguments.
@return [Array] a list of required arguments @see Fog::Service::requirements
# File lib/multi_mail/service.rb, line 18 def requirements @requirements ||= [] end
Appends the given arguments to the list of required arguments.
@param args one or more required arguments @see Fog::Service::requires
# File lib/multi_mail/service.rb, line 10 def requires(*args) requirements.concat(args) end
Ensures that required arguments are present and that optional arguments are recognized.
@param [Hash] options arguments @raise [ArgumentError] if it can't find a required argument or can't
recognize an optional argument
@see Fog::Service::validate_options
# 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