Sha256: 7fdce203d793d137da5345fd2196f932b25d11a50078c7e3d8fb6c08847ac1bd

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require 'truemail/client/version'
require 'truemail/client/configuration'
require 'truemail/client/http'

module Truemail
  module Client
    INCOMPLETE_CONFIG = 'required args not passed'
    NOT_CONFIGURED = 'use Truemail::Client.configure before'

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

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

      def reset_configuration!
        @configuration = nil
      end

      def validate(email)
        raise_unless(Truemail::Client.configuration, Truemail::Client::NOT_CONFIGURED)
        Truemail::Client::Http.new(email).run
      end

      private

      def raise_unless(condition, message)
        raise Truemail::Client::Configuration::Error, message unless condition
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
truemail-client-0.1.1 lib/truemail/client.rb
truemail-client-0.1.0 lib/truemail/client.rb