html-proofer 3.15.3 → 3.16.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: 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