Sha256: a6d9ab2010c462c9c18c6c90d79272b5780fbfd018a3cecb8802f1b78379949d

Contents?: true

Size: 835 Bytes

Versions: 3

Compression:

Stored size: 835 Bytes

Contents

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

require "public_suffix"
require "yaml"
require_relative "../lib/gman"
require_relative "../lib/gman/importer"

# 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
  else
    domain = rule.parts.pop(2).join(".") if ".#{rule.value}" =~ REGEX
  end

  domains.push domain unless domain.nil? or 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.import({"non-us gov" => domains}, :skip_resolve => true)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gman-5.0.9 script/vendor-public-suffix
gman-5.0.8 script/vendor-public-suffix
gman-5.0.7 script/vendor-public-suffix