gman 7.0.0 → 7.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.github/CODEOWNERS +3 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  5. data/.github/config.yml +23 -0
  6. data/.github/funding.yml +1 -0
  7. data/.github/no-response.yml +15 -0
  8. data/.github/release-drafter.yml +4 -0
  9. data/.github/settings.yml +33 -0
  10. data/.github/stale.yml +29 -0
  11. data/.gitignore +1 -0
  12. data/.rspec +2 -0
  13. data/.rubocop.yml +14 -5
  14. data/.rubocop_todo.yml +84 -0
  15. data/.ruby-version +1 -1
  16. data/Gemfile +2 -0
  17. data/bin/gman +6 -4
  18. data/bin/gman_filter +5 -7
  19. data/config/domains.txt +8454 -168
  20. data/config/vendor/academic.txt +6 -7
  21. data/config/vendor/dotgovs.csv +5786 -5560
  22. data/docs/CODE_OF_CONDUCT.md +46 -0
  23. data/docs/CONTRIBUTING.md +92 -0
  24. data/{README.md → docs/README.md} +3 -3
  25. data/docs/SECURITY.md +3 -0
  26. data/docs/_config.yml +2 -0
  27. data/gman.gemspec +18 -17
  28. data/lib/gman.rb +4 -2
  29. data/lib/gman/country_codes.rb +17 -17
  30. data/lib/gman/domain_list.rb +25 -9
  31. data/lib/gman/identifier.rb +57 -19
  32. data/lib/gman/importer.rb +31 -21
  33. data/lib/gman/locality.rb +8 -6
  34. data/lib/gman/version.rb +3 -1
  35. data/script/add +2 -0
  36. data/script/alphabetize +2 -0
  37. data/script/cibuild +1 -1
  38. data/script/dedupe +2 -1
  39. data/script/profile +2 -1
  40. data/script/prune +5 -3
  41. data/script/reconcile-us +6 -3
  42. data/script/vendor-federal-de +2 -1
  43. data/script/vendor-municipal-de +2 -1
  44. data/script/vendor-nl +2 -0
  45. data/script/vendor-public-suffix +6 -4
  46. data/script/vendor-se +2 -1
  47. data/script/vendor-swot +3 -1
  48. data/script/vendor-us +5 -3
  49. data/spec/fixtures/domains.txt +4 -0
  50. data/{test → spec}/fixtures/obama.txt +0 -0
  51. data/spec/gman/bin_spec.rb +101 -0
  52. data/spec/gman/country_code_spec.rb +39 -0
  53. data/spec/gman/domain_list_spec.rb +110 -0
  54. data/spec/gman/domains_spec.rb +25 -0
  55. data/spec/gman/identifier_spec.rb +218 -0
  56. data/spec/gman/importer_spec.rb +236 -0
  57. data/spec/gman/locality_spec.rb +24 -0
  58. data/spec/gman_spec.rb +74 -0
  59. data/spec/spec_helper.rb +31 -0
  60. metadata +89 -81
  61. data/.rake_tasks +0 -0
  62. data/CONTRIBUTING.md +0 -22
  63. data/Rakefile +0 -22
  64. data/test/fixtures/domains.txt +0 -2
  65. data/test/helper.rb +0 -48
  66. data/test/test_gman.rb +0 -56
  67. data/test/test_gman_bin.rb +0 -75
  68. data/test/test_gman_country_codes.rb +0 -18
  69. data/test/test_gman_domain_list.rb +0 -112
  70. data/test/test_gman_domains.rb +0 -32
  71. data/test/test_gman_filter.rb +0 -17
  72. data/test/test_gman_identifier.rb +0 -106
  73. data/test/test_gman_importer.rb +0 -244
  74. data/test/test_gman_locality.rb +0 -10
@@ -0,0 +1,236 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Gman::Importer do
4
+ subject { described_class.new(domains) }
5
+
6
+ let(:domains) { { 'test' => ['example.com'] } }
7
+ let(:stdout) { StringIO.new }
8
+ let(:logger) { Logger.new(@stdout) }
9
+ let(:domain_list) { subject.domain_list }
10
+
11
+ before do
12
+ subject.instance_variable_set '@logger', logger
13
+ end
14
+
15
+ it 'inits the domain list' do
16
+ expect(domain_list).to be_a(Gman::DomainList)
17
+ expect(domain_list.count).to be(1)
18
+ expect(domain_list.domains.first).to eql('example.com')
19
+ end
20
+
21
+ it 'inits the logger' do
22
+ expect(subject.logger).to be_a(Logger)
23
+ end
24
+
25
+ it 'returns the current domain list' do
26
+ expect(subject.current).to be_a(Gman::DomainList)
27
+ end
28
+
29
+ it 'returns the resolver' do
30
+ expect(subject.resolver).to be_a(Resolv::DNS)
31
+ end
32
+
33
+ context 'domain rejection' do
34
+ it 'returns false' do
35
+ expect(subject.reject('example.com', 'reasons')).to be(false)
36
+ end
37
+
38
+ it 'returns the reason why asked' do
39
+ with_env 'RECONCILING', 'true' do
40
+ expect(subject.reject('example.com', 'reasons')).to eql('reasons')
41
+ end
42
+ end
43
+ end
44
+
45
+ context 'manipulating the domain list' do
46
+ context 'normalizing domains' do
47
+ let(:domains) { { 'test' => ['www.EXAMPLE.com/'] } }
48
+
49
+ before { subject.send :normalize_domains! }
50
+
51
+ it 'normalizes the domains' do
52
+ expect(domain_list.domains.first).to eql('example.com')
53
+ end
54
+ end
55
+
56
+ context 'removing invalid domains' do
57
+ let(:domains) { { 'test' => ['foo.github.io', 'example.com'] } }
58
+
59
+ before { subject.send :ensure_validity! }
60
+
61
+ it 'removes invalid domains' do
62
+ expect(domain_list.count).to be(1)
63
+ end
64
+ end
65
+ end
66
+
67
+ context 'with the current list stubbed' do
68
+ let(:stubbed_list) { Gman::DomainList.new(path: stubbed_list_path) }
69
+ let(:stubbed_file_contents) { File.read(stubbed_list_path) }
70
+
71
+ before { subject.instance_variable_set '@current', stubbed_list }
72
+
73
+ context 'writing' do
74
+ before { @current = subject.current.to_s }
75
+
76
+ before { subject.send :add_to_current }
77
+
78
+ after { File.write(stubbed_list_path, @current) }
79
+
80
+ context 'adding domains' do
81
+ let(:domains) do
82
+ { 'test' => ['example.com'], 'test2' => ['github.com'] }
83
+ end
84
+
85
+ it 'adds the domains' do
86
+ expected = "// test\nexample.com\n\n// test2\ngithub.com"
87
+ expect(stubbed_file_contents).to match(expected)
88
+ end
89
+ end
90
+
91
+ context 'importing' do
92
+ let(:domains) do
93
+ {
94
+ 'test' => ['www.example.com', 'foo.github.io'],
95
+ 'test2' => ['github.com', 'www.github.com', 'whitehouse.gov']
96
+ }
97
+ end
98
+
99
+ before { subject.import(skip_resolve: true) }
100
+
101
+ it 'imports' do
102
+ expected = "// test\nexample.com\nfoo.github.io"
103
+ expect(stubbed_file_contents).to match(expected)
104
+
105
+ expected = "// test2\ngithub.com\nwhitehouse.gov"
106
+ expect(stubbed_file_contents).to match(expected)
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ context 'domain validation' do
113
+ let(:domain) { '' }
114
+ let(:valid?) { subject.send(:ensure_valid, domain) }
115
+
116
+ context 'a valid domain' do
117
+ let(:domain) { 'whitehouse.gov' }
118
+
119
+ it 'is valid' do
120
+ expect(valid?).to be(true)
121
+ end
122
+ end
123
+
124
+ {
125
+ empty: '',
126
+ blacklisted: 'egovlink.com',
127
+ invalid: 'foo.invalid',
128
+ academic: 'harvard.edu',
129
+ "rejex'd": 'foo.github.io'
130
+ }.each_key do |type|
131
+ context "a #{type} domain" do
132
+ it 'is invalid' do
133
+ expect(valid?).to be(false)
134
+ end
135
+ end
136
+ end
137
+ end
138
+
139
+ context 'duplicate domains' do
140
+ let(:dupe?) { subject.send(:dupe?, domain) }
141
+ let(:ensure_not_dupe) { subject.send(:ensure_not_dupe, domain) }
142
+
143
+ context 'a unique domain' do
144
+ let(:domain) { 'gman.com' }
145
+
146
+ it 'is not a dupe' do
147
+ expect(dupe?).to be_falsy
148
+ expect(ensure_not_dupe).to be_truthy
149
+ end
150
+ end
151
+
152
+ context 'a duplicate domain' do
153
+ let(:domain) { 'gov' }
154
+
155
+ it "knows it's a dupe" do
156
+ expect(dupe?).to be_truthy
157
+ expect(ensure_not_dupe).to be_falsy
158
+ end
159
+
160
+ context 'a subdomain' do
161
+ let(:domain) { 'whitehouse.gov' }
162
+
163
+ it "know when a domain's a subdomain of an existing domain" do
164
+ expect(dupe?).to be_truthy
165
+ expect(ensure_not_dupe).to be_falsy
166
+ end
167
+ end
168
+ end
169
+ end
170
+
171
+ context 'domain resolution' do
172
+ let(:resolves?) { subject.domain_resolves?(domain) }
173
+ let(:ensure_resolves) { subject.send(:ensure_resolves, domain) }
174
+
175
+ context 'a valid domain' do
176
+ let(:domain) { 'github.com' }
177
+
178
+ it 'resolves' do
179
+ expect(resolves?).to be_truthy
180
+ expect(ensure_resolves).to be_truthy
181
+ end
182
+ end
183
+
184
+ context 'an invalid domain' do
185
+ let(:domain) { 'foo.invalid' }
186
+
187
+ it "doesn't resolve" do
188
+ expect(resolves?).to be_falsy
189
+ expect(ensure_resolves).to be_falsy
190
+ end
191
+ end
192
+ end
193
+
194
+ context 'regex checks' do
195
+ let(:ensure_regex) { subject.send(:ensure_regex, domain) }
196
+
197
+ context 'valid domains' do
198
+ let(:domain) { 'example.com' }
199
+
200
+ it 'passes' do
201
+ expect(ensure_regex).to be_truthy
202
+ end
203
+ end
204
+
205
+ [
206
+ 'home.example.com', 'site.example.com', 'user.example.com',
207
+ 'foo.weebly.com', 'foo.wordpress.com', 'foo.govoffice.com',
208
+ 'foo.govoffice1.com', 'foo.homestead.com', 'foo.wix.com',
209
+ 'foo.blogspot.com', 'foo.tripod.com', 'foo.squarespace.com',
210
+ 'foo.github.io', 'ci.champaign.il.us'
211
+ ].each do |domain|
212
+ context "a #{domain} domain" do
213
+ let(:domain) { domain }
214
+
215
+ it 'rejects the domain' do
216
+ expect(ensure_regex).to be_falsy
217
+ end
218
+ end
219
+ end
220
+ end
221
+
222
+ context 'normalizing domains' do
223
+ let(:normalized_domain) { subject.normalize_domain(domain) }
224
+
225
+ [
226
+ 'http://example.com', 'www.example.com', 'example.com/',
227
+ 'example.com/foo', 'example.com/foo/', 'EXAMPLE.com'
228
+ ].each do |domain|
229
+ let(:domain) { domain }
230
+
231
+ it 'normalizes the domain' do
232
+ expect(normalized_domain).to eql('example.com')
233
+ end
234
+ end
235
+ end
236
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Gman::Locality do
4
+ context 'valid domains' do
5
+ ['foo.state.il.us', 'ci.foo.il.us'].each do |domain|
6
+ context "the #{domain} domain" do
7
+ it 'is valid' do
8
+ expect(described_class.valid?(domain)).to be(true)
9
+ end
10
+ end
11
+ end
12
+ end
13
+
14
+ context 'invalid domains' do
15
+ ['state.foo.il.us', 'foo.ci.il.us',
16
+ 'k12.il.us', 'ci.foo.zx.us'].each do |domain|
17
+ context "the #{domain} domain" do
18
+ it 'is invalid' do
19
+ expect(described_class.valid?(domain)).to be(false)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Gman do
4
+ context 'valid domains' do
5
+ ['foo.gov', 'http://foo.mil', 'foo@bar.gc.ca', 'foo.gov.au',
6
+ 'https://www.foo.gouv.fr', 'foo@ci.champaign.il.us',
7
+ 'foo.bar.baz.gov.au', 'foo@bar.gov.uk', 'foo.gov',
8
+ 'foo.fed.us', 'foo.state.il.us', 'state.il.us',
9
+ 'foo@af.mil', 'foo.gov.in'].each do |domain|
10
+ subject { described_class.new(domain) }
11
+
12
+ it "knows #{domain.inspect} is valid government domain" do
13
+ expect(described_class.valid?(domain)).to be(true)
14
+ expect(subject.valid?).to be(true)
15
+ end
16
+ end
17
+ end
18
+
19
+ context 'invalid domains' do
20
+ ['foo.bar.com', 'bar@foo.biz', 'http://www.foo.biz',
21
+ 'foo.uk', 'gov', 'foo@k12.champaign.il.us', 'foo@kii.gov.by',
22
+ 'foo', '', nil, ' ', 'foo.city.il.us', 'foo.ci.il.us',
23
+ 'foo.zx.us', 'foo@mail.gov.ua', 'foo@gwu.edu'].each do |domain|
24
+ subject { described_class.new(domain) }
25
+
26
+ it "knows #{domain.inspect} is not a valid government domain" do
27
+ expect(described_class.valid?(domain)).to be(false)
28
+ expect(subject.valid?).to be(false)
29
+ end
30
+ end
31
+ end
32
+
33
+ context 'localities' do
34
+ subject { described_class.new(domain) }
35
+
36
+ context 'when given github.gov' do
37
+ let(:domain) { 'github.gov' }
38
+
39
+ it "knows it's not a locality" do
40
+ expect(subject.locality?).to be(false)
41
+ end
42
+ end
43
+
44
+ context 'when given foo.state.il.us' do
45
+ let(:domain) { 'foo.state.il.us' }
46
+
47
+ it "knows it's a locality" do
48
+ expect(subject.locality?).to be(true)
49
+ end
50
+ end
51
+ end
52
+
53
+ context 'class methods' do
54
+ it 'returns the domain list' do
55
+ expect(described_class.list).to be_a(Gman::DomainList)
56
+ end
57
+
58
+ it 'returns the academic list' do
59
+ expect(described_class.academic_list).to be_a(Gman::DomainList)
60
+ end
61
+
62
+ it 'returns the config path' do
63
+ expect(Dir.exist?(described_class.config_path)).to be(true)
64
+ end
65
+
66
+ it 'returns the list path' do
67
+ expect(File.exist?(described_class.list_path)).to be(true)
68
+ end
69
+
70
+ it 'returns the academic list path' do
71
+ expect(File.exist?(described_class.academic_list_path)).to be(true)
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'parallel'
4
+ require 'open3'
5
+
6
+ RSpec.configure do |config|
7
+ config.example_status_persistence_file_path = 'spec/examples.txt'
8
+ config.disable_monkey_patching!
9
+ config.default_formatter = 'doc' if config.files_to_run.one?
10
+ config.order = :random
11
+ Kernel.srand config.seed
12
+ end
13
+
14
+ require_relative '../lib/gman'
15
+ require_relative '../lib/gman/domain_list'
16
+ require_relative '../lib/gman/importer'
17
+
18
+ def fixture_path(fixture)
19
+ File.expand_path "./fixtures/#{fixture}", File.dirname(__FILE__)
20
+ end
21
+
22
+ def stubbed_list_path
23
+ File.expand_path './fixtures/domains.txt', File.dirname(__FILE__)
24
+ end
25
+
26
+ def with_env(key, value)
27
+ old_env = ENV[key]
28
+ ENV[key] = value
29
+ yield
30
+ ENV[key] = old_env
31
+ end
metadata CHANGED
@@ -1,183 +1,183 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gman
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-23 00:00:00.000000000 Z
11
+ date: 2020-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: iso_country_codes
14
+ name: colored
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.6'
19
+ version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.6'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: naughty_or_nice
28
+ name: iso_country_codes
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
33
+ version: '0.6'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '0.6'
41
41
  - !ruby/object:Gem::Dependency
42
- name: colored
42
+ name: naughty_or_nice
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.2'
47
+ version: 2.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.2'
54
+ version: 2.1.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: swot
56
+ name: public_suffix
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :development
61
+ version: '3.0'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: addressable
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.4'
75
+ version: '2.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.4'
82
+ version: '2.3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: shoulda
84
+ name: mechanize
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.5'
89
+ version: '2.7'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.5'
96
+ version: '2.7'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rdoc
98
+ name: parallel
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '4.2'
103
+ version: '1.6'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '4.2'
110
+ version: '1.6'
111
111
  - !ruby/object:Gem::Dependency
112
- name: bundler
112
+ name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.10'
117
+ version: '0.10'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.10'
124
+ version: '0.10'
125
125
  - !ruby/object:Gem::Dependency
126
- name: pry
126
+ name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0.10'
131
+ version: '3.5'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0.10'
138
+ version: '3.5'
139
139
  - !ruby/object:Gem::Dependency
140
- name: parallel
140
+ name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '1.6'
145
+ version: '1.0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '1.6'
152
+ version: '1.0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: mechanize
154
+ name: rubocop-performance
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '2.7'
159
+ version: '1.5'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '2.7'
166
+ version: '1.5'
167
167
  - !ruby/object:Gem::Dependency
168
- name: addressable
168
+ name: rubocop-rspec
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '2.3'
173
+ version: '2.0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '2.3'
180
+ version: '2.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: ruby-prof
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -193,19 +193,19 @@ dependencies:
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0.15'
195
195
  - !ruby/object:Gem::Dependency
196
- name: rubocop
196
+ name: swot
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '0.37'
201
+ version: '1.0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '0.37'
208
+ version: '1.0'
209
209
  description: |2
210
210
  A ruby gem to check if the owner of a given email address is working for
211
211
  THE MAN.
@@ -216,21 +216,33 @@ executables:
216
216
  extensions: []
217
217
  extra_rdoc_files: []
218
218
  files:
219
+ - ".github/CODEOWNERS"
220
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
221
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
222
+ - ".github/config.yml"
223
+ - ".github/funding.yml"
224
+ - ".github/no-response.yml"
225
+ - ".github/release-drafter.yml"
226
+ - ".github/settings.yml"
227
+ - ".github/stale.yml"
219
228
  - ".gitignore"
220
- - ".rake_tasks"
229
+ - ".rspec"
221
230
  - ".rubocop.yml"
231
+ - ".rubocop_todo.yml"
222
232
  - ".ruby-version"
223
233
  - ".travis.yml"
224
- - CONTRIBUTING.md
225
234
  - Gemfile
226
235
  - LICENSE
227
- - README.md
228
- - Rakefile
229
236
  - bin/gman
230
237
  - bin/gman_filter
231
238
  - config/domains.txt
232
239
  - config/vendor/academic.txt
233
240
  - config/vendor/dotgovs.csv
241
+ - docs/CODE_OF_CONDUCT.md
242
+ - docs/CONTRIBUTING.md
243
+ - docs/README.md
244
+ - docs/SECURITY.md
245
+ - docs/_config.yml
234
246
  - gman.gemspec
235
247
  - lib/gman.rb
236
248
  - lib/gman/country_codes.rb
@@ -258,23 +270,22 @@ files:
258
270
  - script/vendor-se
259
271
  - script/vendor-swot
260
272
  - script/vendor-us
261
- - test/fixtures/domains.txt
262
- - test/fixtures/obama.txt
263
- - test/helper.rb
264
- - test/test_gman.rb
265
- - test/test_gman_bin.rb
266
- - test/test_gman_country_codes.rb
267
- - test/test_gman_domain_list.rb
268
- - test/test_gman_domains.rb
269
- - test/test_gman_filter.rb
270
- - test/test_gman_identifier.rb
271
- - test/test_gman_importer.rb
272
- - test/test_gman_locality.rb
273
+ - spec/fixtures/domains.txt
274
+ - spec/fixtures/obama.txt
275
+ - spec/gman/bin_spec.rb
276
+ - spec/gman/country_code_spec.rb
277
+ - spec/gman/domain_list_spec.rb
278
+ - spec/gman/domains_spec.rb
279
+ - spec/gman/identifier_spec.rb
280
+ - spec/gman/importer_spec.rb
281
+ - spec/gman/locality_spec.rb
282
+ - spec/gman_spec.rb
283
+ - spec/spec_helper.rb
273
284
  homepage: https://github.com/benbalter/gman
274
285
  licenses:
275
286
  - MIT
276
287
  metadata: {}
277
- post_install_message:
288
+ post_install_message:
278
289
  rdoc_options: []
279
290
  require_paths:
280
291
  - lib
@@ -282,29 +293,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
282
293
  requirements:
283
294
  - - "~>"
284
295
  - !ruby/object:Gem::Version
285
- version: '2.0'
296
+ version: '2.5'
286
297
  required_rubygems_version: !ruby/object:Gem::Requirement
287
298
  requirements:
288
299
  - - ">="
289
300
  - !ruby/object:Gem::Version
290
301
  version: '0'
291
302
  requirements: []
292
- rubyforge_project:
293
- rubygems_version: 2.6.2
294
- signing_key:
303
+ rubygems_version: 3.0.3
304
+ signing_key:
295
305
  specification_version: 4
296
306
  summary: Check if a given domain or email address belong to a governemnt entity
297
307
  test_files:
298
- - test/fixtures/domains.txt
299
- - test/fixtures/obama.txt
300
- - test/helper.rb
301
- - test/test_gman.rb
302
- - test/test_gman_bin.rb
303
- - test/test_gman_country_codes.rb
304
- - test/test_gman_domain_list.rb
305
- - test/test_gman_domains.rb
306
- - test/test_gman_filter.rb
307
- - test/test_gman_identifier.rb
308
- - test/test_gman_importer.rb
309
- - test/test_gman_locality.rb
310
- has_rdoc:
308
+ - spec/fixtures/domains.txt
309
+ - spec/fixtures/obama.txt
310
+ - spec/gman/bin_spec.rb
311
+ - spec/gman/country_code_spec.rb
312
+ - spec/gman/domain_list_spec.rb
313
+ - spec/gman/domains_spec.rb
314
+ - spec/gman/identifier_spec.rb
315
+ - spec/gman/importer_spec.rb
316
+ - spec/gman/locality_spec.rb
317
+ - spec/gman_spec.rb
318
+ - spec/spec_helper.rb