gman 7.0.1 → 7.0.2

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.
@@ -0,0 +1,29 @@
1
+ require 'parallel'
2
+ require 'open3'
3
+
4
+ RSpec.configure do |config|
5
+ config.example_status_persistence_file_path = 'spec/examples.txt'
6
+ config.disable_monkey_patching!
7
+ config.default_formatter = 'doc' if config.files_to_run.one?
8
+ config.order = :random
9
+ Kernel.srand config.seed
10
+ end
11
+
12
+ require_relative '../lib/gman'
13
+ require_relative '../lib/gman/domain_list'
14
+ require_relative '../lib/gman/importer'
15
+
16
+ def fixture_path(fixture)
17
+ File.expand_path "./fixtures/#{fixture}", File.dirname(__FILE__)
18
+ end
19
+
20
+ def stubbed_list_path
21
+ File.expand_path './fixtures/domains.txt', File.dirname(__FILE__)
22
+ end
23
+
24
+ def with_env(key, value)
25
+ old_env = ENV[key]
26
+ ENV[key] = value
27
+ yield
28
+ ENV[key] = old_env
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gman
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1
4
+ version: 7.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
11
+ date: 2017-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iso_country_codes
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: naughty_or_nice
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
33
+ version: '2.1'
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: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: colored
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,75 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: swot
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '10.4'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '10.4'
83
- - !ruby/object:Gem::Dependency
84
- name: shoulda
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '3.5'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '3.5'
97
- - !ruby/object:Gem::Dependency
98
- name: rdoc
56
+ name: public_suffix
99
57
  requirement: !ruby/object:Gem::Requirement
100
58
  requirements:
101
59
  - - "~>"
102
60
  - !ruby/object:Gem::Version
103
- version: '4.2'
104
- type: :development
61
+ version: '2.0'
62
+ type: :runtime
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
66
  - - "~>"
109
67
  - !ruby/object:Gem::Version
110
- version: '4.2'
68
+ version: '2.0'
111
69
  - !ruby/object:Gem::Dependency
112
- name: bundler
70
+ name: swot
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
73
  - - "~>"
116
74
  - !ruby/object:Gem::Version
117
- version: '1.10'
75
+ version: '1.0'
118
76
  type: :development
119
77
  prerelease: false
120
78
  version_requirements: !ruby/object:Gem::Requirement
121
79
  requirements:
122
80
  - - "~>"
123
81
  - !ruby/object:Gem::Version
124
- version: '1.10'
82
+ version: '1.0'
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: pry
127
85
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +164,20 @@ dependencies:
206
164
  - - "~>"
207
165
  - !ruby/object:Gem::Version
208
166
  version: '0.37'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.5'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3.5'
209
181
  description: |2
210
182
  A ruby gem to check if the owner of a given email address is working for
211
183
  THE MAN.
@@ -217,7 +189,7 @@ extensions: []
217
189
  extra_rdoc_files: []
218
190
  files:
219
191
  - ".gitignore"
220
- - ".rake_tasks"
192
+ - ".rspec"
221
193
  - ".rubocop.yml"
222
194
  - ".ruby-version"
223
195
  - ".travis.yml"
@@ -225,12 +197,12 @@ files:
225
197
  - Gemfile
226
198
  - LICENSE
227
199
  - README.md
228
- - Rakefile
229
200
  - bin/gman
230
201
  - bin/gman_filter
231
202
  - config/domains.txt
232
203
  - config/vendor/academic.txt
233
204
  - config/vendor/dotgovs.csv
205
+ - contributing.json
234
206
  - gman.gemspec
235
207
  - lib/gman.rb
236
208
  - lib/gman/country_codes.rb
@@ -258,18 +230,17 @@ files:
258
230
  - script/vendor-se
259
231
  - script/vendor-swot
260
232
  - 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
233
+ - spec/fixtures/domains.txt
234
+ - spec/fixtures/obama.txt
235
+ - spec/gman/bin_spec.rb
236
+ - spec/gman/country_code_spec.rb
237
+ - spec/gman/domain_list_spec.rb
238
+ - spec/gman/domains_spec.rb
239
+ - spec/gman/identifier_spec.rb
240
+ - spec/gman/importer_spec.rb
241
+ - spec/gman/locality_spec.rb
242
+ - spec/gman_spec.rb
243
+ - spec/spec_helper.rb
273
244
  homepage: https://github.com/benbalter/gman
274
245
  licenses:
275
246
  - MIT
@@ -290,21 +261,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
261
  version: '0'
291
262
  requirements: []
292
263
  rubyforge_project:
293
- rubygems_version: 2.6.2
264
+ rubygems_version: 2.5.1
294
265
  signing_key:
295
266
  specification_version: 4
296
267
  summary: Check if a given domain or email address belong to a governemnt entity
297
268
  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:
269
+ - spec/fixtures/domains.txt
270
+ - spec/fixtures/obama.txt
271
+ - spec/gman/bin_spec.rb
272
+ - spec/gman/country_code_spec.rb
273
+ - spec/gman/domain_list_spec.rb
274
+ - spec/gman/domains_spec.rb
275
+ - spec/gman/identifier_spec.rb
276
+ - spec/gman/importer_spec.rb
277
+ - spec/gman/locality_spec.rb
278
+ - spec/gman_spec.rb
279
+ - spec/spec_helper.rb
File without changes
data/Rakefile DELETED
@@ -1,22 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts 'Run `bundle install` to install missing gems'
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'rake/testtask'
13
- Rake::TestTask.new(:test) do |test|
14
- test.libs << 'lib' << 'test'
15
- test.pattern = 'test/**/test_gman*.rb'
16
- test.verbose = true
17
- end
18
-
19
- desc 'Open console with gman loaded'
20
- task :console do
21
- exec 'irb -r ./lib/gman.rb'
22
- end
@@ -1,2 +0,0 @@
1
- // test
2
- gov
@@ -1,48 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- require 'minitest/autorun'
4
- require 'parallel'
5
- require 'open3'
6
-
7
- begin
8
- Bundler.setup(:default, :development)
9
- rescue Bundler::BundlerError => e
10
- $stderr.puts e.message
11
- $stderr.puts 'Run `bundle install` to install missing gems'
12
- exit e.status_code
13
- end
14
-
15
- require 'shoulda'
16
-
17
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
18
- $LOAD_PATH.unshift(File.dirname(__FILE__))
19
- require_relative '../lib/gman'
20
- require_relative '../lib/gman/domain_list'
21
- require_relative '../lib/gman/importer'
22
-
23
- def bin_path(cmd = 'gman')
24
- File.expand_path "../bin/#{cmd}", File.dirname(__FILE__)
25
- end
26
-
27
- def test_bin(*args)
28
- Open3.capture2e('bundle', 'exec', bin_path, *args)
29
- end
30
-
31
- def fixture_path(fixture)
32
- File.expand_path "./fixtures/#{fixture}", File.dirname(__FILE__)
33
- end
34
-
35
- def with_env(key, value)
36
- old_env = ENV[key]
37
- ENV[key] = value
38
- yield
39
- ENV[key] = old_env
40
- end
41
-
42
- def stubbed_list_path
43
- File.expand_path './fixtures/domains.txt', File.dirname(__FILE__)
44
- end
45
-
46
- def stubbed_list
47
- Gman::DomainList.new(path: stubbed_list_path)
48
- end
@@ -1,56 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'helper')
2
-
3
- VALID = ['foo.gov',
4
- 'http://foo.mil',
5
- 'foo@bar.gc.ca',
6
- 'foo.gov.au',
7
- 'https://www.foo.gouv.fr',
8
- 'foo@ci.champaign.il.us',
9
- 'foo.bar.baz.gov.au',
10
- 'foo@bar.gov.uk',
11
- 'foo.gov',
12
- 'foo.fed.us',
13
- 'foo.state.il.us',
14
- 'state.il.us',
15
- 'foo@af.mil',
16
- 'foo.gov.in'
17
- ].freeze
18
-
19
- INVALID = ['foo.bar.com',
20
- 'bar@foo.biz',
21
- 'http://www.foo.biz',
22
- 'foo.uk',
23
- 'gov',
24
- 'foo@k12.champaign.il.us',
25
- 'foo@kii.gov.by',
26
- 'foo',
27
- '',
28
- nil,
29
- ' ',
30
- 'foo.city.il.us',
31
- 'foo.ci.il.us',
32
- 'foo.zx.us',
33
- 'foo@mail.gov.ua'
34
- ].freeze
35
-
36
- class TestGman < Minitest::Test
37
- VALID.each do |domain|
38
- should "recognize #{domain} as a government domain" do
39
- assert Gman.valid?(domain)
40
- end
41
- end
42
-
43
- INVALID.each do |domain|
44
- should "recognize #{domain} as a non-government domain" do
45
- refute Gman.valid?(domain)
46
- end
47
- end
48
-
49
- should 'not allow educational domains' do
50
- assert_equal false, Gman.valid?('foo@gwu.edu')
51
- end
52
-
53
- should 'returns the path to domains.txt' do
54
- assert_equal true, File.exist?(Gman.list_path)
55
- end
56
- end
@@ -1,75 +0,0 @@
1
- require_relative 'helper'
2
-
3
- class TestGmanBin < Minitest::Test
4
- def setup
5
- @output, @status = test_bin('whitehouse.gov')
6
- end
7
-
8
- should 'parse the domain' do
9
- output, = test_bin('bar.gov')
10
- assert_match(/Domain : bar.gov/, output)
11
-
12
- output, = test_bin('foo@bar.gov')
13
- assert_match(/Domain : bar.gov/, output)
14
-
15
- output, = test_bin('http://bar.gov/foo')
16
- assert_match(/Domain : bar.gov/, output)
17
- end
18
-
19
- should 'err on invalid domains' do
20
- output, status = test_bin('foo.invalid')
21
- assert_equal 1, status.exitstatus
22
- assert_match(/Invalid domain/, output)
23
- end
24
-
25
- should 'err on non-government domains' do
26
- output, status = test_bin('github.com')
27
- assert_equal 1, status.exitstatus
28
- assert_match(/Not a government domain/, output)
29
- end
30
-
31
- should 'know the type' do
32
- assert_match(/federal/, @output)
33
- assert_equal 0, @status.exitstatus
34
- end
35
-
36
- should 'know the agency' do
37
- assert_match(/Executive Office of the President/, @output)
38
- assert_equal 0, @status.exitstatus
39
- end
40
-
41
- should 'know the country' do
42
- assert_match(/United States/, @output)
43
- assert_equal 0, @status.exitstatus
44
- end
45
-
46
- should 'know the city' do
47
- assert_match(/Washington/, @output)
48
- assert_equal 0, @status.exitstatus
49
- end
50
-
51
- should 'know the state' do
52
- assert_match(/DC/, @output)
53
- assert_equal 0, @status.exitstatus
54
- end
55
-
56
- should 'allow you to disable colorization' do
57
- output, = test_bin('whitehouse.gov', '--no-color')
58
- refute_match(/\e\[32m/, output)
59
- end
60
-
61
- should 'color by default' do
62
- assert_match(/\e\[32m/, @output)
63
- end
64
-
65
- should 'show help text' do
66
- output, = test_bin
67
- assert_match(/Usage/i, output)
68
-
69
- output, = test_bin('')
70
- assert_match(/Usage/i, output)
71
-
72
- output, = test_bin('--no-color')
73
- assert_match(/Usage/i, output)
74
- end
75
- end