alexrabarts-tld 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ require 'rubygems'
2
+ require 'iso_country_codes'
3
+
4
+ class TLD
5
+ class Currency
6
+ CURRENCY_MAP = {
7
+ :eu => %w{EUR},
8
+ :gov => %w{USD},
9
+ :mil => %w{USD}
10
+ }
11
+
12
+ class << self
13
+ def find(klass)
14
+ tld = klass.tld
15
+ mapped_currency = CURRENCY_MAP[tld.to_sym]
16
+ if mapped_currency.nil?
17
+ return tld.match(/^\w\w$/) ? IsoCountryCodes.find(TLD::MAP[tld.to_sym] || tld).currencies : []
18
+ else
19
+ return mapped_currency
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ class TLD
2
+ class GenericTld < TLD
3
+ def type
4
+ :generic
5
+ end
6
+ class BIZ < GenericTld #:nodoc:
7
+ self.tld = %q{biz}
8
+ end
9
+ class COM < GenericTld #:nodoc:
10
+ self.tld = %q{com}
11
+ end
12
+ class INFO < GenericTld #:nodoc:
13
+ self.tld = %q{info}
14
+ end
15
+ class NAME < GenericTld #:nodoc:
16
+ self.tld = %q{name}
17
+ end
18
+ class NET < GenericTld #:nodoc:
19
+ self.tld = %q{net}
20
+ end
21
+ class ORG < GenericTld #:nodoc:
22
+ self.tld = %q{org}
23
+ end
24
+ class PRO < GenericTld #:nodoc:
25
+ self.tld = %q{pro}
26
+ end
27
+ end # end GenericTld
28
+ end # end TLD
@@ -0,0 +1,10 @@
1
+ class TLD
2
+ class InfrastructureTld < TLD
3
+ def type
4
+ :infrastructure
5
+ end
6
+ class ARPA < InfrastructureTld #:nodoc:
7
+ self.tld = %q{arpa}
8
+ end
9
+ end # end InfrastructureTld
10
+ end # end TLD
data/lib/tld/name.rb ADDED
@@ -0,0 +1,50 @@
1
+ require 'rubygems'
2
+ require 'iso_country_codes'
3
+
4
+ class TLD
5
+ class Name
6
+ NAME_MAP = {
7
+ :aero => 'Aeroplane',
8
+ :arpa => 'Address and Routing Parameter Area (ARPA)',
9
+ :asia => 'Asia',
10
+ :bitnet => 'BITNET',
11
+ :biz => 'Business',
12
+ :cat => 'Catalan',
13
+ :com => 'Commercial',
14
+ :coop => 'Cooperative',
15
+ :csnet => 'Computer Science Network (CSNET)',
16
+ :edu => 'Education',
17
+ :eu => 'European Union',
18
+ :example => 'Example domain',
19
+ :exit => 'Preferred Tor exit node',
20
+ :gov => 'US Government',
21
+ :info => 'Information',
22
+ :int => 'Internet',
23
+ :invalid => 'Invalid domain',
24
+ :jobs => 'Jobs',
25
+ :local => 'Network discovery protocol',
26
+ :localhost => 'Localhost',
27
+ :mil => 'US Military',
28
+ :mobi => 'Mobile',
29
+ :museum => 'Museum',
30
+ :name => 'Name',
31
+ :nato => 'North Atlantic Treaty Organization (NATO)',
32
+ :net => 'Network',
33
+ :onion => 'Reachable via Tor',
34
+ :org => 'Organization',
35
+ :pro => 'Professional',
36
+ :root => 'Diagnostic marker',
37
+ :tel => 'Telnic',
38
+ :test => 'Test domain',
39
+ :travel => 'Travel',
40
+ :uucp => 'Reachable by Unix to Unix CoPy (UUCP)'
41
+ }
42
+
43
+ class << self
44
+ def find(klass)
45
+ tld = klass.tld
46
+ NAME_MAP[tld.to_sym] || IsoCountryCodes.find(TLD::MAP[tld.to_sym] || tld).name
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,28 @@
1
+ class TLD
2
+ class PseudoTld < TLD
3
+ def type
4
+ :pseudo
5
+ end
6
+ class BITNET < PseudoTld #:nodoc:
7
+ self.tld = %q{bitnet}
8
+ end
9
+ class CSNET < PseudoTld #:nodoc:
10
+ self.tld = %q{csnet}
11
+ end
12
+ class LOCAL < PseudoTld #:nodoc:
13
+ self.tld = %q{local}
14
+ end
15
+ class ROOT < PseudoTld #:nodoc:
16
+ self.tld = %q{root}
17
+ end
18
+ class UUCP < PseudoTld #:nodoc:
19
+ self.tld = %q{uucp}
20
+ end
21
+ class ONION < PseudoTld #:nodoc:
22
+ self.tld = %q{onion}
23
+ end
24
+ class EXIT < PseudoTld #:nodoc:
25
+ self.tld = %q{exit}
26
+ end
27
+ end # end PseudoTld
28
+ end # end TLD
@@ -0,0 +1,19 @@
1
+ class TLD
2
+ class ReservedTld < TLD
3
+ def type
4
+ :reserved
5
+ end
6
+ class EXAMPLE < ReservedTld #:nodoc:
7
+ self.tld = %q{example}
8
+ end
9
+ class INVALID < ReservedTld #:nodoc:
10
+ self.tld = %q{invalid}
11
+ end
12
+ class LOCALHOST < ReservedTld #:nodoc:
13
+ self.tld = %q{localhost}
14
+ end
15
+ class TEST < ReservedTld #:nodoc:
16
+ self.tld = %q{test}
17
+ end
18
+ end # end ReservedTld
19
+ end # end TLD
@@ -0,0 +1,10 @@
1
+ class TLD
2
+ class RetiredTld < TLD
3
+ def type
4
+ :retired
5
+ end
6
+ class NATO < RetiredTld #:nodoc:
7
+ self.tld = %q{nato}
8
+ end
9
+ end # end RetiredTld
10
+ end # end TLD
@@ -0,0 +1,46 @@
1
+ class TLD
2
+ class SponsoredTld < TLD
3
+ def type
4
+ :sponsored
5
+ end
6
+ class AERO < SponsoredTld #:nodoc:
7
+ self.tld = %q{aero}
8
+ end
9
+ class ASIA < SponsoredTld #:nodoc:
10
+ self.tld = %q{asia}
11
+ end
12
+ class CAT < SponsoredTld #:nodoc:
13
+ self.tld = %q{cat}
14
+ end
15
+ class COOP < SponsoredTld #:nodoc:
16
+ self.tld = %q{coop}
17
+ end
18
+ class EDU < SponsoredTld #:nodoc:
19
+ self.tld = %q{edu}
20
+ end
21
+ class GOV < SponsoredTld #:nodoc:
22
+ self.tld = %q{gov}
23
+ end
24
+ class INT < SponsoredTld #:nodoc:
25
+ self.tld = %q{int}
26
+ end
27
+ class JOBS < SponsoredTld #:nodoc:
28
+ self.tld = %q{jobs}
29
+ end
30
+ class MIL < SponsoredTld #:nodoc:
31
+ self.tld = %q{mil}
32
+ end
33
+ class MOBI < SponsoredTld #:nodoc:
34
+ self.tld = %q{mobi}
35
+ end
36
+ class MUSEUM < SponsoredTld #:nodoc:
37
+ self.tld = %q{museum}
38
+ end
39
+ class TEL < SponsoredTld #:nodoc:
40
+ self.tld = %q{tel}
41
+ end
42
+ class TRAVEL < SponsoredTld #:nodoc:
43
+ self.tld = %q{travel}
44
+ end
45
+ end # end SponsoredTld
46
+ end # end TLD
data/lib/tld/tld.rb ADDED
@@ -0,0 +1,86 @@
1
+ require 'singleton'
2
+
3
+ class TLD
4
+ VERSION = '0.2.0'
5
+
6
+ MAP = {
7
+ :ac => 'sh',
8
+ :uk => 'gb',
9
+ :su => 'ru',
10
+ :tp => 'tl',
11
+ :yu => 'rs'
12
+ }
13
+
14
+ include Singleton
15
+
16
+ class UnknownTldError < StandardError; end
17
+
18
+ def tld
19
+ self.class.tld
20
+ end
21
+
22
+ def name
23
+ self.class.name
24
+ end
25
+
26
+ def main_currency
27
+ self.class.main_currency
28
+ end
29
+
30
+ def currency
31
+ self.class.main_currency
32
+ end
33
+
34
+ def currencies
35
+ self.class.currencies
36
+ end
37
+
38
+ def alpha3
39
+ self.class.alpha3
40
+ end
41
+
42
+ class << self
43
+ attr_accessor :tld
44
+
45
+ @@tlds = []
46
+
47
+ def inherited(tld) #:nodoc:
48
+ super
49
+ @@tlds << tld.instance unless self == TLD
50
+ end
51
+
52
+ def all
53
+ @@tlds.uniq
54
+ end
55
+
56
+ def name
57
+ Name.find(self)
58
+ end
59
+
60
+ def currencies
61
+ Currency.find(self)
62
+ end
63
+
64
+ def alpha3
65
+ Alpha3.find(self)
66
+ end
67
+
68
+ def main_currency
69
+ currencies.first
70
+ end
71
+
72
+ alias_method :currency, :main_currency
73
+
74
+ def find(str)
75
+ str.downcase!
76
+ str.sub!(/^\w+:\/\//, '') # Strip protocol
77
+ str = str.split('/').first if str.match(/\//) # Throw away anything after a slash
78
+ str = str.split('.').last if str.match(/\./) # Take the last one of foo.bar.baz
79
+ instance = all.select { |t| t.tld == str }.first
80
+
81
+ raise UnknownTldError, "TLD '#{str}' unkown." if instance.nil?
82
+
83
+ instance
84
+ end
85
+ end
86
+ end
data/lib/tld.rb ADDED
@@ -0,0 +1,14 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH << dir unless $LOAD_PATH.include?(dir)
3
+
4
+ require 'tld/tld'
5
+ require 'tld/cc_tld'
6
+ require 'tld/generic_tld'
7
+ require 'tld/infrastructure_tld'
8
+ require 'tld/pseudo_tld'
9
+ require 'tld/reserved_tld'
10
+ require 'tld/retired_tld'
11
+ require 'tld/sponsored_tld'
12
+ require 'tld/currency'
13
+ require 'tld/name'
14
+ require 'tld/alpha3'
@@ -0,0 +1,7 @@
1
+ # Only works on unixy type systems.
2
+ # http://blog.behindlogic.com/2008/10/auto-generate-your-manifest-and-gemspec.html
3
+ desc 'Rebuild manifest and gemspec.'
4
+ task :cultivate do
5
+ system %q{touch Manifest.txt; rake check_manifest | grep -v "(in " | patch}
6
+ system %q{rake debug_gem | grep -v "(in " > `basename \`pwd\``.gemspec}
7
+ end
data/rakelib/tld.rake ADDED
@@ -0,0 +1,30 @@
1
+ namespace :update do
2
+ desc "Create CcTld classes from Wikipedia's list of ccTLDs."
3
+ task :tlds do
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_tld.rb}))
7
+ generic_lib = File.expand_path(File.join(dirname, %w{.. lib tld generic_tld.rb}))
8
+ infrastructure_lib = File.expand_path(File.join(dirname, %w{.. lib tld infrastructure_tld.rb}))
9
+ pseudo_lib = File.expand_path(File.join(dirname, %w{.. lib tld pseudo_tld.rb}))
10
+ reserved_lib = File.expand_path(File.join(dirname, %w{.. lib tld reserved_tld.rb}))
11
+ retired_lib = File.expand_path(File.join(dirname, %w{.. lib tld retired_tld.rb}))
12
+ sponsored_lib = File.expand_path(File.join(dirname, %w{.. lib tld sponsored_tld.rb}))
13
+
14
+ require gen
15
+
16
+ {
17
+ cc_lib => TLD::Task::UpdateCcTlds,
18
+ generic_lib => TLD::Task::UpdateGenericTlds,
19
+ infrastructure_lib => TLD::Task::UpdateInfrastructureTlds,
20
+ pseudo_lib => TLD::Task::UpdatePseudoTlds,
21
+ reserved_lib => TLD::Task::UpdateReservedTlds,
22
+ retired_lib => TLD::Task::UpdateRetiredTlds,
23
+ sponsored_lib => TLD::Task::UpdateSponsoredTlds
24
+ }.each_pair do |lib, klass|
25
+ File.open(lib, File::CREAT | File::TRUNC | File::WRONLY) do |f|
26
+ f.write klass.get
27
+ end
28
+ end
29
+ end
30
+ end # :currency
data/rakelib/tld.rb ADDED
@@ -0,0 +1,102 @@
1
+ require 'hpricot'
2
+ require 'open-uri'
3
+ require 'erubis'
4
+
5
+ class TLD
6
+ module Task
7
+ def self.to_ruby(tlds, klass, type)
8
+ tmpl = File.read(File.join(File.dirname(__FILE__), 'tld.rb.erb'))
9
+ eruby = Erubis::Eruby.new(tmpl)
10
+ eruby.result(:tlds => tlds, :klass => klass, :type => type)
11
+ end
12
+
13
+ module UpdateCcTlds
14
+ def self.get
15
+ tlds = []
16
+ node = nil
17
+ doc = Hpricot(open('http://en.wikipedia.org/wiki/Country_code_top-level_domain').read)
18
+ nodes = doc.search('strong.selflink')
19
+ found = false
20
+
21
+ nodes.each do |n|
22
+ node = n
23
+ if node.inner_html == 'Country code top-level domains'
24
+ found = true
25
+ break
26
+ end
27
+ end
28
+
29
+ return nil unless found
30
+ node.parent.parent.parent.next_sibling.next_sibling.search('a').each do |a|
31
+ tld = a.inner_text.upcase
32
+ tld.slice!(0) # Remove the leading '.'
33
+ break unless tld.match(/^\w\w$/)
34
+ tlds.push(tld)
35
+ end
36
+
37
+ Task.to_ruby(tlds, 'CcTld', :cc)
38
+ end
39
+ end # end UpdateCcTlds
40
+
41
+ module UpdateNonCcTlds
42
+ def self.get(inner_text_match)
43
+ tlds = []
44
+ node = nil
45
+ doc = Hpricot(open('http://en.wikipedia.org/wiki/Top-level_domain').read)
46
+ seen = {}
47
+ doc.search('table.nowraplinks.navbox-subgroup tr').each do |tr|
48
+ tr.search('td').each do |td|
49
+ if td.inner_text == inner_text_match
50
+ td = td.next_sibling
51
+ td.search('a').each do |a|
52
+ tld = a.inner_text.upcase
53
+ next if seen[tld]
54
+ seen[tld] = true
55
+ tld.slice!(0) # Remove the leading '.'
56
+ tlds.push(tld)
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ tlds
63
+ end
64
+ end
65
+
66
+ module UpdateGenericTlds
67
+ def self.get
68
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Generic'), 'GenericTld', :generic)
69
+ end
70
+ end # end UpdateGenericTlds
71
+
72
+ module UpdateInfrastructureTlds
73
+ def self.get
74
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Infrastructure'), 'InfrastructureTld', :infrastructure)
75
+ end
76
+ end # end UpdateInfrastructureTlds
77
+
78
+ module UpdatePseudoTlds
79
+ def self.get
80
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Pseudo'), 'PseudoTld', :pseudo)
81
+ end
82
+ end # end UpdatePseudoTlds
83
+
84
+ module UpdateReservedTlds
85
+ def self.get
86
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Reserved'), 'ReservedTld', :reserved)
87
+ end
88
+ end # end UpdateReservedTlds
89
+
90
+ module UpdateRetiredTlds
91
+ def self.get
92
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Deleted/retired'), 'RetiredTld', :retired)
93
+ end
94
+ end # end UpdateRetiredTlds
95
+
96
+ module UpdateSponsoredTlds
97
+ def self.get
98
+ Task.to_ruby(Task::UpdateNonCcTlds.get('Sponsored'), 'SponsoredTld', :sponsored)
99
+ end
100
+ end # end UpdateSponsoredTlds
101
+ end # Task
102
+ end # TLD
@@ -0,0 +1,12 @@
1
+ class TLD
2
+ class <%= klass %> < TLD
3
+ def type
4
+ :<%= type %>
5
+ end
6
+ <% tlds.each do |tld| -%>
7
+ class <%= tld %> < <%= klass %> #:nodoc:
8
+ self.tld = %q{<%= tld.downcase %>}
9
+ end
10
+ <% end -%>
11
+ end # end <%= klass %>
12
+ end # end TLD
data/test/test_tld.rb ADDED
@@ -0,0 +1,54 @@
1
+ require 'test/unit'
2
+ require 'tld'
3
+
4
+ class TestTld < Test::Unit::TestCase
5
+ def test_find_tld_by_exact_match
6
+ assert_equal 'au', TLD.find('au').tld
7
+ end
8
+
9
+ def test_find_tld_by_exact_match_with_dot
10
+ assert_equal 'au', TLD.find('.au').tld
11
+ end
12
+
13
+ def test_find_tld_with_case
14
+ assert_equal 'au', TLD.find('AU').tld
15
+ end
16
+
17
+ def test_find_tld_by_hostname
18
+ assert_equal 'au', TLD.find('foo.bar.au').tld
19
+ end
20
+
21
+ def test_find_tld_by_url
22
+ assert_equal 'au', TLD.find('http://foo.bar.au/baz').tld
23
+ end
24
+
25
+ def test_get_tld_currency
26
+ assert_equal 'AUD', TLD.find('au').currency
27
+ end
28
+
29
+ def test_get_mapped_tld_currency
30
+ assert_equal 'EUR', TLD.find('eu').currency
31
+ assert_equal 'GBP', TLD.find('uk').currency
32
+ end
33
+
34
+ def test_get_tld_name
35
+ assert_equal 'Australia', TLD.find('au').name
36
+ assert_equal 'Business', TLD.find('biz').name
37
+ end
38
+
39
+ def test_get_iso_alpha3_code
40
+ assert_equal 'AUS', TLD.find('au').alpha3
41
+ assert_equal 'GBR', TLD.find('uk').alpha3
42
+ end
43
+
44
+ def test_com_should_map_to_empty_currency_not_comoros
45
+ assert_equal [], TLD.find('com').currencies
46
+ assert_nil TLD.find('com').currency
47
+ end
48
+
49
+ def test_unknown_tld
50
+ assert_raises TLD::UnknownTldError do
51
+ TLD.find('foo')
52
+ end
53
+ end
54
+ end
data/tld.gemspec ADDED
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{tld}
5
+ s.version = "0.2.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Alex Rabarts"]
9
+ s.date = %q{2008-11-28}
10
+ s.description = %q{Provides meta information for Internet Top Level Domains (TLDs) such as a descriptive name, associated currency code and the TLD category.}
11
+ s.email = ["alexrabarts@gmail.com"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
13
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "lib/tld.rb", "lib/tld/alpha3.rb", "lib/tld/cc_tld.rb", "lib/tld/currency.rb", "lib/tld/generic_tld.rb", "lib/tld/infrastructure_tld.rb", "lib/tld/name.rb", "lib/tld/pseudo_tld.rb", "lib/tld/reserved_tld.rb", "lib/tld/retired_tld.rb", "lib/tld/sponsored_tld.rb", "lib/tld/tld.rb", "rakelib/cultivate.rake", "rakelib/tld.rake", "rakelib/tld.rb", "rakelib/tld.rb.erb", "test/test_tld.rb", "tld.gemspec"]
14
+ s.has_rdoc = true
15
+ s.rdoc_options = ["--main", "README.txt"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{tld}
18
+ s.rubygems_version = %q{1.3.1}
19
+ s.summary = %q{Provides meta information for Internet Top Level Domains (TLDs) such as a descriptive name, associated currency code and the TLD category.}
20
+ s.test_files = ["test/test_tld.rb"]
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 2
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ s.add_runtime_dependency(%q<alexrabarts-iso_country_codes>, [">= 0"])
28
+ s.add_development_dependency(%q<hoe>, [">= 1.8.2"])
29
+ else
30
+ s.add_dependency(%q<alexrabarts-iso_country_codes>, [">= 0"])
31
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
32
+ end
33
+ else
34
+ s.add_dependency(%q<alexrabarts-iso_country_codes>, [">= 0"])
35
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alexrabarts-tld
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Rabarts
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-11-28 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: alexrabarts-iso_country_codes
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: hoe
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.8.2
32
+ version:
33
+ description: Provides meta information for Internet Top Level Domains (TLDs) such as a descriptive name, associated currency code and the TLD category.
34
+ email:
35
+ - alexrabarts@gmail.com
36
+ executables: []
37
+
38
+ extensions: []
39
+
40
+ extra_rdoc_files:
41
+ - History.txt
42
+ - Manifest.txt
43
+ - README.txt
44
+ files:
45
+ - History.txt
46
+ - Manifest.txt
47
+ - README.txt
48
+ - Rakefile
49
+ - lib/tld.rb
50
+ - lib/tld/alpha3.rb
51
+ - lib/tld/cc_tld.rb
52
+ - lib/tld/currency.rb
53
+ - lib/tld/generic_tld.rb
54
+ - lib/tld/infrastructure_tld.rb
55
+ - lib/tld/name.rb
56
+ - lib/tld/pseudo_tld.rb
57
+ - lib/tld/reserved_tld.rb
58
+ - lib/tld/retired_tld.rb
59
+ - lib/tld/sponsored_tld.rb
60
+ - lib/tld/tld.rb
61
+ - rakelib/cultivate.rake
62
+ - rakelib/tld.rake
63
+ - rakelib/tld.rb
64
+ - rakelib/tld.rb.erb
65
+ - test/test_tld.rb
66
+ - tld.gemspec
67
+ has_rdoc: true
68
+ homepage:
69
+ post_install_message:
70
+ rdoc_options:
71
+ - --main
72
+ - README.txt
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ version:
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ requirements: []
88
+
89
+ rubyforge_project: tld
90
+ rubygems_version: 1.2.0
91
+ signing_key:
92
+ specification_version: 2
93
+ summary: Provides meta information for Internet Top Level Domains (TLDs) such as a descriptive name, associated currency code and the TLD category.
94
+ test_files:
95
+ - test/test_tld.rb