benchmark-http 0.12.0 → 0.13.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: 7a4514dcedbb45217da34b36865cee691f89a314f36e22627f940d6660360a46
4
- data.tar.gz: cc3f73eb0f546ed85abc38ebbe39ad610b0ce6f7d863c4db00e5b0e8cd6346ae
3
+ metadata.gz: 13d218f8460468f4e36bfee9339ce124a4a850681c8fb5f007290cfadec71440
4
+ data.tar.gz: 67f837ffda547018fd5a15bb21e31fa5fb70c2b0506fa5ae0628bbfe7af65e1a
5
5
  SHA512:
6
- metadata.gz: 56df6b4986db26a1af4e7d5aecfa2f2c71f2140c3139af40903652412b2218a54858503dd67017e97d37a61f132b82c955484dd09fea7f2b4e12ede73b6f0d5f
7
- data.tar.gz: aad17d6df1aa2932484089742f1e0605f9f4bbff09a92717892addf82be72834953c664a22fdeb6b1a69114d2c28d8fff2bf185ddcb3cbaf02d644cfbfa0e46a
6
+ metadata.gz: 93f1d330ac3e0eb517deb422a41dc31796b2018949e91a7c1a694c53710d895ffb9af23ac95f41523c03cb0dcda243fd59d3781e4545243c1f0ce3eb4019ab98
7
+ data.tar.gz: c88bb8bdd60d1a281381f24b30e84a09fc63aa5642a58a1c878dc35df33d7bdcc04c0bf2979fec219a14a10ea0eb40ad59153ac21d7ebbda56ac0b7b26d91daf
@@ -24,7 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency("trenni-sanitize")
25
25
 
26
26
  spec.add_dependency('samovar', "~> 2.0")
27
-
27
+
28
+ spec.add_development_dependency "covered"
29
+ spec.add_development_dependency "async-rspec"
28
30
  spec.add_development_dependency "bundler"
29
31
  spec.add_development_dependency "rake", "~> 10.0"
30
32
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -34,8 +34,9 @@ module Benchmark
34
34
  class Spider
35
35
  include Async::Await
36
36
 
37
- def initialize(depth: nil)
37
+ def initialize(depth: nil, ignore: nil)
38
38
  @depth = depth
39
+ @ignore = ignore
39
40
  end
40
41
 
41
42
  def extract_links(url, response)
@@ -71,11 +72,13 @@ module Benchmark
71
72
  end
72
73
 
73
74
  async def fetch(statistics, client, url, depth = @depth, fetched = Set.new, &block)
74
- if depth.zero?
75
+ if depth&.zero?
75
76
  Async.logger.warn(self) {"Exceeded depth while trying to visit #{url}!"}
76
77
  return
77
78
  elsif fetched.include?(url)
78
79
  return
80
+ elsif @ignore&.match?(url.path)
81
+ return
79
82
  end
80
83
 
81
84
  fetched << url
@@ -90,7 +93,7 @@ module Benchmark
90
93
  location = url + response.headers['location']
91
94
  if location.host == url.host
92
95
  Async.logger.debug(self) {"Following redirect to #{location}..."}
93
- fetch(statistics, client, location, depth-1, fetched, &block).wait
96
+ fetch(statistics, client, location, depth&.-(1), fetched, &block).wait
94
97
  return
95
98
  else
96
99
  Async.logger.debug(self) {"Ignoring redirect to #{location}."}
@@ -20,6 +20,6 @@
20
20
 
21
21
  module Benchmark
22
22
  module HTTP
23
- VERSION = "0.12.0"
23
+ VERSION = "0.13.0"
24
24
  end
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchmark-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-io
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: covered
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: async-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: bundler
85
113
  requirement: !ruby/object:Gem::Requirement