html-proofer 3.15.3 → 3.16.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: 40942bc9c00696cb5c3c02e6ca427c0adfd1f80dae7028a6a2d70992c29065a2
4
- data.tar.gz: 1ef56b761178d31791dc2e457c8d4da0704c6845725e87eada63e8c6d6d01d84
3
+ metadata.gz: 39ffac5e6c23ab7b75d99dd69779be2109ed8b02dc4a5cb0a33740119cb66766
4
+ data.tar.gz: cdaf142dfde936fa1d88d410499c04fdbbb3b9814bc00ba6800ff3edb8acee50
5
5
  SHA512:
6
- metadata.gz: 10f6a27dc6c59b01dd3ff4aadf8d3c1fef3cd82e35ee604f180a9738094aae1be4748d78279e5abe5fdac2ed07f43a8efdac8cec4d1a3b24ba91a3125301bbe3
7
- data.tar.gz: 33f427ea5661e13e301b06033f65d16623005cf4834b412729e8e04c13bbaecbc0d88cce2f7a20d06cedbb3b6bc6015bef0bd1ed370ba0edc6b18ba4d6117e03
6
+ metadata.gz: 34a4253b2eb9674060583c0f9006f9c36204bfd8bbb3e347293874e8db3248153e1efcdb13cbb9a5fc7967aabe478773a6a33c3c2372b4e819ecc0c41af43f36
7
+ data.tar.gz: 34530aeb5fb2836568aa5f7ebea7f154ef8e58c82ac0803aeba5632f704e7aed6c8111a095546c56b1331fa3dc1b563b08eac7cff0205aee4056815ebd8a6478
@@ -8,7 +8,7 @@ class OpenGraphElement < ::HTMLProofer::Element
8
8
  # Fake up src from the content attribute
9
9
  instance_variable_set('@src', @content)
10
10
 
11
- @src.insert 0, 'http:' if @src =~ %r{^//}
11
+ @src.insert 0, 'http:' if %r{^//}.match?(@src)
12
12
  end
13
13
  end
14
14
 
@@ -15,7 +15,7 @@ module HTMLProofer
15
15
  # Construct readable ivars for every element
16
16
  begin
17
17
  obj.attributes.each_pair do |attribute, value|
18
- name = attribute.tr('-:.;', '_').to_s.to_sym
18
+ name = attribute.tr('-:.;@', '_').to_s.to_sym
19
19
  (class << self; self; end).send(:attr_reader, name)
20
20
  instance_variable_set("@#{name}", value.value)
21
21
  end
@@ -42,19 +42,19 @@ module HTMLProofer
42
42
 
43
43
  # fix up missing protocols
44
44
  if defined?(@href)
45
- @href.insert(0, 'http:') if @href =~ %r{^//}
45
+ @href.insert(0, 'http:') if %r{^//}.match?(@href)
46
46
  else
47
47
  @href = nil
48
48
  end
49
49
 
50
50
  if defined?(@src)
51
- @src.insert(0, 'http:') if @src =~ %r{^//}
51
+ @src.insert(0, 'http:') if %r{^//}.match?(@src)
52
52
  else
53
53
  @src = nil
54
54
  end
55
55
 
56
56
  if defined?(@srcset)
57
- @srcset.insert(0, 'http:') if @srcset =~ %r{^//}
57
+ @srcset.insert(0, 'http:') if %r{^//}.match?(@srcset)
58
58
  else
59
59
  @srcset = nil
60
60
  end
@@ -105,11 +105,11 @@ module HTMLProofer
105
105
  return true if @data_proofer_ignore
106
106
  return true if @parent_ignorable
107
107
 
108
- return true if url =~ /^javascript:/
108
+ return true if /^javascript:/.match?(url)
109
109
 
110
110
  # ignore base64 encoded images
111
111
  if %w[ImageCheck FaviconCheck].include? @type
112
- return true if url =~ /^data:image/
112
+ return true if /^data:image/.match?(url)
113
113
  end
114
114
 
115
115
  # ignore user defined URLs
@@ -178,7 +178,7 @@ module HTMLProofer
178
178
 
179
179
  path_dot_ext = path + @check.options[:extension] if @check.options[:assume_extension]
180
180
 
181
- if path =~ %r{^/} # path relative to root
181
+ if %r{^/}.match?(path) # path relative to root
182
182
  if File.directory?(@check.src)
183
183
  base = @check.src
184
184
  else
@@ -217,10 +217,11 @@ module HTMLProofer
217
217
 
218
218
  def ignores_pattern_check(links)
219
219
  links.each do |ignore|
220
- if ignore.is_a? String
220
+ case ignore
221
+ when String
221
222
  return true if ignore == url
222
- elsif ignore.is_a? Regexp
223
- return true if ignore =~ url
223
+ when Regexp
224
+ return true if ignore&.match?(url)
224
225
  end
225
226
  end
226
227
 
@@ -53,7 +53,7 @@ module HTMLProofer
53
53
  def call(env)
54
54
  result = @app.call(env)
55
55
  return result if env['REQUEST_METHOD'] != 'GET'
56
- return result if env['QUERY_STRING'] =~ /proofer-ignore/
56
+ return result if /proofer-ignore/.match?(env['QUERY_STRING'])
57
57
  return result if result.first != 200
58
58
 
59
59
  body = []
@@ -31,6 +31,7 @@ module HTMLProofer
31
31
  end
32
32
 
33
33
  @failures = []
34
+ @before_request = []
34
35
  end
35
36
 
36
37
  def run
@@ -117,6 +118,7 @@ module HTMLProofer
117
118
 
118
119
  def validate_urls
119
120
  url_validator = HTMLProofer::UrlValidator.new(@logger, @external_urls, @options)
121
+ url_validator.before_request = @before_request
120
122
  @failures.concat(url_validator.run)
121
123
  @external_urls = url_validator.external_urls
122
124
  end
@@ -173,5 +175,21 @@ module HTMLProofer
173
175
  failure_text = pluralize(count, 'failure', 'failures')
174
176
  raise @logger.colorize :fatal, "HTML-Proofer found #{failure_text}!"
175
177
  end
178
+
179
+ # Set before_request callback.
180
+ #
181
+ # @example Set before_request.
182
+ # request.before_request { |request| p "yay" }
183
+ #
184
+ # @param [ Block ] block The block to execute.
185
+ #
186
+ # @yield [ Typhoeus::Request ]
187
+ #
188
+ # @return [ Array<Block> ] All before_request blocks.
189
+ def before_request(&block)
190
+ @before_request ||= []
191
+ @before_request << block if block_given?
192
+ @before_request
193
+ end
176
194
  end
177
195
  end
@@ -10,6 +10,7 @@ module HTMLProofer
10
10
  include HTMLProofer::Utils
11
11
 
12
12
  attr_reader :external_urls
13
+ attr_writer :before_request
13
14
 
14
15
  def initialize(logger, external_urls, options)
15
16
  @logger = logger
@@ -18,6 +19,7 @@ module HTMLProofer
18
19
  @options = options
19
20
  @hydra = Typhoeus::Hydra.new(@options[:hydra])
20
21
  @cache = Cache.new(@logger, @options[:cache])
22
+ @before_request = []
21
23
  end
22
24
 
23
25
  def run
@@ -137,6 +139,9 @@ module HTMLProofer
137
139
  def queue_request(method, href, filenames)
138
140
  opts = @options[:typhoeus].merge(method: method)
139
141
  request = Typhoeus::Request.new(href, opts)
142
+ @before_request.each do |callback|
143
+ callback.call(request)
144
+ end
140
145
  request.on_complete { |response| response_handler(response, filenames) }
141
146
  @hydra.queue request
142
147
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HTMLProofer
4
- VERSION = '3.15.3'
4
+ VERSION = '3.16.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html-proofer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.3
4
+ version: 3.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-20 00:00:00.000000000 Z
11
+ date: 2020-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable