tipi 0.37 → 0.37.1

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: 4129b10a7f6b5fb92e4e4784bf8cfd12ea2659840b616b7627bf28d1dc423e87
4
- data.tar.gz: 7f5f71c4a870e33c7de84fd292568b3aca582dcc1adc9496d99e636328b3df4b
3
+ metadata.gz: 46b961262c4d31ce6e479864bced5b698f77e757f60e93a9dff8ba7401f2fa0d
4
+ data.tar.gz: 23881ff338c0b7aeaea31a7700ed08271eca7349322fb1868246c1541386c2b8
5
5
  SHA512:
6
- metadata.gz: c1bfcbf1cdf4fa2868554e690a71543d89a37bf2d8cfa27cf604e453fb411d5b1dd2e4bc10678cbe79db6a94238ffef1a09e53771f7e8d8e71f2512b87f7265a
7
- data.tar.gz: 4f476a65800ffb6cbcdfde6e10ed9e1dd7b9fcc4ddd69ad2babed1a747cba4f94e05659cbd235c1f7e71e1595851d77896262d45d1036d216d866b7bdc3f914a
6
+ metadata.gz: ccb684d646130d74292809c1c3080f5c4280d260ae38da119813d9137e84278dfe61cf7471512353b95ea36ced2bb2913fd23695e1b3ce549a17a66d243c1bd6
7
+ data.tar.gz: fe7e6ed4c6b10ae4d409edbf9e3a105d49763cccc6c8ed81f42af5b7a903b45f53548bff830a63051c5626cd107fe169538bba08b83f8a26adf5b36f51a4f070
data/Gemfile.lock CHANGED
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tipi (0.37)
4
+ tipi (0.37.1)
5
5
  http-2 (~> 0.10.0)
6
6
  http_parser.rb (~> 0.6.0)
7
7
  msgpack (~> 1.4.2)
8
- polyphony (~> 0.51.0)
9
- qeweney (~> 0.5)
8
+ polyphony (~> 0.52.0)
9
+ qeweney (~> 0.6)
10
10
  rack (>= 2.0.8, < 2.3.0)
11
11
  websocket (~> 1.2.8)
12
12
 
@@ -28,8 +28,8 @@ GEM
28
28
  minitest (>= 5.0)
29
29
  ruby-progressbar
30
30
  msgpack (1.4.2)
31
- polyphony (0.51.0)
32
- qeweney (0.5)
31
+ polyphony (0.52.0)
32
+ qeweney (0.6)
33
33
  escape_utils (~> 1.2.1)
34
34
  rack (2.2.3)
35
35
  rake (12.3.3)
data/TODO.md CHANGED
@@ -1,8 +1,6 @@
1
- # Digital Fabric
1
+ For immediate execution:
2
2
 
3
- Problems to fix:
4
3
 
5
- - Memory leak (in server? multi agent? multi client?)
6
4
 
7
5
  # Roadmap
8
6
 
@@ -14,7 +12,7 @@ Problems to fix:
14
12
  - https://gitlab.com/honeyryderchuck/http-2-next
15
13
  - Open an issue there, ask what's the difference between the two gems?
16
14
 
17
- ## 0.35
15
+ ## 0.38
18
16
 
19
17
  - Add more poly CLI commands and options:
20
18
 
@@ -26,7 +24,7 @@ Problems to fix:
26
24
  - set port to bind to
27
25
  - set forking process count
28
26
 
29
- ## 0.36 Working Sinatra application
27
+ ## 0.39 Working Sinatra application
30
28
 
31
29
  - app with database access (postgresql)
32
30
  - benchmarks!
@@ -197,15 +197,17 @@ module Tipi
197
197
  # @param headers
198
198
  def respond(body, headers)
199
199
  consume_request if @parsing
200
- data = format_headers(headers, body)
200
+ data = [format_headers(headers, body)]
201
201
  if body
202
202
  if @parser.http_minor == 0
203
203
  data << body
204
204
  else
205
- data << body.bytesize.to_s(16) << CRLF << body << CRLF_ZERO_CRLF_CRLF
205
+ # data << body.bytesize.to_s(16) << CRLF << body << CRLF_ZERO_CRLF_CRLF
206
+ data << "#{body.bytesize.to_s(16)}\r\n#{body}\r\n0\r\n\r\n"
206
207
  end
207
208
  end
208
- @conn.write(data.join)
209
+ # Polyphony.backend_sendv(@conn, data, 0)
210
+ @conn.write(*data)
209
211
  end
210
212
 
211
213
  DEFAULT_HEADERS_OPTS = {
@@ -220,7 +222,7 @@ module Tipi
220
222
  # @return [void]
221
223
  def send_headers(headers, opts = DEFAULT_HEADERS_OPTS)
222
224
  data = format_headers(headers, true)
223
- @conn.write(data.join)
225
+ @conn.write(data)
224
226
  end
225
227
 
226
228
  # Sends a response body chunk. If no headers were sent, default headers are
@@ -233,7 +235,7 @@ module Tipi
233
235
  data = []
234
236
  data << "#{chunk.bytesize.to_s(16)}\r\n#{chunk}\r\n" if chunk
235
237
  data << "0\r\n\r\n" if done
236
- @conn.write(data.join)
238
+ @conn.write(data.join) unless data.empty?
237
239
  end
238
240
 
239
241
  # Finishes the response to the current request. If no headers were sent,
@@ -257,7 +259,7 @@ module Tipi
257
259
  def format_headers(headers, body)
258
260
  status = headers[':status']
259
261
  status ||= (body ? Qeweney::Status::OK : Qeweney::Status::NO_CONTENT)
260
- lines = [format_status_line(body, status)]
262
+ lines = format_status_line(body, status)
261
263
  headers.each do |k, v|
262
264
  next if k =~ /^:/
263
265
 
@@ -62,7 +62,7 @@ module Tipi
62
62
  @request.buffer_body_chunk(data)
63
63
  end
64
64
  end
65
-
65
+
66
66
  def on_half_close
67
67
  if @waiting_for_body_chunk
68
68
  @waiting_for_body_chunk = nil
data/lib/tipi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tipi
4
- VERSION = '0.37'
4
+ VERSION = '0.37.1'
5
5
  end
@@ -210,7 +210,8 @@ class HTTP1ServerTest < MiniTest::Test
210
210
 
211
211
  opts = {
212
212
  upgrade: {
213
- echo: lambda do |conn, _headers|
213
+ echo: lambda do |adapter, _headers|
214
+ conn = adapter.conn
214
215
  conn << <<~HTTP.http_lines
215
216
  HTTP/1.1 101 Switching Protocols
216
217
  Upgrade: echo
data/tipi.gemspec CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.executables = ['tipi']
21
21
 
22
- s.add_runtime_dependency 'polyphony', '~>0.51.0'
23
- s.add_runtime_dependency 'qeweney', '~>0.5'
22
+ s.add_runtime_dependency 'polyphony', '~>0.52.0'
23
+ s.add_runtime_dependency 'qeweney', '~>0.6'
24
24
 
25
25
  s.add_runtime_dependency 'http_parser.rb', '~>0.6.0'
26
26
  s.add_runtime_dependency 'http-2', '~>0.10.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tipi
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.37'
4
+ version: 0.37.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-15 00:00:00.000000000 Z
11
+ date: 2021-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: polyphony
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.51.0
19
+ version: 0.52.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.51.0
26
+ version: 0.52.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: qeweney
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
33
+ version: '0.6'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.5'
40
+ version: '0.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: http_parser.rb
43
43
  requirement: !ruby/object:Gem::Requirement