coaster 1.0.5 → 1.0.6

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: 71910814edd2fcc1011e2f7bbc0d5003d3ffacca49d8a60f4869859d7c911afd
4
- data.tar.gz: 5898b403bcb2263ff96c70721f724b5f91d9e52dff474f90a9ea854effba5676
3
+ metadata.gz: cb23e4c7362906cc9877bde117d7f1027adc08726b718526dd16bfe967355553
4
+ data.tar.gz: f23ecb00881002158f99bc56daa261317f54b0620de3c6766b4fab93dc0d1e31
5
5
  SHA512:
6
- metadata.gz: dd1a8ee8e2f472633ef7ea34588cde48d77cb053ad186aac02702c806afbb4dd8829ece4892e456413ca6c840afa77d637f9fa2e068922319b4a4bd850ded75e
7
- data.tar.gz: 8996da8e600df0d704353b89daba9f2c97b4261e4b77c7be32aa32644cb8c8018ef8b4f323de6186f5e6deeabe44f304ca0979a4c1b96abf714300487e0d11db
6
+ metadata.gz: b95bdef229ab03c481d31bf5f768ab9e1dec2a7d4d638d3bf1418da33e0665759030de2ef621fad94860b697373b8988dbe61b7955c479e7c9c1e3288c4ac656
7
+ data.tar.gz: 57982252eddf851fe0245a8b141aeaab2e3213219ef49688ef59004cf9478054a1849e016f80289b5f3e93e2ec84f8b022fb3e8991bfc602aa1401709eebf481
@@ -14,6 +14,24 @@ class StandardError
14
14
  t = _translate('.title')
15
15
  t.instance_variable_defined?(:@missing) ? nil : t
16
16
  end
17
+
18
+ def before_logging(name, &block)
19
+ @before_logging_blocks ||= {}
20
+ @before_logging_blocks[name] = block
21
+ end
22
+ def before_logging_blocks
23
+ @before_logging_blocks ||= {}
24
+ superclass <= StandardError ? superclass.after_logging_blocks.merge(@before_logging_blocks) : @before_logging_blocks
25
+ end
26
+
27
+ def after_logging(name, &block)
28
+ @after_logging_blocks ||= {}
29
+ @after_logging_blocks[name] = block
30
+ end
31
+ def after_logging_blocks
32
+ @after_logging_blocks ||= {}
33
+ superclass <= StandardError ? superclass.after_logging_blocks.merge(@after_logging_blocks) : @after_logging_blocks
34
+ end
17
35
  end
18
36
 
19
37
  attr_accessor :tags, :level, :tkey, :fingerprint
@@ -65,6 +83,8 @@ class StandardError
65
83
 
66
84
  def safe_message; message || '' end
67
85
  def status; self.class.status end
86
+ def before_logging_blocks; self.class.before_logging_blocks end
87
+ def after_logging_blocks; self.class.after_logging_blocks end
68
88
  def root_cause; cause.respond_to?(:root_cause) ? cause.root_cause : self end
69
89
 
70
90
  def attributes
@@ -172,6 +192,8 @@ class StandardError
172
192
  end
173
193
 
174
194
  def logging(options = {})
195
+ before_logging_blocks.values.each { |blk| instance_exec &blk }
196
+
175
197
  return unless report?
176
198
  logger = nil
177
199
  if defined?(Rails)
@@ -196,5 +218,7 @@ class StandardError
196
218
  else
197
219
  logger.error(msg)
198
220
  end
221
+
222
+ after_logging_blocks.values.each { |blk| instance_exec &blk }
199
223
  end
200
224
  end
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.0.5'
2
+ VERSION = '1.0.6'
3
3
  end
@@ -6,3 +6,8 @@ require 'pry'
6
6
  require 'rubygems'
7
7
  require 'bundler/setup'
8
8
  require 'coaster'
9
+
10
+ class Raven
11
+ def self.capture_exception(*args)
12
+ end
13
+ end
@@ -155,5 +155,15 @@ LOG
155
155
  e.descriptions.merge!(a: 1)
156
156
  assert_equal e.descriptions['a'], 1
157
157
  end
158
+
159
+ class SampleErrorSub < SampleError; end
160
+ class SampleErrorSubSub < SampleErrorSub; end
161
+ SampleError.after_logging(:blah) { @blah = 101 }
162
+ def test_before_logging
163
+ e = SampleErrorSubSub.new(m: 'foo')
164
+ assert !e.after_logging_blocks[:blah].nil?
165
+ e.logging
166
+ assert_equal e.instance_variable_get(:@blah), 101
167
+ end
158
168
  end
159
169
  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.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-08 00:00:00.000000000 Z
11
+ date: 2020-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -226,7 +226,7 @@ signing_key:
226
226
  specification_version: 4
227
227
  summary: A little convenient feature for standard library
228
228
  test_files:
229
- - test/test_helper.rb
230
- - test/test_standard_error.rb
231
229
  - test/locales/en.yml
230
+ - test/test_standard_error.rb
231
+ - test/test_helper.rb
232
232
  - test/test_object_translation.rb