Sha256: b8d6af15f12506dbf461e22b508ee0e0c438fc7eae9beb961d9830e1d8c62f0b

Contents?: true

Size: 526 Bytes

Versions: 2

Compression:

Stored size: 526 Bytes

Contents

# frozen_string_literal: true

require "email_data"
require "simpleidn"
require "json"

require "root_domain/version"

module RootDomain
  def self.call(input)
    input = SimpleIDN.to_ascii(input)

    find(EmailData.slds, input) || find(EmailData.tlds, input)
  end

  def self.find(source, input)
    components = input.split(".")

    0.upto(components.size - 1) do |index|
      if source.include?(components[index..-1].join("."))
        return components[(index - 1)..-1].join(".")
      end
    end

    nil
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
root_domain-0.1.2 lib/root_domain.rb
root_domain-0.1.1 lib/root_domain.rb