tp2 0.14 → 0.15

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: '08812ae0e3200972086172f46db095a85dd81ab9f92a19f3545cb7e08425e722'
4
- data.tar.gz: 204dcb6bc431cccddcd2a1aee3416235bb495359f99cc0afaa96cd56353d51f9
3
+ metadata.gz: 7c0c245bd1ea541ba0cb2e6c89dabd928c11ecc0e9bba1fe27f0ae69b2ea67c8
4
+ data.tar.gz: 4c0a8cd775703e03a2cce80f0727f62f39b3c6f171a2356586092ca97b510490
5
5
  SHA512:
6
- metadata.gz: 49f58f9c2e4650816583633323a9f9fd38d5028ca27a3c024694baad38fbd656ec360b6cb6189876e7cb9d0574e8c340d2d71796086135225057e9367ebe7ef7
7
- data.tar.gz: 1f9cc001a6613a89b094d07ebeadf884f377840d302080c269de4cb8f635220a18e358efe3a078936acc069479202eb17a7f47b5842fb5a150256891ce7819d0
6
+ metadata.gz: 847c5fa38441c0af9ff06db44b4259edcf2990e8d017cd7a0c706e8ecd6f95a1439bd5c13ae6509c2f1a67fdbbe6002b5c9e9bba7332b0a3c83f8941546c68d1
7
+ data.tar.gz: 7b41d103bc5235de576efaaa7c69d5309c837ce604c7d15b6c0e316459e5c5ade0a4dfb7073701edf42b0e11134cc1e179ac072d581aceb872453d2f0131c48e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 0.15 2025-08-30
2
+
3
+ - Call app.ready after setting up, if method available
4
+ - Update uringmachine, qeweney deps
5
+
6
+ # 0.14.1 2025-07-08
7
+
8
+ - Add request elapsed time to log
9
+
1
10
  # Version 0.14 2025-07-08
2
11
 
3
12
  - Finish new logger
@@ -43,6 +43,7 @@ module TP2
43
43
  return false if !headers
44
44
 
45
45
  request = Qeweney::Request.new(headers, self)
46
+ request.start_stamp = monotonic_clock
46
47
  @app.call(request)
47
48
  persist_connection?(headers)
48
49
  rescue ProtocolError => e
@@ -217,6 +218,10 @@ module TP2
217
218
  @machine.close_async(@fd)
218
219
  end
219
220
 
221
+ def monotonic_clock
222
+ ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
223
+ end
224
+
220
225
  private
221
226
 
222
227
  RE_REQUEST_LINE = %r{^([a-z]+)\s+([^\s]+)\s+(http/[0-9.]{1,3})}i
data/lib/tp2/logger.rb CHANGED
@@ -67,6 +67,7 @@ module TP2
67
67
  request = o[:request]
68
68
  request_headers = request.headers
69
69
  response_headers = o[:response_headers]
70
+ elapsed = request.adapter.monotonic_clock - request.start_stamp
70
71
  {
71
72
  level: level.to_s,
72
73
  ts: (t = Time.now; t.to_i),
@@ -76,7 +77,8 @@ module TP2
76
77
  http_method: request_headers[':method'].upcase,
77
78
  user_agent: request_headers['user-agent'],
78
79
  uri: full_uri(request_headers),
79
- status: response_headers[':status'] || '200'
80
+ status: response_headers[':status'] || '200',
81
+ elapsed: elapsed
80
82
  }
81
83
  end
82
84
 
@@ -1,10 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Qeweney::Request
4
+ attr_accessor :start_stamp
5
+
4
6
  def respond_with_static_file(path, etag, last_modified, opts)
5
7
  cache_headers = (etag || last_modified) ? {
6
8
  'etag' => etag,
7
- 'last-modified' => last_modified,
9
+ 'last-modified' => last_modified
8
10
  } : {}
9
11
 
10
12
  adapter.respond_with_static_file(self, path, opts, cache_headers)
data/lib/tp2/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TP2
2
- VERSION = '0.14'
2
+ VERSION = '0.15'
3
3
  end
data/lib/tp2.rb CHANGED
@@ -42,6 +42,7 @@ module TP2
42
42
  server = Server.new(machine, opts, &app)
43
43
 
44
44
  setup_signal_handling(machine, Fiber.current)
45
+ app.ready if app.respond_to?(:ready)
45
46
  server.run
46
47
  ensure
47
48
  @in_run = false
data/tp2.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.required_ruby_version = '>= 3.4'
21
21
  s.executables = ['tp2']
22
22
 
23
- s.add_dependency 'uringmachine', '~> 0.16'
24
- s.add_dependency 'qeweney', '~> 0.21'
23
+ s.add_dependency 'uringmachine', '~> 0.18'
24
+ s.add_dependency 'qeweney', '~> 0.22'
25
25
  s.add_dependency 'rack', '~> 3.1.15'
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tp2
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.14'
4
+ version: '0.15'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0.16'
18
+ version: '0.18'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0.16'
25
+ version: '0.18'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: qeweney
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0.21'
32
+ version: '0.22'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.21'
39
+ version: '0.22'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rack
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
109
  requirements: []
110
- rubygems_version: 3.6.8
110
+ rubygems_version: 3.6.9
111
111
  specification_version: 4
112
112
  summary: Experimental HTTP/1 server for UringMachine
113
113
  test_files: []