lib/truemail.rb in truemail-1.2.1 vs lib/truemail.rb in truemail-1.3.0

- old
+ new

@@ -2,19 +2,19 @@ require 'truemail/core' module Truemail INCOMPLETE_CONFIG = 'verifier_email is required parameter' - NOT_CONFIGURED = 'use Truemail.configure before' + NOT_CONFIGURED = 'use Truemail.configure before or pass custom configuration' class << self def configuration @configuration ||= begin return unless block_given? configuration = Truemail::Configuration.new yield(configuration) - raise_unless(configuration.complete?, INCOMPLETE_CONFIG) + raise_unless(configuration.complete?, Truemail::INCOMPLETE_CONFIG) configuration end end def configure(&block) @@ -23,26 +23,31 @@ def reset_configuration! @configuration = nil end - def validate(email, **options) - raise_unless(configuration, NOT_CONFIGURED) - Truemail::Validator.new(email, **options).run + def validate(email, custom_configuration: nil, **options) + Truemail::Validator.new(email, configuration: determine_configuration(custom_configuration), **options).run end def valid?(email, **options) validate(email, **options).result.valid? end - def host_audit - raise_unless(configuration, NOT_CONFIGURED) - Truemail::Auditor.run + def host_audit(custom_configuration: nil) + Truemail::Auditor.new(configuration: determine_configuration(custom_configuration)).run end private def raise_unless(condition, message) - raise ConfigurationError, message unless condition + raise Truemail::ConfigurationError, message unless condition + end + + def determine_configuration(custom_configuration) + current_configuration = custom_configuration || configuration + raise_unless(current_configuration, Truemail::NOT_CONFIGURED) + raise_unless(current_configuration.complete?, Truemail::INCOMPLETE_CONFIG) + current_configuration.dup.freeze end end end