dry-logger 1.0.0 → 1.0.2

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: 730cb488952659e0a7499948d6f77e3ed61b7be38e462d7a000479d7e6a8c7f2
4
- data.tar.gz: 81ddc5b02fc960cb3650f1305e19bfc33d21488722455c8bfdcb3e411cb07bf4
3
+ metadata.gz: 684f7f0c0e79988487b854789ccb5fce18a2da413db5c0e002a8dd053da60ca8
4
+ data.tar.gz: 0c55f8e65565349555885bcfc948d08f4fb1a84114640af14025d684ce3a3d6f
5
5
  SHA512:
6
- metadata.gz: 02d8e2eb6e2029a3c29269db001e5e3f50eacf1605efa4cdd62ae01a1e8349b80073e0b591761ed3bc82f7acda5b139a2a03c120c32b3716c27c2d054eee0a64
7
- data.tar.gz: 2f11fec53ac321f0157f3c620944d460a189fa4da112a5b2d617a21171533dcacf17370bf1288d2ef1e4574ab4f35518aca2e280a7063df669768d1c3dda73b6
6
+ metadata.gz: e6946ec738001c7b1c65c2053792940150d161d5b42fe199c657cd69640ad8156665a332057f2b71f195e6568cd344cee584df3c4d5d0366f29e6fee6402cf7b
7
+ data.tar.gz: ea712b521c34f3d595413de30251bdc9fa1cbf63e52e70a50905abccd9f7d3d627ed1322094f85261cf33991c8574ab9480f5941b44f51b0f0432d3c95e50d09
data/CHANGELOG.md CHANGED
@@ -1,6 +1,27 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
- ## 1.0.0
3
+ ## 1.0.2 2022-11-24
4
+
5
+
6
+ ### Fixed
7
+
8
+ - Handle `:log_if` in Proxy constructors (via #23) (@solnic)
9
+
10
+
11
+ [Compare v1.0.1...v1.0.2](https://github.com/dry-rb/dry-logger/compare/v1.0.1...v1.0.2)
12
+
13
+ ## 1.0.1 2022-11-23
14
+
15
+
16
+ ### Fixed
17
+
18
+ - Support for `log_if` in proxied loggers (via 81115320b490034ddf9dfe4f3775322b9271e0cd) (@solnic)
19
+ - Support exceptions and payloads in proxied loggers (via 93b3fd59ebbdc7e63620eb064694d58455df831f) (@solnic)
20
+
21
+
22
+ [Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-logger/compare/v1.0.0...v1.0.1)
23
+
24
+ ## 1.0.0 2022-11-17
4
25
 
5
26
  This is a port of the original Hanami logger from hanami-utils extended with support for logging
6
27
  dispatchers that can log to different destinations and plenty more.
@@ -15,12 +15,32 @@ module Dry
15
15
  class Proxy < SimpleDelegator
16
16
  include Core
17
17
 
18
- # @since 0.1.0
19
- # @api public
20
- attr_accessor :log_if
21
-
22
18
  LOG_METHODS.each do |method|
23
- define_method(method) { |entry| __getobj__.public_send(method, entry.message) }
19
+ define_method(method) do |entry|
20
+ if entry.exception?
21
+ if __supports_payload__?(method)
22
+ __getobj__.public_send(method, entry.exception, **entry.payload.except(:exception))
23
+ else
24
+ __getobj__.public_send(method, entry.exception)
25
+ end
26
+ elsif __supports_payload__?(method)
27
+ if entry.message
28
+ __getobj__.public_send(method, entry.message, **entry.payload)
29
+ else
30
+ __getobj__.public_send(method, **entry.payload)
31
+ end
32
+ else
33
+ __getobj__.public_send(method, entry.message)
34
+ end
35
+ end
36
+ end
37
+
38
+ # @since 1.0.2
39
+ # @api private
40
+ def initialize(backend, **options)
41
+ super(backend)
42
+ @options = options
43
+ self.log_if = @options[:log_if]
24
44
  end
25
45
 
26
46
  # @since 1.0.0
@@ -32,6 +52,21 @@ module Dry
32
52
  true
33
53
  end
34
54
  end
55
+
56
+ private
57
+
58
+ # @since 1.0.0
59
+ # @api private
60
+ def __supports_payload__?(method)
61
+ __supported_methods__[method] ||= __getobj__.method(method)
62
+ .parameters.last&.first.equal?(:keyrest)
63
+ end
64
+
65
+ # @since 1.0.0
66
+ # @api private
67
+ def __supported_methods__
68
+ @__supported_methods__ ||= {}
69
+ end
35
70
  end
36
71
  end
37
72
  end
@@ -260,7 +260,7 @@ module Dry
260
260
  backend =
261
261
  case (instance ||= Dry::Logger.new(**options, **backend_options))
262
262
  when Backends::Stream then instance
263
- else Backends::Proxy.new(instance)
263
+ else Backends::Proxy.new(instance, **options, **backend_options)
264
264
  end
265
265
 
266
266
  yield(backend) if block_given?
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Logger
5
- VERSION = "1.0.0"
5
+ VERSION = "1.0.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-17 00:00:00.000000000 Z
11
+ date: 2022-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec