verify_urls 0.1.0 → 0.3.1

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
  SHA256:
3
- metadata.gz: 762598ccd9cd247e8829262437a63aeac8f1f521bde3780d79ea64dfde507ba3
4
- data.tar.gz: 8730ba76a753622d333a5a44c5df099e0d1e666bd64aa99050ec1480154f46e2
3
+ metadata.gz: 5c7376411c4de396195b42fd8fa6bc1d593d05032983332be4d0d9dbecb107d4
4
+ data.tar.gz: 7c3a0e5ee4513335a22061164a310e1683d56a8b05bc575a6d94077daf1b854f
5
5
  SHA512:
6
- metadata.gz: 68d964a2f4ee4a0a22c6632b9f1c2e0505022bea1a358cdaeee973d597dbdf713879314588b4f55cf4cc3458bb886afac15e3f2974a28cd7d0517f27c0b072a8
7
- data.tar.gz: 5586d03a3974974476f18c8469fd67e808d14246350102202e24530da85e885c87c239b2a682c0b35b7972fc110bf6e187115aa9e5226da858b1872016531bd3
6
+ metadata.gz: 652b18376f8bc022d25a46be6d5c9d5c34ed75eecea3eeed5d51c916fa829071fa235ed0de6d83942a6b6443635cb73b92239b4f072291b6f17ea1be4fedf25b
7
+ data.tar.gz: 72106313dc9e4bbddf4fd81f4f38cbd2805a8c103de0086ef0a94f2e99af30252d624914267ad4e56d0f2af273b341c455082ff9b4e3713dc7f330393ded8a61
data/README.md CHANGED
@@ -31,42 +31,6 @@ Usage: verify_urls --help
31
31
  -h, --help How to use
32
32
  ```
33
33
 
34
- __Ruby__
35
-
36
- Verify all URLs in `README.md`
37
-
38
- ```ruby
39
- reader = VerifyUrls::Reader.new('README.md')
40
- reader.urls.each do |url|
41
- response = VerifyUrls::Helper.GET(url)
42
- puts "Failed: #{url}" if response&.code != 200
43
- end
44
- ```
45
-
46
- Get all URLs in `README.md`:
47
-
48
- ```ruby
49
- require 'verify_urls'
50
-
51
- reader = VerifyUrls::Reader.new('README.md')
52
- reader.urls # => ["https://rubygems.org", "https://opensource.org/licenses/MIT"]
53
-
54
- # we will try to infer the file format from the file extension
55
- # you can explicitly provide it
56
- reader = VerifyUrls::Reader.new('README', 'markdown')
57
- reader.urls # => ["https://rubygems.org", "https://opensource.org/licenses/MIT"]
58
- ```
59
-
60
- HTML and CSV is also supported
61
-
62
- ```ruby
63
- reader = VerifyUrls::Reader.new('index.html') # get all anchor hrefs
64
- reader.urls # => ["https://example.com"]
65
-
66
- reader = VerifyUrls::Reader.new('output.csv') # assumes no header and URL to be in the first column
67
- reader.urls # => ["https://example.com"]
68
- ```
69
-
70
34
  ## Development
71
35
 
72
36
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/exe/verify_urls CHANGED
@@ -12,7 +12,7 @@ file_path = options.fetch(:file) { raise(ArgumentError, '--file is required') }
12
12
  file_format = options[:format]
13
13
 
14
14
  helper = VerifyUrls::Helper
15
- reader = VerifyUrls::Reader.new(file_path, file_format)
15
+ reader = UrlFinder.from_file(file_path, file_format)
16
16
  urls = reader.urls
17
17
 
18
18
  failed_urls = []
@@ -11,7 +11,7 @@ module VerifyUrls
11
11
  end
12
12
 
13
13
  def self.GET(url)
14
- HTTP.follow.get(url)
14
+ HTTP.follow.get(url)
15
15
  rescue HTTP::Error => _e
16
16
  end
17
17
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VerifyUrls
4
- VERSION = '0.1.0'.freeze
4
+ VERSION = '0.3.1'.freeze
5
5
  end
data/lib/verify_urls.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'url_finder'
3
4
  require 'verify_urls/version'
4
- require 'verify_urls/reader'
5
5
  require 'verify_urls/helper'
6
6
 
7
7
  module VerifyUrls
data/verify_urls.gemspec CHANGED
@@ -24,13 +24,11 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.add_dependency 'http', '~> 3.3'
28
- # TODO: Consider making kramdown & nokogiri optional
29
- spec.add_dependency 'kramdown', '~> 1.17'
30
- spec.add_dependency 'nokogiri', '~> 1.8'
27
+ spec.add_dependency 'http', '~> 5.0'
28
+ spec.add_dependency 'url_finder', '~> 0.2', '>= 0.2.1'
31
29
 
32
- spec.add_development_dependency 'bundler', '~> 1.16'
30
+ spec.add_development_dependency 'bundler', '~> 2.0'
33
31
  spec.add_development_dependency 'byebug'
34
- spec.add_development_dependency 'rake', '~> 10.0'
32
+ spec.add_development_dependency 'rake', '~> 13.0'
35
33
  spec.add_development_dependency 'rspec', '~> 3.0'
36
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verify_urls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Burenstam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-19 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -16,56 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.3'
19
+ version: '5.0'
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: '3.3'
26
+ version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: kramdown
28
+ name: url_finder
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.17'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.17'
41
- - !ruby/object:Gem::Dependency
42
- name: nokogiri
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
33
+ version: '0.2'
34
+ - - ">="
46
35
  - !ruby/object:Gem::Version
47
- version: '1.8'
36
+ version: 0.2.1
48
37
  type: :runtime
49
38
  prerelease: false
50
39
  version_requirements: !ruby/object:Gem::Requirement
51
40
  requirements:
52
41
  - - "~>"
53
42
  - !ruby/object:Gem::Version
54
- version: '1.8'
43
+ version: '0.2'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.2.1
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: bundler
57
49
  requirement: !ruby/object:Gem::Requirement
58
50
  requirements:
59
51
  - - "~>"
60
52
  - !ruby/object:Gem::Version
61
- version: '1.16'
53
+ version: '2.0'
62
54
  type: :development
63
55
  prerelease: false
64
56
  version_requirements: !ruby/object:Gem::Requirement
65
57
  requirements:
66
58
  - - "~>"
67
59
  - !ruby/object:Gem::Version
68
- version: '1.16'
60
+ version: '2.0'
69
61
  - !ruby/object:Gem::Dependency
70
62
  name: byebug
71
63
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +78,14 @@ dependencies:
86
78
  requirements:
87
79
  - - "~>"
88
80
  - !ruby/object:Gem::Version
89
- version: '10.0'
81
+ version: '13.0'
90
82
  type: :development
91
83
  prerelease: false
92
84
  version_requirements: !ruby/object:Gem::Requirement
93
85
  requirements:
94
86
  - - "~>"
95
87
  - !ruby/object:Gem::Version
96
- version: '10.0'
88
+ version: '13.0'
97
89
  - !ruby/object:Gem::Dependency
98
90
  name: rspec
99
91
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +123,6 @@ files:
131
123
  - lib/verify_urls.rb
132
124
  - lib/verify_urls/cli.rb
133
125
  - lib/verify_urls/helper.rb
134
- - lib/verify_urls/reader.rb
135
126
  - lib/verify_urls/version.rb
136
127
  - verify_urls.gemspec
137
128
  homepage: https://github.com/buren/verify_urls
@@ -153,8 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
144
  - !ruby/object:Gem::Version
154
145
  version: '0'
155
146
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.7.6
147
+ rubygems_version: 3.1.4
158
148
  signing_key:
159
149
  specification_version: 4
160
150
  summary: Verify URL(s)
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'csv'
4
- require 'http'
5
- require 'nokogiri'
6
- require 'kramdown'
7
-
8
- module VerifyUrls
9
- class Reader
10
- attr_reader :file, :file_path
11
-
12
- def initialize(file_path, file_format = nil)
13
- @file = File.read(file_path)
14
- @file_path = file_path
15
- @file_format = file_format
16
- end
17
-
18
- def urls
19
- case file_format.to_s.downcase
20
- when 'markdown', 'md' then markdown_urls(file)
21
- when 'html' then html_urls(file)
22
- when 'csv' then csv_urls(file)
23
- else
24
- raise(ArgumentError, "unknown format #{file_format}")
25
- end
26
- end
27
-
28
- def file_format
29
- @file_format || @file_path.split('.').last
30
- end
31
-
32
- private
33
-
34
- def csv_urls(file)
35
- CSV.parse(file).map(&:first).compact
36
- end
37
-
38
- def html_urls(file)
39
- document = Nokogiri::HTML(file)
40
- document.css('a').map { |e| e['href'] }.compact
41
- end
42
-
43
- def markdown_urls(file)
44
- html = Kramdown::Document.new(file).to_html
45
- html_urls(html)
46
- end
47
- end
48
- end