Sha256: 8946e6dc477c278e3bc7f5987619cb6f80016ea0c342c25207288f4661b3dd13

Contents?: true

Size: 1.05 KB

Versions: 10

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require 'truemail/core'

module Truemail
  INCOMPLETE_CONFIG = 'verifier_email is required parameter'
  NOT_CONFIGURED = 'use Truemail.configure before'

  class << self
    def configuration
      @configuration ||= begin
        return unless block_given?
        configuration = Truemail::Configuration.new
        yield(configuration)
        raise_unless(configuration.complete?, INCOMPLETE_CONFIG)
        configuration
      end
    end

    def configure(&block)
      configuration(&block)
    end

    def reset_configuration!
      @configuration = nil
    end

    def validate(email, **options)
      raise_unless(configuration, NOT_CONFIGURED)
      Truemail::Validator.new(email, **options).run
    end

    def valid?(email, **options)
      validate(email, **options).result.valid?
    end

    def host_audit
      raise_unless(configuration, NOT_CONFIGURED)
      Truemail::Auditor.run
    end

    private

    def raise_unless(condition, message)
      raise ConfigurationError, message unless condition
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
truemail-1.2.1 lib/truemail.rb
truemail-1.2.0 lib/truemail.rb
truemail-1.1.0 lib/truemail.rb
truemail-1.0.1 lib/truemail.rb
truemail-1.0.0 lib/truemail.rb
truemail-0.2.0 lib/truemail.rb
truemail-0.1.10 lib/truemail.rb
truemail-0.1.9 lib/truemail.rb
truemail-0.1.8 lib/truemail.rb
truemail-0.1.7 lib/truemail.rb