History

Specs all passing

Paul Sernatinger committed 3 years ago

Commit 2da05d71 parent b3e55ed37 files · +198 −178Browse files

Unified · Split

37 files
  1. .ruby-version +1 −1
  2. Gemfile +24 −23
  3. Gemfile.lock +74 −71
  4. docs/maintainers.md +1 −0
  5. lib/app.rb +16 −1
  6. lib/docs/core/request.rb +1 −1
  7. lib/docs/core/requester.rb +8 −8
  8. lib/docs/core/scraper.rb +1 −1
  9. lib/tasks/updates.thor +1 −1
  10. test/lib/docs/core/doc_test.rb +5 −5
  11. test/lib/docs/core/entry_index_test.rb +2 −2
  12. test/lib/docs/core/filter_test.rb +3 −3
  13. test/lib/docs/core/instrumentable_test.rb +2 −2
  14. test/lib/docs/core/manifest_test.rb +2 −2
  15. test/lib/docs/core/models/entry_test.rb +2 −2
  16. test/lib/docs/core/models/type_test.rb +2 −2
  17. test/lib/docs/core/parser_test.rb +2 −2
  18. test/lib/docs/core/request_test.rb +4 −4
  19. test/lib/docs/core/requester_test.rb +4 −4
  20. test/lib/docs/core/response_test.rb +2 −2
  21. test/lib/docs/core/scraper_test.rb +3 −3
  22. test/lib/docs/core/scrapers/file_scraper_test.rb +2 −2
  23. test/lib/docs/core/scrapers/url_scraper_test.rb +7 −7
  24. test/lib/docs/core/url_test.rb +2 −2
  25. test/lib/docs/filters/core/apply_base_url_test.rb +2 −2
  26. test/lib/docs/filters/core/clean_html_test.rb +2 −2
  27. test/lib/docs/filters/core/clean_text_test.rb +2 −2
  28. test/lib/docs/filters/core/container_test.rb +2 −2
  29. test/lib/docs/filters/core/entries_test.rb +2 −2
  30. test/lib/docs/filters/core/inner_html_test.rb +2 −2
  31. test/lib/docs/filters/core/internal_urls_test.rb +2 −2
  32. test/lib/docs/filters/core/normalize_paths_test.rb +2 −2
  33. test/lib/docs/filters/core/normalize_urls_test.rb +2 −2
  34. test/lib/docs/filters/core/parse_cf_email_test.rb +2 −2
  35. test/lib/docs/filters/core/title_test.rb +2 −2
  36. test/lib/docs/storage/abstract_store_test.rb +3 −3
  37. test/lib/docs/storage/file_store_test.rb +2 −2
.ruby-version+1−1
@@ -1 +1 @@
1−2.7.6
1+3.1.2
Gemfile+24−23
@@ -1,37 +1,38 @@
11 source 'https://rubygems.org'
2−ruby '~> 2.7.3'
2+ruby '3.1.2'
33
4−gem 'rake'
5−gem 'thor'
6−gem 'pry', '~> 0.14.0'
7−gem 'activesupport', '~> 5.2', require: false
8−gem 'yajl-ruby', require: false
4+gem 'activesupport', require: false
95 gem 'html-pipeline'
10−gem 'typhoeus'
116 gem 'nokogiri'
7+gem 'pry-byebug'
8+gem 'rake'
129 gem 'terminal-table'
10+gem 'thor'
11+gem 'typhoeus'
12+gem 'yajl-ruby', require: false
1313
1414 group :app do
15+ gem 'browser'
16+ gem 'chunky_png'
17+ gem 'coffee-script'
18+ gem 'erubi'
19+ gem 'image_optim_pack', platforms: :ruby
20+ gem 'image_optim'
21+ gem 'rack-ssl-enforcer'
1522 gem 'rack'
16− gem 'sinatra'
23+ gem 'rss'
24+ gem 'sass'
1725 gem 'sinatra-contrib'
18− gem 'rack-ssl-enforcer'
19− gem 'thin'
20− gem 'sprockets'
26+ gem 'sinatra'
2127 gem 'sprockets-helpers'
22− gem 'erubi'
23− gem 'browser'
24− gem 'sass'
25− gem 'coffee-script'
26− gem 'chunky_png'
2728 gem 'sprockets-sass'
28− gem 'image_optim'
29− gem 'image_optim_pack', platforms: :ruby
29+ gem 'sprockets'
30+ gem 'thin'
3031 end
3132
3233 group :production do
33− gem 'uglifier'
3434 gem 'newrelic_rpm'
35+ gem 'uglifier'
3536 end
3637
3738 group :development do
@@ -39,17 +40,17 @@ group :development do · 1 unmodified line
3940 end
4041
4142 group :docs do
42− gem 'redcarpet'
43+ gem 'net-sftp', require: false
4344 gem 'progress_bar', require: false
44− gem 'unix_utils', require: false
45+ gem 'redcarpet'
4546 gem 'tty-pager', require: false
46− gem 'net-sftp', '>= 2.1.3.rc2', require: false
47+ gem 'unix_utils', require: false
4748 end
4849
4950 group :test do
5051 gem 'minitest'
51− gem 'rr', require: false
5252 gem 'rack-test', require: false
53+ gem 'rr', require: false
5354 end
5455
5556 if ENV['SELENIUM'] == '1'
Gemfile.lock+74−71
@@ -1,136 +1,138 @@
11 GEM
22 remote: https://rubygems.org/
33 specs:
4− activesupport (5.2.6)
4+ activesupport (7.0.4)
55 concurrent-ruby (~> 1.0, >= 1.0.2)
6− i18n (>= 0.7, < 2)
7− minitest (~> 5.1)
8− tzinfo (~> 1.1)
9− backports (3.15.0)
6+ i18n (>= 1.6, < 2)
7+ minitest (>= 5.1)
8+ tzinfo (~> 2.0)
109 better_errors (2.9.1)
1110 coderay (>= 1.0.0)
1211 erubi (>= 1.0.0)
1312 rack (>= 0.9.0)
14− browser (2.6.1)
15− chunky_png (1.3.11)
13+ browser (5.3.1)
14+ byebug (11.1.3)
15+ chunky_png (1.4.0)
1616 coderay (1.1.3)
1717 coffee-script (2.4.1)
1818 coffee-script-source
1919 execjs
2020 coffee-script-source (1.12.2)
21− concurrent-ruby (1.1.9)
22− daemons (1.4.0)
23− erubi (1.10.0)
24− ethon (0.12.0)
25− ffi (>= 1.3.0)
21+ concurrent-ruby (1.1.10)
22+ daemons (1.4.1)
23+ erubi (1.11.0)
24+ ethon (0.16.0)
25+ ffi (>= 1.15.0)
2626 eventmachine (1.2.7)
27− execjs (2.7.0)
28− exifr (1.3.6)
27+ execjs (2.8.1)
28+ exifr (1.3.10)
2929 ffi (1.15.5)
3030 fspath (3.1.2)
3131 highline (2.0.3)
32− html-pipeline (2.12.0)
32+ html-pipeline (2.14.3)
3333 activesupport (>= 2)
3434 nokogiri (>= 1.4)
35− i18n (1.8.10)
35+ i18n (1.12.0)
3636 concurrent-ruby (~> 1.0)
37− image_optim (0.26.5)
37+ image_optim (0.31.1)
3838 exifr (~> 1.2, >= 1.2.2)
3939 fspath (~> 3.0)
40− image_size (>= 1.5, < 3)
40+ image_size (>= 1.5, < 4)
4141 in_threads (~> 1.3)
4242 progress (~> 3.0, >= 3.0.1)
43− image_optim_pack (0.6.0)
43+ image_optim_pack (0.9.1.20221104)
4444 fspath (>= 2.1, < 4)
4545 image_optim (~> 0.19)
46− image_size (2.0.2)
47− in_threads (1.5.3)
46+ image_size (3.2.0)
47+ in_threads (1.6.0)
4848 method_source (1.0.0)
4949 mini_portile2 (2.8.0)
50− minitest (5.14.4)
51− multi_json (1.13.1)
52− mustermann (1.1.1)
50+ minitest (5.16.3)
51+ multi_json (1.15.0)
52+ mustermann (3.0.0)
5353 ruby2_keywords (~> 0.0.1)
54− net-sftp (3.0.0.beta1)
55− net-ssh (>= 5.0.0, < 6.0.0)
56− net-ssh (5.2.0)
57− newrelic_rpm (6.7.0.359)
54+ net-sftp (4.0.0)
55+ net-ssh (>= 5.0.0, < 8.0.0)
56+ net-ssh (7.0.1)
57+ newrelic_rpm (8.12.0)
5858 nokogiri (1.13.9)
5959 mini_portile2 (~> 2.8.0)
6060 racc (~> 1.4)
6161 options (2.3.2)
62− progress (3.5.2)
63− progress_bar (1.3.0)
62+ progress (3.6.0)
63+ progress_bar (1.3.3)
6464 highline (>= 1.6, < 3)
6565 options (~> 2.3.0)
6666 pry (0.14.1)
6767 coderay (~> 1.1)
6868 method_source (~> 1.0)
69+ pry-byebug (3.10.1)
70+ byebug (~> 11.0)
71+ pry (>= 0.13, < 0.15)
6972 racc (1.6.0)
70− rack (2.2.3.1)
71− rack-protection (2.0.7)
73+ rack (2.2.4)
74+ rack-protection (3.0.3)
7275 rack
7376 rack-ssl-enforcer (0.2.9)
74− rack-test (1.1.0)
75− rack (>= 1.0, < 3)
76− rake (13.0.0)
77− rb-fsevent (0.10.3)
78− rb-inotify (0.10.0)
77+ rack-test (2.0.2)
78+ rack (>= 1.3)
79+ rake (13.0.6)
80+ rb-fsevent (0.11.2)
81+ rb-inotify (0.10.1)
7982 ffi (~> 1.0)
8083 redcarpet (3.5.1)
81− rr (1.2.1)
84+ rexml (3.2.5)
85+ rr (3.1.0)
86+ rss (0.2.9)
87+ rexml
8288 ruby2_keywords (0.0.5)
8389 sass (3.7.4)
8490 sass-listen (~> 4.0.0)
8591 sass-listen (4.0.0)
8692 rb-fsevent (~> 0.9, >= 0.9.4)
8793 rb-inotify (~> 0.9, >= 0.9.7)
88− sinatra (2.0.7)
89− mustermann (~> 1.0)
90− rack (~> 2.0)
91− rack-protection (= 2.0.7)
94+ sinatra (3.0.3)
95+ mustermann (~> 3.0)
96+ rack (~> 2.2, >= 2.2.4)
97+ rack-protection (= 3.0.3)
9298 tilt (~> 2.0)
93− sinatra-contrib (2.0.7)
94− backports (>= 2.8.2)
99+ sinatra-contrib (3.0.3)
95100 multi_json
96− mustermann (~> 1.0)
97− rack-protection (= 2.0.7)
98− sinatra (= 2.0.7)
101+ mustermann (~> 3.0)
102+ rack-protection (= 3.0.3)
103+ sinatra (= 3.0.3)
99104 tilt (~> 2.0)
100105 sprockets (3.7.2)
101106 concurrent-ruby (~> 1.0)
102107 rack (> 1, < 3)
103− sprockets-helpers (1.2.1)
108+ sprockets-helpers (1.4.0)
104109 sprockets (>= 2.2)
105110 sprockets-sass (2.0.0.beta2)
106111 sprockets (>= 2.0, < 4.0)
107− strings (0.1.6)
108− strings-ansi (~> 0.1)
109− unicode-display_width (~> 1.5)
112+ strings (0.2.1)
113+ strings-ansi (~> 0.2)
114+ unicode-display_width (>= 1.5, < 3.0)
110115 unicode_utils (~> 1.4)
111− strings-ansi (0.1.0)
112− terminal-table (1.8.0)
113− unicode-display_width (~> 1.1, >= 1.1.1)
116+ strings-ansi (0.2.0)
117+ terminal-table (3.0.2)
118+ unicode-display_width (>= 1.1.1, < 3)
114119 thin (1.8.1)
115120 daemons (~> 1.0, >= 1.0.9)
116121 eventmachine (~> 1.0, >= 1.0.4)
117122 rack (>= 1, < 3)
118− thor (0.20.3)
119− thread_safe (0.3.6)
120− tilt (2.0.10)
121− tty-pager (0.12.1)
122− strings (~> 0.1.4)
123− tty-screen (~> 0.6)
124− tty-which (~> 0.4)
125− tty-screen (0.7.0)
126− tty-which (0.4.1)
127− typhoeus (1.3.1)
123+ thor (1.2.1)
124+ tilt (2.0.11)
125+ tty-pager (0.14.0)
126+ strings (~> 0.2.0)
127+ tty-screen (~> 0.8)
128+ tty-screen (0.8.1)
129+ typhoeus (1.4.0)
128130 ethon (>= 0.9.0)
129− tzinfo (1.2.10)
130− thread_safe (~> 0.1)
131+ tzinfo (2.0.5)
132+ concurrent-ruby (~> 1.0)
131133 uglifier (4.2.0)
132134 execjs (>= 0.3.0, < 3)
133− unicode-display_width (1.6.0)
135+ unicode-display_width (2.3.0)
134136 unicode_utils (1.4.0)
135137 unix_utils (0.0.15)
136138 yajl-ruby (1.4.3)
@@ -139,7 +141,7 @@ PLATFORMS · 2 unmodified lines
139141 ruby
140142
141143 DEPENDENCIES
142− activesupport (~> 5.2)
144+ activesupport
143145 better_errors
144146 browser
145147 chunky_png
@@ -149,17 +151,18 @@ DEPENDENCIES · 3 unmodified lines
149151 image_optim
150152 image_optim_pack
151153 minitest
152− net-sftp (>= 2.1.3.rc2)
154+ net-sftp
153155 newrelic_rpm
154156 nokogiri
155157 progress_bar
156− pry (~> 0.14.0)
158+ pry-byebug
157159 rack
158160 rack-ssl-enforcer
159161 rack-test
160162 rake
161163 redcarpet
162164 rr
165+ rss
163166 sass
164167 sinatra
165168 sinatra-contrib
@@ -176,7 +179,7 @@ DEPENDENCIES · 10 unmodified lines
176179 yajl-ruby
177180
178181 RUBY VERSION
179− ruby 2.7.3p183
182+ ruby 3.1.2p20
180183
181184 BUNDLED WITH
182185 2.1.4
docs/maintainers.md+1−0
@@ -125,6 +125,7 @@ The following people (used to) maintain DevDocs: · 124 unmodified lines
125125 - [Jed Fox](https://github.com/j-f1)
126126 - [Mrugesh Mohapatra](https://github.com/raisedadead)
127127 - [Oliver Eyton-Williams](https://github.com/ojeytonwilliams)
128+- [Paul Sernatinger](https://github.com/oscillot)
128129 - [Simon Legner](https://github.com/simon04)
129130 - [Thibaut Courouble](https://github.com/thibaut)
130131
lib/app.rb+16−1
@@ -238,7 +238,22 @@ class App < Sinatra::Application · 237 unmodified lines
238238 end
239239
240240 def supports_js_redirection?
241− browser.modern? && !memoized_cookies.empty?
241+ modern_browser?(browser) && !memoized_cookies.empty?
242+ end
243+
244+ # https://github.com/fnando/browser#detecting-modern-browsers
245+ # https://github.com/fnando/browser/blob/v2.6.1/lib/browser/browser.rb
246+ # This restores the old browser gem `#modern?` functionality as it was in 2.6.1
247+ # It's possible this isn't even really needed any longer, these versions are quite old now
248+ def modern_browser?(browser)
249+ [
250+ browser.webkit?,
251+ browser.firefox? && browser.version.to_i >= 17,
252+ browser.ie? && browser.version.to_i >= 9 && !browser.compatibility_view?,
253+ browser.edge? && !browser.compatibility_view?,
254+ browser.opera? && browser.version.to_i >= 12,
255+ browser.firefox? && browser.device.tablet? && browser.platform.android? && b.version.to_i >= 14
256+ ].any?
242257 end
243258 end
244259
lib/docs/core/request.rb+1−1
@@ -13,7 +13,7 @@ module Docs · 12 unmodified lines
1313 request.run
1414 end
1515
16− def initialize(url, options = {})
16+ def initialize(url, **options)
1717 super url.to_s, DEFAULT_OPTIONS.merge(options)
1818 end
1919
lib/docs/core/requester.rb+8−8
@@ -4,10 +4,10 @@ module Docs · 3 unmodified lines
44
55 attr_reader :request_options
66
7− def self.run(urls, options = {}, &block)
7+ def self.run(urls, **options, &block)
88 urls = urls.dup
9− requester = new(options)
10− requester.on_response(&block) if block
9+ requester = new(**options)
10+ requester.on_response(&block) if block_given?
1111 requester.on_response do # cheap hack to ensure root page is processed first
1212 if urls
1313 requester.request(urls)
@@ -19,16 +19,16 @@ module Docs · 5 unmodified lines
1919 requester
2020 end
2121
22− def initialize(options = {})
22+ def initialize(**options)
2323 @request_options = options.extract!(:request_options)[:request_options].try(:dup) || {}
2424 options[:max_concurrency] ||= 20
2525 options[:pipelining] = 0
2626 super
2727 end
2828
29− def request(urls, options = {}, &block)
29+ def request(urls, **options, &block)
3030 requests = [urls].flatten.map do |url|
31− build_and_queue_request(url, options, &block)
31+ build_and_queue_request(url, **options, &block)
3232 end
3333 requests.length == 1 ? requests.first : requests
3434 end
@@ -46,8 +46,8 @@ module Docs · 11 unmodified lines
4646
4747 private
4848
49− def build_and_queue_request(url, options, &block)
50− request = Request.new(url, request_options.merge(options))
49+ def build_and_queue_request(url, **options, &block)
50+ request = Request.new(url, **request_options.merge(options))
5151 request.on_complete(&block) if block
5252 queue(request)
5353 request
lib/docs/core/scraper.rb+1−1
@@ -51,7 +51,7 @@ module Docs · 50 unmodified lines
5151 end
5252
5353 def initialize_stubs
54− self.class.stubs.each do |path, block|
54+ self.class.stubs.each do |path, &block|
5555 Typhoeus.stub(url_for(path)).and_return do
5656 Typhoeus::Response.new \
5757 effective_url: url_for(path),
lib/tasks/updates.thor+1−1
@@ -259,7 +259,7 @@ Maintainers can close this issue when all documentations are up-to-date. The iss · 258 unmodified lines
259259 # HTTP utilities
260260 #
261261
262− def github_get(endpoint, params = {})
262+ def github_get(endpoint, **params)
263263 github_request(endpoint, {method: :get, params: params})
264264 end
265265
test/lib/docs/core/doc_test.rb+5−5
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsDocTest < MiniTest::Spec
55 let :doc do
@@ -197,7 +197,7 @@ class DocsDocTest < MiniTest::Spec · 191 unmodified lines
197197 it "opens the .path directory before storing the file" do
198198 stub(doc).path { 'path' }
199199 stub(store).write { assert false }
200− mock(store).open('path') do |_, block|
200+ mock(store).open('path') do |_, &block|
201201 stub(store).write
202202 block.call
203203 end
@@ -258,7 +258,7 @@ class DocsDocTest < MiniTest::Spec · 54 unmodified lines
258258
259259 before do
260260 any_instance_of(doc) do |instance|
261− stub(instance).build_pages { |block| pages.each(&block) }
261+ stub(instance).build_pages { |&block| pages.each(&block) }
262262 end
263263 end
264264
@@ -313,7 +313,7 @@ class DocsDocTest < MiniTest::Spec · 48 unmodified lines
313313 it "replaces the .path directory before storing the files" do
314314 stub(doc).path { 'path' }
315315 stub(store).write { assert false }
316− mock(store).replace('path') do |_, block|
316+ mock(store).replace('path') do |_, &block|
317317 stub(store).write
318318 block.call
319319 end
test/lib/docs/core/entry_index_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsEntryIndexTest < MiniTest::Spec
55 let :entry do
test/lib/docs/core/filter_test.rb+3−3
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsFilterTest < MiniTest::Spec
55 include FilterTestHelper
@@ -19,7 +19,7 @@ class DocsFilterTest < MiniTest::Spec · 13 unmodified lines
1919
2020 describe "#subpath_to" do
2121 it "returns the subpath from the #base_url to the url, ignoring case" do
22− stub(filter.base_url).subpath_to('url', hash_including(ignore_case: true)) { 'subpath' }
22+ stub(filter.base_url).subpath_to('url', ignore_case: true) { 'subpath' }
2323 assert_equal 'subpath', filter.subpath_to('url')
2424 end
2525 end
test/lib/docs/core/instrumentable_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsInstrumentableTest < MiniTest::Spec
55 let :extended_class do
test/lib/docs/core/manifest_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class ManifestTest < MiniTest::Spec
55 let :doc do
test/lib/docs/core/models/entry_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class DocsEntryTest < MiniTest::Spec
55 Entry = Docs::Entry
test/lib/docs/core/models/type_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class DocsTypeTest < MiniTest::Spec
55 Type = Docs::Type
test/lib/docs/core/parser_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsParserTest < MiniTest::Spec
55 def parser(content)
test/lib/docs/core/request_test.rb+4−4
@@ -1,13 +1,13 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsRequestTest < MiniTest::Spec
55 let :url do
66 'http://example.com'
77 end
88
9− def request(url = self.url, options = {})
10− Docs::Request.new(url, options).tap do |request|
9+ def request(url = self.url, **options)
10+ Docs::Request.new(url, **options).tap do |request|
1111 request.extend FakeInstrumentation
1212 end
1313 end
test/lib/docs/core/requester_test.rb+4−4
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsRequesterTest < MiniTest::Spec
55 def stub_request(url)
@@ -7,7 +7,7 @@ class DocsRequesterTest < MiniTest::Spec · 1 unmodified line
77 end
88
99 let :requester do
10− Docs::Requester.new(options)
10+ Docs::Requester.new(**options)
1111 end
1212
1313 let :url do
@@ -81,7 +81,7 @@ class DocsRequesterTest < MiniTest::Spec · 67 unmodified lines
8181 end
8282
8383 it "returns an array of requests" do
84− result = requester.request(urls, { params: 'test' }, &block)
84+ result = requester.request(urls, params: 'test', &block)
8585 assert_instance_of Array, result
8686 assert_equal urls.length, result.length
8787 assert result.all? { |obj| obj.instance_of? Docs::Request }
test/lib/docs/core/response_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsResponseTest < MiniTest::Spec
55 let :response do
test/lib/docs/core/scraper_test.rb+3−3
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsScraperTest < MiniTest::Spec
55 class Scraper < Docs::Scraper
@@ -223,7 +223,7 @@ class DocsScraperTest < MiniTest::Spec · 217 unmodified lines
223223
224224 context "when the response is processable" do
225225 before do
226− stub(scraper).request_all do |urls, block|
226+ stub(scraper).request_all do |urls, &block|
227227 urls.each { |url| @next_urls ||= block.call(response) }
228228 end
229229 stub(scraper).handle_response(response) { processed_response }
test/lib/docs/core/scrapers/file_scraper_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class FileScraperTest < MiniTest::Spec
55 ROOT_PATH = File.expand_path('../../../../../../', __FILE__)
test/lib/docs/core/scrapers/url_scraper_test.rb+7−7
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class DocsUrlScraperTest < MiniTest::Spec
55 class Scraper < Docs::UrlScraper
@@ -54,29 +54,29 @@ class DocsUrlScraperTest < MiniTest::Spec · 48 unmodified lines
5454 end
5555
5656 it "runs a Requester with the given urls" do
57− mock(Docs::Requester).run 'urls', anything
57+ mock(Docs::Requester).run('urls', request_options: {params: {}, headers: {"User-Agent" => "DevDocs"}})
5858 result
5959 end
6060
6161 it "runs a Requester with .headers as :request_options" do
6262 stub(Scraper).headers { { testheader: true } }
63− mock(Docs::Requester).run anything, satisfy { |options| options[:request_options][:headers][:testheader] }
63+ mock(Docs::Requester).run('urls', request_options: {params: {}, headers: {testheader: true}})
6464 result
6565 end
6666
6767 it "runs a Requester with default .headers as :request_options" do
68− mock(Docs::Requester).run anything, satisfy { |options| options[:request_options][:headers]["User-Agent"] }
68+ mock(Docs::Requester).run('urls', request_options: {params: {}, headers: {"User-Agent" => "DevDocs"}})
6969 result
7070 end
7171
7272 it "runs a Requester with .params as :request_options" do
7373 stub(Scraper).params { { test: true } }
74− mock(Docs::Requester).run anything, satisfy { |options| options[:request_options][:params][:test] }
74+ mock(Docs::Requester).run('urls', request_options: {params: {test: true}, headers: {"User-Agent" => "DevDocs"}})
7575 result
7676 end
7777
7878 it "runs a Requester with the given block" do
79− stub(Docs::Requester).run { |*args| @block = args.last }
79+ stub(Docs::Requester).run { |*_args, **_kwargs, &block| @block = block }
8080 result
8181 assert_equal block, @block
8282 end
test/lib/docs/core/url_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsUrlTest < MiniTest::Spec
55 URL = Docs::URL
test/lib/docs/filters/core/apply_base_url_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class ApplyBaseUrlFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/clean_html_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class CleanHtmlFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/clean_text_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class CleanTextFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/container_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class ContainerFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/entries_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class EntriesFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/inner_html_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class InnerHtmlFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/internal_urls_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class InternalUrlsFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/normalize_paths_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class NormalizePathsFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/normalize_urls_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class NormalizeUrlsFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/parse_cf_email_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class ParseCfEmailFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/filters/core/title_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../../test_helper'
2+require_relative '../../../../../lib/docs'
33
44 class TitleFilterTest < MiniTest::Spec
55 include FilterTestHelper
test/lib/docs/storage/abstract_store_test.rb+3−3
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsAbstractStoreTest < MiniTest::Spec
55 InvalidPathError = Docs::AbstractStore::InvalidPathError
@@ -368,7 +368,7 @@ class DocsAbstractStoreTest < MiniTest::Spec · 362 unmodified lines
368368 end
369369
370370 def stub_paths(*paths)
371− stub(store).each { |block| paths.each(&block) }
371+ stub(store).each { |&block| paths.each(&block) }
372372 end
373373
374374 it "calls the block" do
test/lib/docs/storage/file_store_test.rb+2−2
@@ -1,5 +1,5 @@
1−require 'test_helper'
2−require 'docs'
1+require_relative '../../../test_helper'
2+require_relative '../../../../lib/docs'
33
44 class DocsFileStoreTest < MiniTest::Spec
55 let :store do