technologic 0.25.2 → 0.25.7
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 +4 -4
- data/lib/technologic.rb +42 -15
- data/lib/technologic/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3006f2b696ecfc3cee31ebe03b1853fdc4dab110bf72d6a01b7c82cbf406bb38
|
4
|
+
data.tar.gz: 68ef4174e989971a261a5966974ac73eaab88dbde2a5c1b289bdf07b6df74b4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0629986d45baf170d4335da4b27240091a8458a05087c18d3a40d9ffbff385be9c265e91e51d39812d1376fb982c5749306ee78872264fa32b61c09025abb631'
|
7
|
+
data.tar.gz: dfab0de8c2be3864995f31bb0fccf7473dccaf769f2207f45a241769af30323bdfaf948cd35fe797493c7825e01a644f27effdeee46fe1b0fda26df8436fe5bd
|
data/lib/technologic.rb
CHANGED
@@ -29,9 +29,11 @@ module Technologic
|
|
29
29
|
SEVERITIES = %i[debug info warn error fatal].freeze
|
30
30
|
EXCEPTION_SEVERITIES = %i[error fatal].freeze
|
31
31
|
|
32
|
+
ACTIVEJOB_WORKAROUND_FIRST_VERSION = Gem::Version.new("6.1.0")
|
33
|
+
|
32
34
|
included do
|
33
|
-
delegate :
|
34
|
-
protected :
|
35
|
+
delegate :_tl_instrument, :surveil, to: :class
|
36
|
+
protected :_tl_instrument, :surveil
|
35
37
|
|
36
38
|
SEVERITIES.each do |severity|
|
37
39
|
delegate severity, to: :class
|
@@ -46,31 +48,45 @@ module Technologic
|
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
51
|
+
protected
|
52
|
+
|
53
|
+
# DEP-2021-01-14
|
54
|
+
# Remove this method
|
55
|
+
def instrument(*args, **opts, &block)
|
56
|
+
# Targeted workaround for ActiveJob#instrument in Rails 6.1+
|
57
|
+
return super if defined?(ActiveJob) && self.class <= ActiveJob::Base && ActiveJob.version >= ACTIVEJOB_WORKAROUND_FIRST_VERSION
|
58
|
+
|
59
|
+
ActiveSupport::Deprecation.warn("Technologic#instrument is deprecated. Instead, use the corresponding severity-level convenience method (#info, #error etc)")
|
60
|
+
|
61
|
+
_tl_instrument(*args, **opts, &block)
|
62
|
+
end
|
63
|
+
|
64
|
+
module ClassMethods
|
65
|
+
# DEP-2021-01-14
|
66
|
+
# Remove this method
|
67
|
+
def instrument(*args, **opts, &block)
|
68
|
+
ActiveSupport::Deprecation.warn("Technologic.instrument is deprecated. Instead, use the corresponding severity-level convenience method (#info, #error etc)")
|
69
|
+
|
70
|
+
_tl_instrument(*args, **opts, &block)
|
57
71
|
end
|
58
72
|
|
59
73
|
def surveil(event, severity: :info, **data, &block)
|
60
74
|
raise LocalJumpError unless block_given?
|
61
75
|
|
62
|
-
|
63
|
-
|
76
|
+
raise ArgumentError, "Invalid severity: #{severity}" unless severity.to_sym.in?(SEVERITIES)
|
77
|
+
|
78
|
+
_tl_instrument(severity, "#{event}_started", **data)
|
79
|
+
_tl_instrument(severity, "#{event}_finished", &block)
|
64
80
|
end
|
65
81
|
|
66
82
|
SEVERITIES.each do |severity|
|
67
|
-
define_method(severity) { |event, **data, &block|
|
83
|
+
define_method(severity) { |event, **data, &block| _tl_instrument(severity, event, **data, &block) }
|
68
84
|
end
|
69
85
|
|
70
86
|
EXCEPTION_SEVERITIES.each do |severity|
|
71
87
|
define_method("#{severity}!") do |exception = StandardError, message = nil, **data, &block|
|
72
88
|
if exception.is_a?(Exception)
|
73
|
-
|
89
|
+
_tl_instrument(
|
74
90
|
severity,
|
75
91
|
exception.class.name.demodulize,
|
76
92
|
**{
|
@@ -83,11 +99,22 @@ module Technologic
|
|
83
99
|
|
84
100
|
raise exception
|
85
101
|
else
|
86
|
-
|
102
|
+
_tl_instrument severity, exception.name.demodulize, message: message, **data, &block
|
87
103
|
raise exception, message
|
88
104
|
end
|
89
105
|
end
|
90
106
|
end
|
107
|
+
|
108
|
+
protected
|
109
|
+
|
110
|
+
def _tl_instrument(severity, event, **data, &block)
|
111
|
+
ActiveSupport::Notifications.instrument("#{event}.#{name}.#{severity}", data, &block).tap do
|
112
|
+
# If a block was defined, :instrument will return the value of the block.
|
113
|
+
# Otherwise, :instrument will return nil, since it didn't do anything.
|
114
|
+
# Returning true here allows us to do fun things like `info :subscription_created and return subscription`
|
115
|
+
return true unless block_given?
|
116
|
+
end
|
117
|
+
end
|
91
118
|
end
|
92
119
|
end
|
93
120
|
|
data/lib/technologic/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: technologic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.25.
|
4
|
+
version: 0.25.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Garside
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.25.
|
33
|
+
version: 0.25.7
|
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.25.
|
40
|
+
version: 0.25.7
|
41
41
|
description: A clean and terse way to produce standardized, highly actionable, and
|
42
42
|
data-rich logs
|
43
43
|
email:
|
@@ -87,7 +87,7 @@ metadata:
|
|
87
87
|
homepage_uri: https://github.com/Freshly/spicerack/tree/master/technologic
|
88
88
|
source_code_uri: https://github.com/Freshly/spicerack/tree/master/technologic
|
89
89
|
changelog_uri: https://github.com/Freshly/spicerack/blob/master/technologic/CHANGELOG.md
|
90
|
-
documentation_uri: https://www.rubydoc.info/gems/technologic/0.25.
|
90
|
+
documentation_uri: https://www.rubydoc.info/gems/technologic/0.25.7
|
91
91
|
post_install_message:
|
92
92
|
rdoc_options: []
|
93
93
|
require_paths:
|