tld 0.6.4 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -1
- data/.travis.yml +18 -0
- data/Gemfile +6 -2
- data/History.txt +8 -0
- data/README.rdoc +1 -0
- data/VERSION +1 -1
- data/lib/tld/cc.rb +1203 -0
- data/lib/tld/generic.rb +1819 -0
- data/lib/tld/generic_restricted.rb +19 -0
- data/lib/tld/infrastructure.rb +11 -0
- data/lib/tld/{pseudo_tld.rb → pseudo.rb} +0 -0
- data/lib/tld/{reserved_tld.rb → reserved.rb} +0 -0
- data/lib/tld/{retired_tld.rb → retired.rb} +0 -0
- data/lib/tld/sponsored.rb +67 -0
- data/lib/tld/test.rb +51 -0
- data/lib/tld/tld.rb +7 -3
- data/lib/tld.rb +9 -8
- data/rakelib/tld.rake +14 -16
- data/rakelib/tld.rb +37 -70
- data/rakelib/tld.rb.erb +3 -2
- data/test/tld_test.rb +10 -9
- data/tld.gemspec +1 -1
- metadata +29 -17
- data/Gemfile.lock +0 -30
- data/lib/tld/cc_tld.rb +0 -778
- data/lib/tld/generic_tld.rb +0 -28
- data/lib/tld/infrastructure_tld.rb +0 -10
- data/lib/tld/sponsored_tld.rb +0 -49
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            class TLD
         | 
| 2 | 
            +
              class GenericRestricted < TLD
         | 
| 3 | 
            +
                def type
         | 
| 4 | 
            +
                  :generic_restricted
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
                class TLDBiz < GenericRestricted #:nodoc:
         | 
| 7 | 
            +
                  self.tld = %q{biz}
         | 
| 8 | 
            +
                  self.sponsoring_organization = %q{NeuStar, Inc.}
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                class TLDName < GenericRestricted #:nodoc:
         | 
| 11 | 
            +
                  self.tld = %q{name}
         | 
| 12 | 
            +
                  self.sponsoring_organization = %q{VeriSign Information Services, Inc.}
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                class TLDPro < GenericRestricted #:nodoc:
         | 
| 15 | 
            +
                  self.tld = %q{pro}
         | 
| 16 | 
            +
                  self.sponsoring_organization = %q{Registry Services Corporationdba RegistryPro}
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end # end GenericRestricted
         | 
| 19 | 
            +
            end # end TLD
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            class TLD
         | 
| 2 | 
            +
              class Infrastructure < TLD
         | 
| 3 | 
            +
                def type
         | 
| 4 | 
            +
                  :infrastructure
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
                class TLDArpa < Infrastructure #:nodoc:
         | 
| 7 | 
            +
                  self.tld = %q{arpa}
         | 
| 8 | 
            +
                  self.sponsoring_organization = %q{Internet Architecture Board (IAB)}
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
              end # end Infrastructure
         | 
| 11 | 
            +
            end # end TLD
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,67 @@ | |
| 1 | 
            +
            class TLD
         | 
| 2 | 
            +
              class Sponsored < TLD
         | 
| 3 | 
            +
                def type
         | 
| 4 | 
            +
                  :sponsored
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
                class TLDAero < Sponsored #:nodoc:
         | 
| 7 | 
            +
                  self.tld = %q{aero}
         | 
| 8 | 
            +
                  self.sponsoring_organization = %q{Societe Internationale de Telecommunications Aeronautique (SITA INC USA)}
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                class TLDAsia < Sponsored #:nodoc:
         | 
| 11 | 
            +
                  self.tld = %q{asia}
         | 
| 12 | 
            +
                  self.sponsoring_organization = %q{DotAsia Organisation Ltd.}
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                class TLDCat < Sponsored #:nodoc:
         | 
| 15 | 
            +
                  self.tld = %q{cat}
         | 
| 16 | 
            +
                  self.sponsoring_organization = %q{Fundacio puntCAT}
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
                class TLDCoop < Sponsored #:nodoc:
         | 
| 19 | 
            +
                  self.tld = %q{coop}
         | 
| 20 | 
            +
                  self.sponsoring_organization = %q{DotCooperation LLC}
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                class TLDEdu < Sponsored #:nodoc:
         | 
| 23 | 
            +
                  self.tld = %q{edu}
         | 
| 24 | 
            +
                  self.sponsoring_organization = %q{EDUCAUSE}
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
                class TLDGov < Sponsored #:nodoc:
         | 
| 27 | 
            +
                  self.tld = %q{gov}
         | 
| 28 | 
            +
                  self.sponsoring_organization = %q{General Services AdministrationAttn: QTDC, 2E08 (.gov Domain Registration)}
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                class TLDInt < Sponsored #:nodoc:
         | 
| 31 | 
            +
                  self.tld = %q{int}
         | 
| 32 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
                class TLDJobs < Sponsored #:nodoc:
         | 
| 35 | 
            +
                  self.tld = %q{jobs}
         | 
| 36 | 
            +
                  self.sponsoring_organization = %q{Employ Media LLC}
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
                class TLDMil < Sponsored #:nodoc:
         | 
| 39 | 
            +
                  self.tld = %q{mil}
         | 
| 40 | 
            +
                  self.sponsoring_organization = %q{DoD Network Information Center}
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
                class TLDMobi < Sponsored #:nodoc:
         | 
| 43 | 
            +
                  self.tld = %q{mobi}
         | 
| 44 | 
            +
                  self.sponsoring_organization = %q{Afilias Technologies Limited dba dotMobi}
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
                class TLDMuseum < Sponsored #:nodoc:
         | 
| 47 | 
            +
                  self.tld = %q{museum}
         | 
| 48 | 
            +
                  self.sponsoring_organization = %q{Museum Domain Management Association}
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
                class TLDPost < Sponsored #:nodoc:
         | 
| 51 | 
            +
                  self.tld = %q{post}
         | 
| 52 | 
            +
                  self.sponsoring_organization = %q{Universal Postal Union}
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
                class TLDTel < Sponsored #:nodoc:
         | 
| 55 | 
            +
                  self.tld = %q{tel}
         | 
| 56 | 
            +
                  self.sponsoring_organization = %q{Telnic Ltd.}
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
                class TLDTravel < Sponsored #:nodoc:
         | 
| 59 | 
            +
                  self.tld = %q{travel}
         | 
| 60 | 
            +
                  self.sponsoring_organization = %q{Tralliance Registry Management Company, LLC.}
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
                class TLDXxx < Sponsored #:nodoc:
         | 
| 63 | 
            +
                  self.tld = %q{xxx}
         | 
| 64 | 
            +
                  self.sponsoring_organization = %q{ICM Registry LLC}
         | 
| 65 | 
            +
                end
         | 
| 66 | 
            +
              end # end Sponsored
         | 
| 67 | 
            +
            end # end TLD
         | 
    
        data/lib/tld/test.rb
    ADDED
    
    | @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            class TLD
         | 
| 2 | 
            +
              class Test < TLD
         | 
| 3 | 
            +
                def type
         | 
| 4 | 
            +
                  :test
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
                class TLD测试 < Test #:nodoc:
         | 
| 7 | 
            +
                  self.tld = %q{测试}
         | 
| 8 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                class TLDपरीक्षा < Test #:nodoc:
         | 
| 11 | 
            +
                  self.tld = %q{परीक्षा}
         | 
| 12 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                class TLDиспытание < Test #:nodoc:
         | 
| 15 | 
            +
                  self.tld = %q{испытание}
         | 
| 16 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
                class TLD테스트 < Test #:nodoc:
         | 
| 19 | 
            +
                  self.tld = %q{테스트}
         | 
| 20 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                class TLDטעסט < Test #:nodoc:
         | 
| 23 | 
            +
                  self.tld = %q{טעסט}
         | 
| 24 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
                class TLD測試 < Test #:nodoc:
         | 
| 27 | 
            +
                  self.tld = %q{測試}
         | 
| 28 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                class TLDآزمایشی < Test #:nodoc:
         | 
| 31 | 
            +
                  self.tld = %q{آزمایشی}
         | 
| 32 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
                class TLDபரிட்சை < Test #:nodoc:
         | 
| 35 | 
            +
                  self.tld = %q{பரிட்சை}
         | 
| 36 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
                class TLDδοκιμή < Test #:nodoc:
         | 
| 39 | 
            +
                  self.tld = %q{δοκιμή}
         | 
| 40 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
                class TLDإختبار < Test #:nodoc:
         | 
| 43 | 
            +
                  self.tld = %q{إختبار}
         | 
| 44 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
                class TLDテスト < Test #:nodoc:
         | 
| 47 | 
            +
                  self.tld = %q{テスト}
         | 
| 48 | 
            +
                  self.sponsoring_organization = %q{Internet Assigned Numbers Authority}
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
              end # end Test
         | 
| 51 | 
            +
            end # end TLD
         | 
    
        data/lib/tld/tld.rb
    CHANGED
    
    | @@ -13,7 +13,7 @@ class TLD | |
| 13 13 |  | 
| 14 14 | 
             
              include Singleton
         | 
| 15 15 |  | 
| 16 | 
            -
              class  | 
| 16 | 
            +
              class UnknownTLDError < StandardError; end
         | 
| 17 17 |  | 
| 18 18 | 
             
              def to_s
         | 
| 19 19 | 
             
                tld
         | 
| @@ -23,6 +23,10 @@ class TLD | |
| 23 23 | 
             
                self.class.tld
         | 
| 24 24 | 
             
              end
         | 
| 25 25 |  | 
| 26 | 
            +
              def sponsoring_organization
         | 
| 27 | 
            +
                self.class.sponsoring_organization
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 26 30 | 
             
              def name
         | 
| 27 31 | 
             
                self.class.name
         | 
| 28 32 | 
             
              end
         | 
| @@ -44,7 +48,7 @@ class TLD | |
| 44 48 | 
             
              end
         | 
| 45 49 |  | 
| 46 50 | 
             
              class << self
         | 
| 47 | 
            -
                attr_accessor :tld
         | 
| 51 | 
            +
                attr_accessor :tld, :sponsoring_organization
         | 
| 48 52 |  | 
| 49 53 | 
             
                @@tlds = []
         | 
| 50 54 |  | 
| @@ -81,7 +85,7 @@ class TLD | |
| 81 85 | 
             
                  last     = host.match(/\./) ? host.split('.').last : host # Take the last one of foo.bar.baz
         | 
| 82 86 | 
             
                  instance = all.select { |t| t.tld == last }.first
         | 
| 83 87 |  | 
| 84 | 
            -
                  raise  | 
| 88 | 
            +
                  raise UnknownTLDError, "TLD '#{str}' unkown." if instance.nil?
         | 
| 85 89 |  | 
| 86 90 | 
             
                  instance
         | 
| 87 91 | 
             
                end
         | 
    
        data/lib/tld.rb
    CHANGED
    
    | @@ -2,13 +2,14 @@ dir = File.dirname(__FILE__) | |
| 2 2 | 
             
            $LOAD_PATH << dir unless $LOAD_PATH.include?(dir)
         | 
| 3 3 |  | 
| 4 4 | 
             
            require 'tld/tld'
         | 
| 5 | 
            -
            require 'tld/ | 
| 6 | 
            -
            require 'tld/ | 
| 7 | 
            -
            require 'tld/ | 
| 8 | 
            -
            require 'tld/ | 
| 9 | 
            -
            require 'tld/ | 
| 10 | 
            -
            require 'tld/ | 
| 11 | 
            -
            require 'tld/ | 
| 5 | 
            +
            require 'tld/cc'
         | 
| 6 | 
            +
            require 'tld/generic'
         | 
| 7 | 
            +
            require 'tld/generic_restricted'
         | 
| 8 | 
            +
            require 'tld/infrastructure'
         | 
| 9 | 
            +
            require 'tld/pseudo'
         | 
| 10 | 
            +
            require 'tld/reserved'
         | 
| 11 | 
            +
            require 'tld/retired'
         | 
| 12 | 
            +
            require 'tld/sponsored'
         | 
| 12 13 | 
             
            require 'tld/currency'
         | 
| 13 14 | 
             
            require 'tld/name'
         | 
| 14 | 
            -
            require 'tld/alpha3'
         | 
| 15 | 
            +
            require 'tld/alpha3'
         | 
    
        data/rakelib/tld.rake
    CHANGED
    
    | @@ -1,26 +1,24 @@ | |
| 1 1 | 
             
            namespace :tlds do
         | 
| 2 2 | 
             
              desc "Create CcTld classes from Wikipedia's list of ccTLDs."
         | 
| 3 3 | 
             
              task :update do
         | 
| 4 | 
            -
                dirname | 
| 5 | 
            -
                gen | 
| 6 | 
            -
                cc_lib | 
| 7 | 
            -
                generic_lib | 
| 8 | 
            -
                 | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 12 | 
            -
                sponsored_lib      = File.expand_path(File.join(dirname, %w{.. lib tld sponsored_tld.rb}))
         | 
| 4 | 
            +
                dirname                = File.dirname(__FILE__)
         | 
| 5 | 
            +
                gen                    = File.join(dirname, %w{tld.rb})
         | 
| 6 | 
            +
                cc_lib                 = File.expand_path(File.join(dirname, %w{.. lib tld cc.rb}))
         | 
| 7 | 
            +
                generic_lib            = File.expand_path(File.join(dirname, %w{.. lib tld generic.rb}))
         | 
| 8 | 
            +
                generic_restricted_lib = File.expand_path(File.join(dirname, %w{.. lib tld generic_restricted.rb}))
         | 
| 9 | 
            +
                test_lib               = File.expand_path(File.join(dirname, %w{.. lib tld test.rb}))
         | 
| 10 | 
            +
                infrastructure_lib     = File.expand_path(File.join(dirname, %w{.. lib tld infrastructure.rb}))
         | 
| 11 | 
            +
                sponsored_lib          = File.expand_path(File.join(dirname, %w{.. lib tld sponsored.rb}))
         | 
| 13 12 |  | 
| 14 13 | 
             
                require gen
         | 
| 15 14 |  | 
| 16 15 | 
             
                {
         | 
| 17 | 
            -
                  cc_lib | 
| 18 | 
            -
                  generic_lib | 
| 19 | 
            -
                   | 
| 20 | 
            -
                   | 
| 21 | 
            -
                   | 
| 22 | 
            -
                   | 
| 23 | 
            -
                  sponsored_lib      => TLD::Task::UpdateSponsoredTlds
         | 
| 16 | 
            +
                  cc_lib                 => TLD::Task::UpdateCountryCodeTLDs,
         | 
| 17 | 
            +
                  generic_lib            => TLD::Task::UpdateGenericTLDs,
         | 
| 18 | 
            +
                  generic_restricted_lib => TLD::Task::UpdateGenericRestrictedTLDs,
         | 
| 19 | 
            +
                  test_lib               => TLD::Task::UpdateTestTLDs,
         | 
| 20 | 
            +
                  infrastructure_lib     => TLD::Task::UpdateInfrastructureTLDs,
         | 
| 21 | 
            +
                  sponsored_lib          => TLD::Task::UpdateSponsoredTLDs
         | 
| 24 22 | 
             
                }.each_pair do |lib, klass|
         | 
| 25 23 | 
             
                  File.open(lib, File::CREAT | File::TRUNC | File::WRONLY) do |f|
         | 
| 26 24 | 
             
                    f.write klass.get
         | 
    
        data/rakelib/tld.rb
    CHANGED
    
    | @@ -10,105 +10,72 @@ class TLD | |
| 10 10 | 
             
                  eruby.result(:tlds => tlds, :klass => klass, :type => type)
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 | 
            -
                module  | 
| 14 | 
            -
                  def self.get
         | 
| 13 | 
            +
                module UpdateIanaTlds
         | 
| 14 | 
            +
                  def self.get type
         | 
| 15 15 | 
             
                    tlds = []
         | 
| 16 | 
            -
                    doc | 
| 17 | 
            -
             | 
| 18 | 
            -
                    # Officially assigned code elements
         | 
| 19 | 
            -
                    node = doc.search('#Officially_assigned_code_elements').first.parent
         | 
| 20 | 
            -
                    tlds.concat parse_from_next_sibling_table(node, 3)
         | 
| 16 | 
            +
                    doc = Nokogiri::HTML.parse open('http://www.iana.org/domains/root/db')
         | 
| 21 17 |  | 
| 22 | 
            -
                    #  | 
| 23 | 
            -
                    node = doc.search('#Exceptional_reservations').first.parent
         | 
| 24 | 
            -
                    tlds.concat parse_from_next_sibling_table(node, 2)
         | 
| 18 | 
            +
                    rows = doc.search('#tld-table tbody tr')
         | 
| 25 19 |  | 
| 26 | 
            -
                     | 
| 27 | 
            -
             | 
| 28 | 
            -
                    tlds.concat parse_from_next_sibling_table(node, 3)
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                    Task.to_ruby(tlds, 'CcTld', :cc)
         | 
| 31 | 
            -
                  end
         | 
| 20 | 
            +
                    rows.each do |tr|
         | 
| 21 | 
            +
                      tld = this_type = sponsoring_organization = nil
         | 
| 32 22 |  | 
| 33 | 
            -
                  def self.parse_from_next_sibling_table(node, td_index)
         | 
| 34 | 
            -
                    tlds = []
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                    while node = node.next_sibling
         | 
| 37 | 
            -
                      break if node.name == 'table'
         | 
| 38 | 
            -
                    end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                    node.search('tr').each do |tr|
         | 
| 41 23 | 
             
                      tr.search('td').each_with_index do |td, index|
         | 
| 42 | 
            -
                         | 
| 43 | 
            -
             | 
| 44 | 
            -
                         | 
| 45 | 
            -
                         | 
| 24 | 
            +
                        text = td.text.strip
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                        case index
         | 
| 27 | 
            +
                        when 0
         | 
| 28 | 
            +
                          tld = text.gsub(/^\./, '')
         | 
| 29 | 
            +
                        when 1
         | 
| 30 | 
            +
                          this_type = text
         | 
| 31 | 
            +
                        when 2
         | 
| 32 | 
            +
                          sponsoring_organization = text.gsub(/[\n\r]?/, '')
         | 
| 33 | 
            +
                        end
         | 
| 46 34 | 
             
                      end
         | 
| 47 | 
            -
                    end
         | 
| 48 35 |  | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
                end # end UpdateCcTlds
         | 
| 52 | 
            -
              
         | 
| 53 | 
            -
                module UpdateNonCcTlds
         | 
| 54 | 
            -
                  def self.get(inner_text_match)
         | 
| 55 | 
            -
                    tlds = []
         | 
| 56 | 
            -
                    node = nil
         | 
| 57 | 
            -
                    doc  = Nokogiri::HTML.parse(open('http://en.wikipedia.org/wiki/Top-level_domain'))
         | 
| 58 | 
            -
                    seen = {}
         | 
| 59 | 
            -
                    doc.search('table.nowraplinks.navbox-subgroup tr').each do |tr|
         | 
| 60 | 
            -
                      tr.search('td').each do |td|
         | 
| 61 | 
            -
                        if td.text == inner_text_match
         | 
| 62 | 
            -
                          while td = td.next_sibling
         | 
| 63 | 
            -
                            td.search('a').each do |a|
         | 
| 64 | 
            -
                              tld = a.text.upcase.gsub(/^\./, '')
         | 
| 65 | 
            -
                              next if seen[tld]
         | 
| 66 | 
            -
                              seen[tld] = true
         | 
| 67 | 
            -
                              tlds.push(tld)
         | 
| 68 | 
            -
                            end
         | 
| 69 | 
            -
                          end
         | 
| 70 | 
            -
                        end
         | 
| 36 | 
            +
                      if type == this_type
         | 
| 37 | 
            +
                        tlds << {tld: tld, sponsoring_organization: sponsoring_organization}
         | 
| 71 38 | 
             
                      end
         | 
| 72 39 | 
             
                    end
         | 
| 73 40 |  | 
| 74 | 
            -
                    tlds
         | 
| 41 | 
            +
                    return tlds
         | 
| 75 42 | 
             
                  end
         | 
| 76 43 | 
             
                end
         | 
| 77 44 |  | 
| 78 | 
            -
                module  | 
| 45 | 
            +
                module UpdateCountryCodeTLDs
         | 
| 79 46 | 
             
                  def self.get
         | 
| 80 | 
            -
                    Task.to_ruby(Task:: | 
| 47 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('country-code'), 'CC', :cc)
         | 
| 81 48 | 
             
                  end
         | 
| 82 | 
            -
                end # end  | 
| 49 | 
            +
                end # end UpdateCountryCodeTLDs
         | 
| 83 50 |  | 
| 84 | 
            -
                module  | 
| 51 | 
            +
                module UpdateGenericTLDs
         | 
| 85 52 | 
             
                  def self.get
         | 
| 86 | 
            -
                    Task.to_ruby(Task:: | 
| 53 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('generic'), 'Generic', :generic)
         | 
| 87 54 | 
             
                  end
         | 
| 88 | 
            -
                end # end  | 
| 55 | 
            +
                end # end UpdateGenericTLDs
         | 
| 89 56 |  | 
| 90 | 
            -
                module  | 
| 57 | 
            +
                module UpdateGenericRestrictedTLDs
         | 
| 91 58 | 
             
                  def self.get
         | 
| 92 | 
            -
                    Task.to_ruby(Task:: | 
| 59 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('generic-restricted'), 'GenericRestricted', :generic_restricted)
         | 
| 93 60 | 
             
                  end
         | 
| 94 | 
            -
                end # end  | 
| 61 | 
            +
                end # end UpdateGenericRestrictedTLDs
         | 
| 95 62 |  | 
| 96 | 
            -
                module  | 
| 63 | 
            +
                module UpdateTestTLDs
         | 
| 97 64 | 
             
                  def self.get
         | 
| 98 | 
            -
                    Task.to_ruby(Task:: | 
| 65 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('test'), 'Test', :test)
         | 
| 99 66 | 
             
                  end
         | 
| 100 | 
            -
                end # end  | 
| 67 | 
            +
                end # end UpdateTestTLDs
         | 
| 101 68 |  | 
| 102 | 
            -
                module  | 
| 69 | 
            +
                module UpdateInfrastructureTLDs
         | 
| 103 70 | 
             
                  def self.get
         | 
| 104 | 
            -
                    Task.to_ruby(Task:: | 
| 71 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('infrastructure'), 'Infrastructure', :infrastructure)
         | 
| 105 72 | 
             
                  end
         | 
| 106 | 
            -
                end # end  | 
| 73 | 
            +
                end # end UpdateInfrastructureTLDs
         | 
| 107 74 |  | 
| 108 | 
            -
                module  | 
| 75 | 
            +
                module UpdateSponsoredTLDs
         | 
| 109 76 | 
             
                  def self.get
         | 
| 110 | 
            -
                    Task.to_ruby(Task:: | 
| 77 | 
            +
                    Task.to_ruby(Task::UpdateIanaTlds.get('sponsored'), 'Sponsored', :sponsored)
         | 
| 111 78 | 
             
                  end
         | 
| 112 | 
            -
                end # end  | 
| 79 | 
            +
                end # end UpdateSponsoredTLDs
         | 
| 113 80 | 
             
              end # Task
         | 
| 114 81 | 
             
            end # TLD
         | 
    
        data/rakelib/tld.rb.erb
    CHANGED
    
    | @@ -4,8 +4,9 @@ class TLD | |
| 4 4 | 
             
                  :<%= type %>
         | 
| 5 5 | 
             
                end
         | 
| 6 6 | 
             
                <% tlds.each do |tld| -%>
         | 
| 7 | 
            -
                class <%= tld %> < <%= klass %> #:nodoc:
         | 
| 8 | 
            -
                  self.tld = %q{<%= tld.downcase %>}
         | 
| 7 | 
            +
                class TLD<%= tld[:tld].split(/(\W)/).map(&:capitalize).join %> < <%= klass %> #:nodoc:
         | 
| 8 | 
            +
                  self.tld = %q{<%= tld[:tld].downcase %>}
         | 
| 9 | 
            +
                  self.sponsoring_organization = %q{<%= tld[:sponsoring_organization] %>}
         | 
| 9 10 | 
             
                end
         | 
| 10 11 | 
             
                <% end -%>
         | 
| 11 12 | 
             
              end # end <%= klass %>
         | 
    
        data/test/tld_test.rb
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require 'minitest/autorun'
         | 
| 2 2 | 
             
            require 'tld'
         | 
| 3 3 | 
             
            require 'shoulda'
         | 
| 4 4 |  | 
| 5 | 
            -
            class TestTld < Test | 
| 5 | 
            +
            class TestTld < Minitest::Test
         | 
| 6 6 | 
             
              should 'find TLD by exact match' do
         | 
| 7 7 | 
             
                assert_equal 'au', TLD.find('au').tld
         | 
| 8 8 | 
             
              end
         | 
| @@ -49,14 +49,14 @@ class TestTld < Test::Unit::TestCase | |
| 49 49 | 
             
                assert_equal tld.tld, tld.to_s
         | 
| 50 50 | 
             
              end
         | 
| 51 51 |  | 
| 52 | 
            -
              should 'com  | 
| 52 | 
            +
              should 'map .com to empty currency (not Comoros)' do
         | 
| 53 53 | 
             
                assert_equal [], TLD.find('com').currencies
         | 
| 54 54 | 
             
                assert_nil TLD.find('com').currency
         | 
| 55 55 | 
             
              end
         | 
| 56 56 |  | 
| 57 57 | 
             
              should 'raise exception when TLD is unknown' do
         | 
| 58 | 
            -
                assert_raises TLD:: | 
| 59 | 
            -
                  TLD.find(' | 
| 58 | 
            +
                assert_raises TLD::UnknownTLDError do
         | 
| 59 | 
            +
                  TLD.find('foobar')
         | 
| 60 60 | 
             
                end
         | 
| 61 61 | 
             
              end
         | 
| 62 62 |  | 
| @@ -72,15 +72,16 @@ class TestTld < Test::Unit::TestCase | |
| 72 72 | 
             
              should 'confirm that hostname has a valid TLD' do
         | 
| 73 73 | 
             
                assert TLD.has_valid_tld?('foo.com.au')
         | 
| 74 74 | 
             
                assert TLD.has_valid_tld?('http://foo.com.au/bar')
         | 
| 75 | 
            +
                assert TLD.has_valid_tld?('Techno.Trading.House')
         | 
| 75 76 | 
             
              end
         | 
| 76 77 |  | 
| 77 78 | 
             
              should 'confirm that hostname does not have a valid TLD' do
         | 
| 78 | 
            -
                assert_equal false, TLD.has_valid_tld?('foo. | 
| 79 | 
            -
                assert_equal false, TLD.has_valid_tld?('http://foo. | 
| 79 | 
            +
                assert_equal false, TLD.has_valid_tld?('foo.barbaz')
         | 
| 80 | 
            +
                assert_equal false, TLD.has_valid_tld?('http://foo.barbaz')
         | 
| 80 81 | 
             
              end
         | 
| 81 82 |  | 
| 82 | 
            -
              should 'raise  | 
| 83 | 
            -
                assert_raises TLD:: | 
| 83 | 
            +
              should 'raise UnknownTLDError if string cannot be parsed by Addressable::URI' do
         | 
| 84 | 
            +
                assert_raises TLD::UnknownTLDError do
         | 
| 84 85 | 
             
                  TLD.find('foo:')
         | 
| 85 86 | 
             
                end
         | 
| 86 87 | 
             
              end
         | 
    
        data/tld.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,20 +1,32 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tld
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.7.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Alex Rabarts
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 11 | 
            +
            date: 2014-11-27 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: addressable
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - '>='
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - '>='
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 14 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 28 | 
             
              name: iso_country_codes
         | 
| 16 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 30 | 
             
                requirements:
         | 
| 19 31 | 
             
                - - '>='
         | 
| 20 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -22,7 +34,6 @@ dependencies: | |
| 22 34 | 
             
              type: :runtime
         | 
| 23 35 | 
             
              prerelease: false
         | 
| 24 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 37 | 
             
                requirements:
         | 
| 27 38 | 
             
                - - '>='
         | 
| 28 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -35,8 +46,8 @@ extra_rdoc_files: | |
| 35 46 | 
             
            - README.rdoc
         | 
| 36 47 | 
             
            files:
         | 
| 37 48 | 
             
            - .gitignore
         | 
| 49 | 
            +
            - .travis.yml
         | 
| 38 50 | 
             
            - Gemfile
         | 
| 39 | 
            -
            - Gemfile.lock
         | 
| 40 51 | 
             
            - History.txt
         | 
| 41 52 | 
             
            - Manifest.txt
         | 
| 42 53 | 
             
            - README.rdoc
         | 
| @@ -44,15 +55,17 @@ files: | |
| 44 55 | 
             
            - VERSION
         | 
| 45 56 | 
             
            - lib/tld.rb
         | 
| 46 57 | 
             
            - lib/tld/alpha3.rb
         | 
| 47 | 
            -
            - lib/tld/ | 
| 58 | 
            +
            - lib/tld/cc.rb
         | 
| 48 59 | 
             
            - lib/tld/currency.rb
         | 
| 49 | 
            -
            - lib/tld/ | 
| 50 | 
            -
            - lib/tld/ | 
| 60 | 
            +
            - lib/tld/generic.rb
         | 
| 61 | 
            +
            - lib/tld/generic_restricted.rb
         | 
| 62 | 
            +
            - lib/tld/infrastructure.rb
         | 
| 51 63 | 
             
            - lib/tld/name.rb
         | 
| 52 | 
            -
            - lib/tld/ | 
| 53 | 
            -
            - lib/tld/ | 
| 54 | 
            -
            - lib/tld/ | 
| 55 | 
            -
            - lib/tld/ | 
| 64 | 
            +
            - lib/tld/pseudo.rb
         | 
| 65 | 
            +
            - lib/tld/reserved.rb
         | 
| 66 | 
            +
            - lib/tld/retired.rb
         | 
| 67 | 
            +
            - lib/tld/sponsored.rb
         | 
| 68 | 
            +
            - lib/tld/test.rb
         | 
| 56 69 | 
             
            - lib/tld/tld.rb
         | 
| 57 70 | 
             
            - rakelib/cultivate.rake
         | 
| 58 71 | 
             
            - rakelib/tld.rake
         | 
| @@ -62,27 +75,26 @@ files: | |
| 62 75 | 
             
            - tld.gemspec
         | 
| 63 76 | 
             
            homepage: http://github.com/alexrabarts/tld
         | 
| 64 77 | 
             
            licenses: []
         | 
| 78 | 
            +
            metadata: {}
         | 
| 65 79 | 
             
            post_install_message: 
         | 
| 66 80 | 
             
            rdoc_options: []
         | 
| 67 81 | 
             
            require_paths:
         | 
| 68 82 | 
             
            - lib
         | 
| 69 83 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 70 | 
            -
              none: false
         | 
| 71 84 | 
             
              requirements:
         | 
| 72 85 | 
             
              - - '>='
         | 
| 73 86 | 
             
                - !ruby/object:Gem::Version
         | 
| 74 87 | 
             
                  version: '0'
         | 
| 75 88 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 76 | 
            -
              none: false
         | 
| 77 89 | 
             
              requirements:
         | 
| 78 90 | 
             
              - - '>='
         | 
| 79 91 | 
             
                - !ruby/object:Gem::Version
         | 
| 80 92 | 
             
                  version: '0'
         | 
| 81 93 | 
             
            requirements: []
         | 
| 82 94 | 
             
            rubyforge_project: 
         | 
| 83 | 
            -
            rubygems_version:  | 
| 95 | 
            +
            rubygems_version: 2.4.4
         | 
| 84 96 | 
             
            signing_key: 
         | 
| 85 | 
            -
            specification_version:  | 
| 97 | 
            +
            specification_version: 4
         | 
| 86 98 | 
             
            summary: Provides meta information for Internet Top Level Domains (TLDs).
         | 
| 87 99 | 
             
            test_files:
         | 
| 88 100 | 
             
            - test/tld_test.rb
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,30 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: .
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                tld (0.6.3)
         | 
| 5 | 
            -
                  iso_country_codes
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            GEM
         | 
| 8 | 
            -
              remote: https://rubygems.org/
         | 
| 9 | 
            -
              specs:
         | 
| 10 | 
            -
                addressable (2.2.6)
         | 
| 11 | 
            -
                erubis (2.7.0)
         | 
| 12 | 
            -
                iso_country_codes (0.2.3)
         | 
| 13 | 
            -
                  rake
         | 
| 14 | 
            -
                  rdoc
         | 
| 15 | 
            -
                json (1.6.1)
         | 
| 16 | 
            -
                nokogiri (1.4.4)
         | 
| 17 | 
            -
                rake (0.9.2.2)
         | 
| 18 | 
            -
                rdoc (3.11)
         | 
| 19 | 
            -
                  json (~> 1.4)
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            PLATFORMS
         | 
| 22 | 
            -
              ruby
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            DEPENDENCIES
         | 
| 25 | 
            -
              addressable
         | 
| 26 | 
            -
              erubis
         | 
| 27 | 
            -
              nokogiri
         | 
| 28 | 
            -
              rake
         | 
| 29 | 
            -
              rdoc
         | 
| 30 | 
            -
              tld!
         |