Sha256: 43feb5ec2ee16dd295beeef0e9a1cb465fbd6831cb57befb07235dadb6e9a0f3

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

module Truemail
  require 'truemail/version'
  require 'truemail/configuration'
  require 'truemail/worker'
  require 'truemail/wrapper'
  require 'truemail/auditor'
  require 'truemail/validator'
  require 'truemail/logger'

  ConfigurationError = Class.new(StandardError)

  ArgumentError = Class.new(StandardError) do
    def initialize(current_param, class_name)
      super("#{current_param} is not a valid #{class_name}")
    end
  end

  PunycodeRepresenter = Class.new do
    require 'simpleidn'

    def self.call(email)
      return unless email.is_a?(String)
      return email if email.ascii_only?
      user, domain = email.split('@')
      "#{user}@#{SimpleIDN.to_ascii(domain.downcase)}"
    end
  end

  module RegexConstant
    REGEX_DOMAIN = /[\p{L}0-9]+([\-\.]{1}[\p{L}0-9]+)*\.[\p{L}]{2,63}/i.freeze
    REGEX_EMAIL_PATTERN = /(?=\A.{6,255}\z)(\A([\p{L}0-9]+[\w|\-|\.|\+]*)@(#{REGEX_DOMAIN})\z)/.freeze
    REGEX_DOMAIN_PATTERN = /(?=\A.{4,255}\z)(\A#{REGEX_DOMAIN}\z)/.freeze
    REGEX_DOMAIN_FROM_EMAIL = /\A.+@(.+)\z/.freeze
    REGEX_SMTP_ERROR_BODY_PATTERN = /(?=.*550)(?=.*(user|account|customer|mailbox)).*/i.freeze
  end

  module Audit
    require 'truemail/audit/base'
    require 'truemail/audit/ptr'
  end

  module Validate
    require 'truemail/validate/base'
    require 'truemail/validate/domain_list_match'
    require 'truemail/validate/regex'
    require 'truemail/validate/mx'
    require 'truemail/validate/smtp'
    require 'truemail/validate/smtp/response'
    require 'truemail/validate/smtp/request'
  end

  module Log
    require 'truemail/log/event'
    require 'truemail/log/serializer/base'
    require 'truemail/log/serializer/text'
    require 'truemail/log/serializer/json'
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
truemail-1.6.0 lib/truemail/core.rb
truemail-1.5.1 lib/truemail/core.rb
truemail-1.5.0 lib/truemail/core.rb