coaster 1.3.6 → 1.3.7

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: 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