url-checker 1.1.1 → 1.1.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.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/config/environment.rb +1 -0
- data/lib/url_checker/cli.rb +8 -8
- data/lib/url_checker/rescued_response.rb +1 -1
- data/lib/url_checker/single_checker.rb +4 -2
- data/lib/url_checker/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dee2307b6ba536e8d6746743fd93fd4a493f83d
|
4
|
+
data.tar.gz: f1e7aaa8199849dbb915e87ba17568390a2d5ac2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c71406d935de3fa0f8accec18e37de3ce76588a287cf63c2c7bbba29921f8bc55b0ee8bcf0ca8648400645015575117c82ba776797265029eae02075e235fab1
|
7
|
+
data.tar.gz: dd7c89e550ae86e0493795c7868c3844f389f947ef53b8986722af0e222ca5026b8639ffd0304cab80b298b5d87a8f4757253163bbfbe7e8a799cc7726c7dcb0
|
data/README.md
CHANGED
@@ -2,7 +2,12 @@
|
|
2
2
|
|
3
3
|
# URL Checker
|
4
4
|
|
5
|
-
A Ruby CLI for checking a list of URLs from a CSV file. Checkout the [RubGems page](https://rubygems.org/gems/url-checker).
|
5
|
+
A Ruby CLI for checking a list of URLs from a CSV file. Checkout the [RubGems page](https://rubygems.org/gems/url-checker).
|
6
|
+
|
7
|
+
## Requirements
|
8
|
+
|
9
|
+
- >= Ruby 2.4.0
|
10
|
+
- Internet connection
|
6
11
|
|
7
12
|
## Getting started
|
8
13
|
|
data/config/environment.rb
CHANGED
data/lib/url_checker/cli.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module UrlChecker
|
4
4
|
# The main class
|
5
5
|
class Cli
|
6
|
-
BAD_CALL_MSG =
|
6
|
+
BAD_CALL_MSG = "Please call with one CSV file with URLs in the first column\n"
|
7
7
|
RESULTS_HEADERS = %w(Response URL).freeze
|
8
8
|
|
9
9
|
attr_reader :file_path, :results_file_path
|
@@ -23,7 +23,7 @@ module UrlChecker
|
|
23
23
|
if ARGV.length == 1 && ARGV.first.match?(/\.csv\z/)
|
24
24
|
url_checker = new(file_path: ARGV.first).call
|
25
25
|
else
|
26
|
-
|
26
|
+
print BAD_CALL_MSG.red
|
27
27
|
end
|
28
28
|
url_checker
|
29
29
|
end
|
@@ -53,26 +53,26 @@ module UrlChecker
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def display_result(response)
|
56
|
-
msg = " #{response.code} #{response.message} #{response.uri.to_s}"
|
56
|
+
msg = " #{response.code} #{response.message} #{response.uri.to_s}\n"
|
57
57
|
case response
|
58
58
|
when Net::HTTPSuccess, Net::HTTPRedirection
|
59
|
-
|
59
|
+
print msg.green
|
60
60
|
else
|
61
61
|
@num_issues += 1
|
62
|
-
|
62
|
+
print msg.red
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
66
|
def display_summary(run_time)
|
67
67
|
num_checked = results.length - 1
|
68
|
-
msg = " #{num_checked} URLs checked with #{num_issues} issue(s) in #{run_time.round 2} s
|
69
|
-
num_issues.positive? ?
|
68
|
+
msg = " #{num_checked} URLs checked with #{num_issues} issue(s) in #{run_time.round 2} s.\n"
|
69
|
+
num_issues.positive? ? print(msg.yellow) : print(msg.green)
|
70
70
|
end
|
71
71
|
|
72
72
|
def write_results
|
73
73
|
time = Time.now.strftime('%Y-%m-%d-%H:%M:%S')
|
74
74
|
@results_file_path = file_path.gsub('.csv', "_results_#{time}.csv")
|
75
|
-
|
75
|
+
print " Results saved to #{results_file_path}\n"
|
76
76
|
CSV.open(results_file_path, 'wb') do |csv|
|
77
77
|
results.each { |r| csv << r }
|
78
78
|
end
|
@@ -6,7 +6,7 @@ module UrlChecker
|
|
6
6
|
attr_reader :code, :message, :uri
|
7
7
|
|
8
8
|
def initialize(code:, message:, uri:)
|
9
|
-
raise TypeError, 'uri is not a URI' unless uri.is_a? URI
|
9
|
+
raise TypeError, 'uri is not a URI' unless uri.is_a? Addressable::URI
|
10
10
|
@code = code
|
11
11
|
@message = message
|
12
12
|
@uri = uri
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module UrlChecker
|
4
4
|
# Checks a single URL and returns the result
|
5
5
|
class SingleChecker
|
6
|
+
SCHEMES = %w[http https]
|
7
|
+
|
6
8
|
attr_reader :url_string, :uri
|
7
9
|
|
8
10
|
def initialize(url:)
|
@@ -16,7 +18,7 @@ module UrlChecker
|
|
16
18
|
private
|
17
19
|
|
18
20
|
def check_url
|
19
|
-
@uri = URI
|
21
|
+
@uri = Addressable::URI.parse url_string
|
20
22
|
return invalid_uri_response unless valid_url?
|
21
23
|
response = Net::HTTP.get_response uri
|
22
24
|
response.uri ||= uri # sometimes the uri is not set
|
@@ -42,7 +44,7 @@ module UrlChecker
|
|
42
44
|
end
|
43
45
|
|
44
46
|
def valid_url?
|
45
|
-
|
47
|
+
SCHEMES.include? uri.scheme
|
46
48
|
end
|
47
49
|
end
|
48
50
|
end
|
data/lib/url_checker/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: url-checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McCormack
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-18 00:00:00.000000000 Z
|
12
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: 2.5.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.5.1
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: colorize
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
73
|
version: '0'
|
60
74
|
requirements: []
|
61
75
|
rubyforge_project:
|
62
|
-
rubygems_version: 2.6.
|
76
|
+
rubygems_version: 2.6.11
|
63
77
|
signing_key:
|
64
78
|
specification_version: 4
|
65
79
|
summary: Check URLs from a CSV
|