Sha256: b19187ac7025da949c7e7648c0a7a1c33455fef707cb4d1523cebb4f7989488b

Contents?: true

Size: 1.3 KB

Versions: 11

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

require_relative '../truemail/client/version'
require_relative '../truemail/client/configuration'
require_relative '../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
          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: email).run
      end

      def server_healthy?
        raise_unless(Truemail::Client.configuration, Truemail::Client::NOT_CONFIGURED)
        Truemail::Client::Http.new(Truemail::Client::Http::HEALTHCHECK_ENDPOINT).run.empty?
      end

      private

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

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
truemail-client-0.6.1 lib/truemail/client.rb
truemail-client-0.6.0 lib/truemail/client.rb
truemail-client-0.5.2 lib/truemail/client.rb
truemail-client-0.5.1 lib/truemail/client.rb
truemail-client-0.5.0 lib/truemail/client.rb
truemail-client-0.4.1 lib/truemail/client.rb
truemail-client-0.4.0 lib/truemail/client.rb
truemail-client-0.3.4 lib/truemail/client.rb
truemail-client-0.3.3 lib/truemail/client.rb
truemail-client-0.3.2 lib/truemail/client.rb
truemail-client-0.3.1 lib/truemail/client.rb