tipi 0.37 → 0.37.1

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: 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