rage-rb 1.18.0 → 1.19.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: a2a6374b788898c53131e163a84117c929bc377da2859bfffde070d95b765ae9
4
- data.tar.gz: 375203e192cfd682f672e1a618aa801f975898c961ce81a1bfb3ec136807eadf
3
+ metadata.gz: 847e3debe188b3b34ffdd6b7306edeca0a053b82c0e5106b3faa37a6e43f20bf
4
+ data.tar.gz: 202db65e0a17d27ae94178d93ddfca940a95237450095b06c0fa4e080a6fd09a
5
5
  SHA512:
6
- metadata.gz: 4d305b41be71203984c30ff07ce8253befb31b84fbb7c58108983f939dfc5774fb010a4b5d804b2d19e3a4effa9e5b1e755e050ce1453c12a60162d2c48a83fe
7
- data.tar.gz: 117a17acc84c35254dbffc60999b325d00a2c333c23962f9805c632913d300d887e65250b418665dca79108ada0a74d8862c41f3d1d4c682b7fcce77bbab7c48
6
+ metadata.gz: 74610482cca2fd1394e3ffd4bd2cf577ed78a980140e39bf359ece4050bed7497dc1845a472a3c403a6fb0cbd48c1124a1714b8e7c8352b0ed720287177418c9
7
+ data.tar.gz: cd7cec704b0019012d1a08aea63b97dd83e0a6ee17155228d9517575e7882482c58b4b227d6663b053cc77a2edc551e34da53d0bf9bc0463e254ca917f9e8af4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.19.0] - 2025-12-03
4
+
5
+ ### Added
6
+
7
+ - Add ability to specify external loggers (#178).
8
+ - Pass all of log data to deferred tasks (#173).
9
+ - Add the `Request#route_uri_pattern` method (#175).
10
+ - Support global log tags and context (#171, #177).
11
+
12
+ ### Fixed
13
+
14
+ - Fix reloading in dev with user-level fibers (#170).
15
+
3
16
  ## [1.18.0] - 2025-10-29
4
17
 
5
18
  ### Added
data/lib/rage/all.rb CHANGED
@@ -12,6 +12,7 @@ require_relative "uploaded_file"
12
12
  require_relative "errors"
13
13
  require_relative "params_parser"
14
14
  require_relative "code_loader"
15
+ require_relative "log_processor"
15
16
 
16
17
  require_relative "router/strategies/host"
17
18
  require_relative "router/backend"
@@ -4,10 +4,11 @@ class Rage::Application
4
4
  def initialize(router)
5
5
  @router = router
6
6
  @exception_app = build_exception_app
7
+ @log_processor = Rage.__log_processor
7
8
  end
8
9
 
9
10
  def call(env)
10
- init_logger(env)
11
+ @log_processor.init_request_logger(env)
11
12
 
12
13
  handler = @router.lookup(env)
13
14
 
@@ -25,34 +26,11 @@ class Rage::Application
25
26
  response = @exception_app.call(500, e)
26
27
 
27
28
  ensure
28
- finalize_logger(env, response, params)
29
+ @log_processor.finalize_request_logger(env, response, params)
29
30
  end
30
31
 
31
32
  private
32
33
 
33
- DEFAULT_LOG_CONTEXT = {}.freeze
34
- private_constant :DEFAULT_LOG_CONTEXT
35
-
36
- def init_logger(env)
37
- Thread.current[:rage_logger] = {
38
- tags: [(env["rage.request_id"] ||= Iodine::Rack::Utils.gen_request_tag)],
39
- context: DEFAULT_LOG_CONTEXT,
40
- request_start: Process.clock_gettime(Process::CLOCK_MONOTONIC)
41
- }
42
- end
43
-
44
- def finalize_logger(env, response, params)
45
- logger = Thread.current[:rage_logger]
46
-
47
- duration = (
48
- (Process.clock_gettime(Process::CLOCK_MONOTONIC) - logger[:request_start]) * 1000
49
- ).round(2)
50
-
51
- logger[:final] = { env:, params:, response:, duration: }
52
- Rage.logger.info("")
53
- logger[:final] = nil
54
- end
55
-
56
34
  def build_exception_app
57
35
  if Rage.env.development?
58
36
  ->(status, e) do
@@ -52,11 +52,10 @@ module Rage::Cable
52
52
  end
53
53
 
54
54
  @protocol = protocol
55
- @default_log_context = {}.freeze
55
+ @log_processor = Rage.__log_processor
56
56
  end
57
57
 
58
58
  def on_open(connection)
59
- connection.env["rage.request_id"] ||= Iodine::Rack::Utils.gen_request_tag
60
59
  schedule_fiber(connection) { @protocol.on_open(connection) }
61
60
  end
62
61
 
@@ -83,7 +82,7 @@ module Rage::Cable
83
82
 
84
83
  def schedule_fiber(connection)
85
84
  Fiber.schedule do
86
- Thread.current[:rage_logger] = { tags: [connection.env["rage.request_id"]], context: @default_log_context }
85
+ @log_processor.init_request_logger(connection.env)
87
86
  yield
88
87
  rescue => e
89
88
  log_error(e)