Sha256: 5a5563c0f913f2aca862ca7421477c599284b5836a1f474742f64c0e7a1c5ba3

Contents?: true

Size: 803 Bytes

Versions: 3

Compression:

Stored size: 803 Bytes

Contents

#!/usr/bin/env ruby
# Propagates an initial list of best-guess government domains

require 'public_suffix'
require 'yaml'
require_relative '../lib/gman'

# https://gist.github.com/benbalter/6147066
REGEX = /(\.g[ou]{1,2}(v|b|vt)|\.mil|\.gc|\.fed)(\.[a-z]{2})?$/i

domains = []
PublicSuffix::List.default.each do |rule|
  domain = nil

  if rule.parts.length == 1
    domain = rule.parts.first if ".#{rule.value}" =~ REGEX
  elsif ".#{rule.value}" =~ REGEX
    domain = rule.parts.pop(2).join('.')
  end

  domains.push domain unless domain.nil? || domains.include?(domain)
end

# Note: We want to skip resolution here, because a domain like `gov.sv` may be
# a valid TLD, not have any top-level sites, and we'd still want it listed
Gman::Importer.new('non-us gov' => domains).import(skip_resolve: true)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gman-7.0.2 script/vendor-public-suffix
gman-7.0.1 script/vendor-public-suffix
gman-7.0.0 script/vendor-public-suffix