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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0632f7dabaca6ed8aa3c782c61cbe8d87f6ecc95
4
- data.tar.gz: 1be4e28649cc6a82e9483ead7463f7f042f1228f
3
+ metadata.gz: 1dee2307b6ba536e8d6746743fd93fd4a493f83d
4
+ data.tar.gz: f1e7aaa8199849dbb915e87ba17568390a2d5ac2
5
5
  SHA512:
6
- metadata.gz: 99493f569a2ae7169eff80252b78117b0cefed6763469774eb15952ddad5cc04e67c9f1fa441dd63271cf626c34419ae4961733c9a2af392cb74287fe5aa8046
7
- data.tar.gz: cf78ca7928e6e9c471d048e69070632ce7009291e3d4f0b013ca976df4bae0080a2c369f9e55c899c3f84a6db890cf29b02e638c7778c1dabcf477510c1b20ef
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
 
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "addressable/uri"
3
4
  require 'benchmark'
4
5
  require 'colorize'
5
6
  require 'csv'
@@ -3,7 +3,7 @@
3
3
  module UrlChecker
4
4
  # The main class
5
5
  class Cli
6
- BAD_CALL_MSG = 'Please call with one CSV file with URLs in the first column'
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
- puts BAD_CALL_MSG.red
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
- puts msg.green
59
+ print msg.green
60
60
  else
61
61
  @num_issues += 1
62
- puts msg.red
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? ? puts(msg.yellow) : puts(msg.green)
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
- puts " Results saved to #{results_file_path}"
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(url_string)
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
- uri.kind_of?(URI::HTTP) || uri.kind_of?(URI::HTTPS)
47
+ SCHEMES.include? uri.scheme
46
48
  end
47
49
  end
48
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UrlChecker
4
- VERSION = '1.1.1'
4
+ VERSION = '1.1.2'
5
5
  end
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.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-03-16 00:00:00.000000000 Z
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.10
76
+ rubygems_version: 2.6.11
63
77
  signing_key:
64
78
  specification_version: 4
65
79
  summary: Check URLs from a CSV