verify_urls 0.1.0 → 0.2.0

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: 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