verify_urls 0.1.0 → 0.2.0

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: 6f5a516de048497ef8f355ee1c25f84ed23e8d114a482192b7c204eab5f6b6d1
4
+ data.tar.gz: e229987bfe62237660fd0825897769ae4a958d7f3dd7ea46a2b2ed98651d91fa
5
5
  SHA512:
6
- metadata.gz: 68d964a2f4ee4a0a22c6632b9f1c2e0505022bea1a358cdaeee973d597dbdf713879314588b4f55cf4cc3458bb886afac15e3f2974a28cd7d0517f27c0b072a8
7
- data.tar.gz: 5586d03a3974974476f18c8469fd67e808d14246350102202e24530da85e885c87c239b2a682c0b35b7972fc110bf6e187115aa9e5226da858b1872016531bd3
6
+ metadata.gz: 1e5002cdf179c27e9b489f89eab44bce640b29a31b22efd822c0d38510e94604c699647e41b000c018db891905deafa5fd7068e98c3ac41306b06568578f2529
7
+ data.tar.gz: d5e7f68306033f497580913b8d66f9f9365af640e38d63d86f2870fe3cec8fef724a869cba460f06b1250fded5ffce58de794baf7ee1da10cee48e27aa0dd8bc
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.
@@ -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 = []
@@ -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
@@ -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.2.0'.freeze
5
5
  end
@@ -25,9 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ['lib']
26
26
 
27
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'
28
+ spec.add_dependency 'url_finder', '~> 0.1'
31
29
 
32
30
  spec.add_development_dependency 'bundler', '~> 1.16'
33
31
  spec.add_development_dependency 'byebug'
metadata CHANGED
@@ -1,7 +1,7 @@
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.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Burenstam
@@ -25,33 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
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'
33
+ version: '0.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: '1.17'
41
- - !ruby/object:Gem::Dependency
42
- name: nokogiri
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.8'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.8'
40
+ version: '0.1'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: bundler
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +117,6 @@ files:
131
117
  - lib/verify_urls.rb
132
118
  - lib/verify_urls/cli.rb
133
119
  - lib/verify_urls/helper.rb
134
- - lib/verify_urls/reader.rb
135
120
  - lib/verify_urls/version.rb
136
121
  - verify_urls.gemspec
137
122
  homepage: https://github.com/buren/verify_urls
@@ -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