verify_urls 0.1.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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