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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 963a8a4e9bd65397546fdf836975388005ae17bb07aa1d2debf6931f5d5fb70e
4
- data.tar.gz: 4a2beee34bcffd776b5c8e243853d7b3ddb343be9a61616183614b5ef3ce061a
3
+ metadata.gz: 3006f2b696ecfc3cee31ebe03b1853fdc4dab110bf72d6a01b7c82cbf406bb38
4
+ data.tar.gz: 68ef4174e989971a261a5966974ac73eaab88dbde2a5c1b289bdf07b6df74b4a
5
5
  SHA512:
6
- metadata.gz: 393b0f65f6db28ce7ba2df74d44ef0295b2f294e55aab62657e72796bca62a1b2b4667aa69ae9b74e0c17117fd6eff020b42c49b88c9a5bc90b50460cb7ae39e
7
- data.tar.gz: a47641269f0fbb1a7e791f0018ef81a4f0a36a58bda5b04c4c93fa4ebd991934ac04bb220f9d66790372accb79747c8c1f590ce135cd16c542c17f32d3052404
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 :instrument, :surveil, to: :class
34
- protected :instrument, :surveil
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
- class_methods do
50
- def instrument(severity, event, **data, &block)
51
- ActiveSupport::Notifications.instrument("#{event}.#{name}.#{severity}", data, &block).tap do
52
- # If a block was defined, :instrument will return the value of the block.
53
- # Otherwise, :instrument will return nil, since it didn't do anything.
54
- # Returning true here allows us to do fun things like `info :subscription_created and return subscription`
55
- return true unless block_given?
56
- end
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
- instrument(severity, "#{event}_started", **data)
63
- instrument(severity, "#{event}_finished", &block)
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| instrument(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
- instrument(
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
- instrument severity, exception.name.demodulize, message: message, **data, &block
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
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Technologic
4
4
  # This constant is managed by spicerack
5
- VERSION = "0.25.2"
5
+ VERSION = "0.25.7"
6
6
  end
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.2
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: 2020-10-16 00:00:00.000000000 Z
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.2
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.2
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.2
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: