puffing-billy 4.0.0 → 4.0.4

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: 1f585918e52d40164c2b82384f2a10b9a88739bd0eaa35585a45c568749e2717
4
- data.tar.gz: 217c17068c87dcbd0df9f135b4e87d0ccb3f311cd9019a9ef57ac4f181b365ab
3
+ metadata.gz: c67e7b845e99a5ef3975462c63164acf15b5bdbe18f6d82ebbf9aa3924e4114e
4
+ data.tar.gz: 6b90f92e55c6fe667de507e00d530d2da511b2e37608036c81aa0ebeff4e09d4
5
5
  SHA512:
6
- metadata.gz: c252400a3d72b72680ee861c30322d96b62baa3bcf5f961a832671979acd066cb48a8ba3f108aee07b93167e602b28042ddac9bc2183f870b5c75f910650abf8
7
- data.tar.gz: fe72b4f1c43d9ffba16fcf84cd0998954d60531f5c4a7528818a69c42a7ab6a8cab9e9430807ddb07811937479ab45bf436d83c5028a1c19dba5734d7fcf4de6
6
+ metadata.gz: 1f64697493d1ddaae3007a73449ea4f89bd470bac74904ad3c5db7cfbea58afd8e5f7dbd35e96d30d49aa07ac1794d0e6077893e72d488676b0012b397371ab1
7
+ data.tar.gz: 8b3c0c12a497dcc86afd6e987acceebf06dbe6d47d6ac0d74f976257e493b3257203e39ef5ec406a9f7d193a46bf29766d2f3665cd805041670420b3b9321770
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ v4.0.4, 2026-03-13
2
+ ------------------
3
+ * Guard Proxy#stop against already-stopped EventMachine reactor [#359](https://github.com/oesmith/puffing-billy/pull/358)
4
+
5
+ v4.0.3, 2026-01-23
6
+ ------------------
7
+ * Update proxy_handler to resolve literal string warning [#356](https://github.com/oesmith/puffing-billy/pull/356)
8
+
9
+ v4.0.2, 2025-06-02
10
+ ------------------
11
+ * Add unary operator to mutable string [#351](https://github.com/oesmith/puffing-billy/pull/351)
12
+
13
+ v4.0.1, 2025-04-08
14
+ ------------------
15
+ * Update http-parser to 0.8.0 [#352](https://github.com/oesmith/puffing-billy/pull/352)
16
+
1
17
  v4.0.0, 2023-08-30
2
18
  ------------------
3
19
  * Drop Ruby 2.6 support [#337](https://github.com/oesmith/puffing-billy/pull/337)
@@ -103,14 +103,14 @@ module Billy
103
103
  end
104
104
 
105
105
  def self.register_cuprite_driver
106
- driver_otions = {
106
+ driver_options = {
107
107
  browser_options: {
108
108
  'ignore-certificate-errors' => nil
109
109
  }
110
110
  }.deep_merge(Billy.config.cuprite_options)
111
111
 
112
112
  ::Capybara.register_driver :cuprite_billy do |app|
113
- ::Capybara::Cuprite::Driver.new(app, **driver_otions).tap do |driver|
113
+ ::Capybara::Cuprite::Driver.new(app, **driver_options).tap do |driver|
114
114
  driver.set_proxy(Billy.proxy.host, Billy.proxy.port)
115
115
  end
116
116
  end
@@ -13,7 +13,7 @@ module Billy
13
13
  else
14
14
  raise NameError, "Invalid browser driver specified. (Expected: :chrome, :phantomjs, :firefox)"
15
15
  end
16
- super
16
+ super(name, **args)
17
17
  end
18
18
 
19
19
  private
@@ -90,7 +90,7 @@ module Billy
90
90
  response = {
91
91
  status: req.response_header.status,
92
92
  headers: req.response_header.raw,
93
- content: req.response.force_encoding('BINARY')
93
+ content: req.response.dup.force_encoding('BINARY')
94
94
  }
95
95
  response[:headers].merge!('Connection' => 'close')
96
96
  response
data/lib/billy/proxy.rb CHANGED
@@ -25,6 +25,7 @@ module Billy
25
25
 
26
26
  def stop
27
27
  return if @signature.nil?
28
+ return unless EM.reactor_running?
28
29
 
29
30
  server_port = port
30
31
  EM.stop
@@ -22,7 +22,7 @@ module Billy
22
22
 
23
23
  def on_message_begin
24
24
  @headers = nil
25
- @body = ''
25
+ @body = +''
26
26
  end
27
27
 
28
28
  def on_headers_complete(headers)
data/lib/billy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Billy
2
- VERSION = '4.0.0'
2
+ VERSION = '4.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffing-billy
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olly Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-30 00:00:00.000000000 Z
11
+ date: 2026-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 4.0.0
89
+ version: 4.11.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 4.0.0
96
+ version: 4.11.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rack
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -184,28 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 7.1.0
187
+ version: '7.3'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 7.1.0
195
- - !ruby/object:Gem::Dependency
196
- name: webdrivers
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: 5.0.0
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: 5.0.0
194
+ version: '7.3'
209
195
  - !ruby/object:Gem::Dependency
210
196
  name: webrick
211
197
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +220,20 @@ dependencies:
234
220
  - - "~>"
235
221
  - !ruby/object:Gem::Version
236
222
  version: '2.5'
223
+ - !ruby/object:Gem::Dependency
224
+ name: cgi
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: eventmachine
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -302,14 +302,14 @@ dependencies:
302
302
  requirements:
303
303
  - - "~>"
304
304
  - !ruby/object:Gem::Version
305
- version: 0.6.0
305
+ version: 0.8.0
306
306
  type: :runtime
307
307
  prerelease: false
308
308
  version_requirements: !ruby/object:Gem::Requirement
309
309
  requirements:
310
310
  - - "~>"
311
311
  - !ruby/object:Gem::Version
312
- version: 0.6.0
312
+ version: 0.8.0
313
313
  - !ruby/object:Gem::Dependency
314
314
  name: multi_json
315
315
  requirement: !ruby/object:Gem::Requirement