coaster 1.3.6 → 1.3.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: b02f79c7d532c329c31d1a0447b62cc35fe42f53292504a3c23f1972716da2c3
4
- data.tar.gz: 65adb3dcaff69b3dc0dce3a9ebd46da13477aef544ef22bfedd08cc2fa925f56
3
+ metadata.gz: 03f82d0ec684919dbdd18695f9c9b44accf45defa3260b7fcfeaadaf511b5869
4
+ data.tar.gz: 963dd53ba23fe26a009308b6065d25d58ec0a32713980479840f86d4fd71ed71
5
5
  SHA512:
6
- metadata.gz: c3943edf41f83c52e861b672e6c47ff6b3f5bd974195d4e8a492e11586c86b4c643dc52e24edbc5e15bc081453a243a1bd4148c4f029837c4d90417d4303a176
7
- data.tar.gz: 555ef999a7d0fa9f3b0ecdcc416d70724af1801a049b86d5877d126236c70b097fea9701a36226e7c1cfea416cf8008bde81e5551a149ed7d0449d303e47ecc3
6
+ metadata.gz: ce52bb11a0aa053e521ff7261b079ae47e424846ecb7937596112cb5ec2a42b56a0f13afddb222a1c1bc333685f94c9fc97478865067fd44b1ce9eb5596515be
7
+ data.tar.gz: 7b6278654542c48270b3c817d1bf15f404da41c0bf36d546f9f7dac2f229a322c119fe0760690acd7011511433808a8fa228e8d62b53300cb21fc0bb9a3af9a9
@@ -0,0 +1,69 @@
1
+ class StandardError
2
+ attr_writer :raven
3
+
4
+ alias_method :initialize_original, :initialize
5
+ def initialize(message = nil, cause = $!)
6
+ initialize_original(message, cause)
7
+ @raven = (attributes.delete(:raven) || attributes.delete(:sentry) || {}).with_indifferent_access
8
+ end
9
+
10
+ def raven
11
+ @raven ||= {}.with_indifferent_access
12
+ end
13
+
14
+ def raven_fingerprint
15
+ (fingerprint || Coaster.default_fingerprint).flatten.map do |fp|
16
+ if fp == true || fp == :class
17
+ self.class.name
18
+ elsif fp == :default
19
+ '{{ default }}'
20
+ else
21
+ fp
22
+ end
23
+ end.flatten
24
+ end
25
+
26
+ def notes(options = {})
27
+ opts = options ? options.dup : {}
28
+ extra_opts = opts.slice!(:fingerprint, :tags, :level, :extra)
29
+ opts[:extra] = extra_opts.merge(opts[:extra] || {})
30
+ nt = raven.merge(opts)
31
+
32
+ nt[:tags] ||= (tags && tags.merge(nt[:tags] || {})) || {}
33
+ nt[:tags] = nt[:tags].merge(environment: Rails.env) if defined?(Rails)
34
+ nt[:level] ||= self.level
35
+ nt[:extra] = attributes.merge(nt[:extra])
36
+ nt
37
+ end
38
+
39
+ def capture(options = {})
40
+ return if options.key?(:report) && !options[:report]
41
+ return unless report?
42
+ nt = notes(options)
43
+ Sentry.capture_exception(self, level: nt[:level]) do |scope|
44
+ scope.user.merge!(nt[:user] || {})
45
+ scope.tags.merge!(nt[:tags])
46
+ scope.extra.merge!(nt[:extra])
47
+ scope.fingerprint = raven_fingerprint
48
+ end
49
+ rescue => e
50
+ msg = "#{e.class.name}: #{e.message}"
51
+ msg += "\n\t" + e.backtrace.join("\n\t")
52
+ Sentry.logger.error(msg)
53
+ end
54
+
55
+ # options
56
+ # :logger
57
+ # :cleaner
58
+ # :fingerprint
59
+ # :tags
60
+ # :level
61
+ # :extra
62
+ # :report
63
+ # and others are merged to extra
64
+ alias_method :just_logging, :logging
65
+ def logging(options = {})
66
+ capture(options)
67
+ just_logging(options)
68
+ end
69
+ end
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.3.6'
2
+ VERSION = '1.3.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-07 00:00:00.000000000 Z
11
+ date: 2021-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -155,6 +155,7 @@ files:
155
155
  - lib/coaster/core_ext/require_more.rb
156
156
  - lib/coaster/core_ext/standard_error.rb
157
157
  - lib/coaster/core_ext/standard_error/raven.rb
158
+ - lib/coaster/core_ext/standard_error/sentry.rb
158
159
  - lib/coaster/serialized_properties.rb
159
160
  - lib/coaster/version.rb
160
161
  - test/locales/en.yml
@@ -165,7 +166,7 @@ homepage: http://github.com/frograms/coaster
165
166
  licenses:
166
167
  - MIT
167
168
  metadata: {}
168
- post_install_message:
169
+ post_install_message:
169
170
  rdoc_options: []
170
171
  require_paths:
171
172
  - lib
@@ -180,12 +181,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
181
  - !ruby/object:Gem::Version
181
182
  version: '0'
182
183
  requirements: []
183
- rubygems_version: 3.2.22
184
- signing_key:
184
+ rubygems_version: 3.1.6
185
+ signing_key:
185
186
  specification_version: 4
186
187
  summary: A little convenient feature for standard library
187
188
  test_files:
188
189
  - test/locales/en.yml
190
+ - test/test_standard_error.rb
189
191
  - test/test_helper.rb
190
192
  - test/test_object_translation.rb
191
- - test/test_standard_error.rb