lib/truemail.rb in truemail-1.9.1 vs lib/truemail.rb in truemail-1.9.2
- old
+ new
@@ -3,10 +3,11 @@
require_relative 'truemail/core'
module Truemail
INCOMPLETE_CONFIG = 'verifier_email is required parameter'
NOT_CONFIGURED = 'use Truemail.configure before or pass custom configuration'
+ INVALID_TYPE = 'email should be a String'
class << self
def configuration(&block)
@configuration ||= begin
return unless block_given?
@@ -23,24 +24,30 @@
def reset_configuration!
@configuration = nil
end
def validate(email, custom_configuration: nil, **options)
+ check_argument_type(email)
Truemail::Validator.new(email, configuration: determine_configuration(custom_configuration), **options).run
end
def valid?(email, **options)
+ check_argument_type(email)
validate(email, **options).result.valid?
end
def host_audit(custom_configuration: nil)
Truemail::Auditor.new(configuration: determine_configuration(custom_configuration)).run
end
private
- def raise_unless(condition, message)
- raise Truemail::ConfigurationError, message unless condition
+ def raise_unless(condition, message, error_class = Truemail::ConfigurationError)
+ raise error_class, message unless condition
+ end
+
+ def check_argument_type(argument)
+ raise_unless(argument.is_a?(String), Truemail::INVALID_TYPE, Truemail::TypeError)
end
def determine_configuration(custom_configuration)
current_configuration = custom_configuration || configuration
raise_unless(current_configuration, Truemail::NOT_CONFIGURED)