coaster 1.3.2 → 1.3.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: 25d78eb2f5780582358622b301ce8bc56b65a317bebf07bfdd5d719b18701cca
4
- data.tar.gz: 9862b67c209853c1a049e5769e503167e0a76fe687ab479755e3272b052dca5d
3
+ metadata.gz: b02f79c7d532c329c31d1a0447b62cc35fe42f53292504a3c23f1972716da2c3
4
+ data.tar.gz: 65adb3dcaff69b3dc0dce3a9ebd46da13477aef544ef22bfedd08cc2fa925f56
5
5
  SHA512:
6
- metadata.gz: c39ebfe2f732a1f44d0c9d4bdcd0b5a81c1a7fc6b3f76f150be78c83c4fccd6a90b6b4333efd91e0b57194462dd31c58c97bf8225ada59c01efcb3c43b4f313a
7
- data.tar.gz: f9915989ceac91f5891ede0dd40ce66c7e4e26f2d6628e508123ee75cb7229e125fe0567576b26f8ecf5e1ab87445ede8699d88d313c431c3968dc2ac8a60090
6
+ metadata.gz: c3943edf41f83c52e861b672e6c47ff6b3f5bd974195d4e8a492e11586c86b4c643dc52e24edbc5e15bc081453a243a1bd4148c4f029837c4d90417d4303a176
7
+ data.tar.gz: 555ef999a7d0fa9f3b0ecdcc416d70724af1801a049b86d5877d126236c70b097fea9701a36226e7c1cfea416cf8008bde81e5551a149ed7d0449d303e47ecc3
@@ -1,3 +1,4 @@
1
+ require_relative 'core_ext/require_more'
1
2
  require_relative 'core_ext/array'
2
3
  require_relative 'core_ext/date'
3
4
  require_relative 'core_ext/month'
@@ -0,0 +1,22 @@
1
+ def require_more
2
+ required_file_path = caller[0].split(':', 2).first
3
+ load_name = nil
4
+ load_path_index = $LOAD_PATH.each_with_index do |load_path, ix|
5
+ scanned = required_file_path.scan(/(#{load_path})#{File::SEPARATOR}(.*)/).first
6
+ next false unless scanned
7
+ load_name = scanned[1]
8
+ break ix
9
+ end
10
+
11
+ return false unless load_path_index
12
+
13
+ more_load_paths = $LOAD_PATH.drop(load_path_index + 1)
14
+ more_load_paths.each do |load_path|
15
+ path = File.join(load_path, load_name)
16
+ if File.exists?(path)
17
+ return require_dependency path
18
+ end
19
+ end
20
+
21
+ raise LoadError, "cannot require more -- #{load_name}"
22
+ end
@@ -53,6 +53,7 @@ class StandardError
53
53
  msg = message
54
54
  set_backtrace(message.backtrace)
55
55
  when Hash then
56
+ @coaster = true # coaster 확장을 사용한 에러임을 확인할 수 있음.
56
57
  hash = message.with_indifferent_access rescue message
57
58
  msg = hash.delete(:m)
58
59
  msg = hash.delete(:msg) || msg
@@ -63,6 +64,12 @@ class StandardError
63
64
  @level = hash.delete(:level) || hash.delete(:severity) || @level
64
65
  @tkey = hash.delete(:tkey)
65
66
  @attributes.merge!(hash)
67
+ if @attributes[:description] == :translate
68
+ @attributes.delete(:description)
69
+ @attributes[:description] = _translate
70
+ end
71
+ msg = "#{_translate} (#{msg || self.class.name})"
72
+ msg = "#{msg} {#{cause.message}}" if cause
66
73
  when String then
67
74
  msg = message
68
75
  when FalseClass, NilClass then
@@ -73,7 +80,7 @@ class StandardError
73
80
 
74
81
  @fingerprint = [] unless @fingerprint.is_a?(Array)
75
82
  @tags = {} unless @tags.is_a?(Hash)
76
- msg = cause.message if msg.blank? && cause
83
+ msg = "{#{cause.message}}" if msg.blank? && cause
77
84
  super(msg)
78
85
  end
79
86
 
@@ -115,9 +122,7 @@ class StandardError
115
122
 
116
123
  # description is user friendly message as a attribute, do not use error's message
117
124
  # error message is not user friendly in many cases.
118
- def description
119
- attributes[:description] || attributes[:desc]
120
- end
125
+ def description; attributes[:description] || attributes[:desc] end
121
126
  alias_method :desc, :description
122
127
 
123
128
  def _translate(*args)
@@ -131,10 +136,8 @@ class StandardError
131
136
 
132
137
  # user friendly message, for overid
133
138
  def user_message
134
- return description if description.present?
135
- if tkey.present?
136
- return _translate
137
- end
139
+ return _translate if description.present? || tkey.present?
140
+ return "#{_translate} (#{message})" unless defined?(@coaster)
138
141
  message
139
142
  end
140
143
 
@@ -145,15 +148,6 @@ class StandardError
145
148
  attributes[:descriptions]
146
149
  end
147
150
 
148
- # https://github.com/getsentry/sentry-ruby/blob/fbbc7a51ed10684d0e8b7bd9d2a1b65a7351c9ef/lib/raven/event.rb#L162
149
- # sentry message use `to_s` method
150
- # https://ruby-doc.org/core-2.5.1/Exception.html#method-i-to_s
151
- alias to_origin_s to_s
152
-
153
- def to_s
154
- "#{_translate} (#{to_origin_s})"
155
- end
156
-
157
151
  def to_hash
158
152
  hash = attributes.merge(
159
153
  type: self.class.name, status: status,
@@ -177,7 +171,7 @@ class StandardError
177
171
  lg = "[#{self.class.name}] status:#{status}"
178
172
  lg += "\n\tMESSAGE: #{safe_message.gsub(/\n/, "\n\t\t")}"
179
173
  instance_variables.each do |var|
180
- if var.to_s.start_with?('@_')
174
+ if var.to_s.start_with?('@_') || var.to_s == '@coaster'
181
175
  next
182
176
  elsif var.to_s == '@spell_checker'
183
177
  next
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.3.2'
2
+ VERSION = '1.3.6'
3
3
  end
@@ -22,8 +22,8 @@ module Coaster
22
22
 
23
23
  def test_standard_messages
24
24
  e = StandardError.new('developer message')
25
- assert_equal "standard error translation (developer message)", e.to_s
26
- assert_equal "standard error translation (developer message)", e.message
25
+ assert_equal "developer message", e.to_s
26
+ assert_equal "developer message", e.message
27
27
  assert_nil e.description
28
28
  assert_nil e.desc
29
29
  assert_equal 'standard error translation', e._translate
@@ -41,8 +41,8 @@ module Coaster
41
41
 
42
42
  def test_no_translation_class
43
43
  e = UntitledError.new('developer message')
44
- assert_equal "standard error translation (developer message)", e.to_s
45
- assert_equal "standard error translation (developer message)", e.message
44
+ assert_equal "developer message", e.to_s
45
+ assert_equal "developer message", e.message
46
46
  assert_nil e.description
47
47
  assert_nil e.desc
48
48
  assert_equal 'standard error translation', e._translate
@@ -68,8 +68,8 @@ module Coaster
68
68
 
69
69
  def test_with_translation_class
70
70
  e = SampleError.new
71
- assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_s
72
- assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.message
71
+ assert_equal "Coaster::TestStandardError::SampleError", e.to_s
72
+ assert_equal "Coaster::TestStandardError::SampleError", e.message
73
73
  assert_nil e.description
74
74
  assert_nil e.desc
75
75
  assert_equal 'Test sample error', e._translate
@@ -84,13 +84,36 @@ module Coaster
84
84
  assert_equal 'Test sample error (Coaster::TestStandardError::SampleError)', e.user_message
85
85
  assert_equal 'Test this title', e.title
86
86
  e = SampleError.new('developer message')
87
- assert_equal "Test sample error (developer message)", e.to_s
88
- assert_equal "Test sample error (developer message)", e.message
87
+ assert_equal "developer message", e.to_s
88
+ assert_equal "developer message", e.message
89
89
  assert_nil e.description
90
90
  assert_nil e.desc
91
91
  assert_equal 'Test sample error', e._translate
92
92
  assert_equal 'Test sample error (developer message)', e.user_message
93
93
  assert_equal 'Test this title', e.title
94
+ e = SampleError.new(desc: 'user message')
95
+ assert_equal "user message (Coaster::TestStandardError::SampleError)", e.to_s
96
+ assert_equal "user message (Coaster::TestStandardError::SampleError)", e.message
97
+ assert_equal 'user message', e.description
98
+ assert_equal 'user message', e.desc
99
+ assert_equal 'user message', e._translate
100
+ assert_equal 'user message', e.user_message
101
+ assert_equal 'Test this title', e.title
102
+ e = SampleError.new(m: 'developer message', desc: :translate)
103
+ assert_equal "Test sample error (developer message)", e.to_s
104
+ assert_equal "Test sample error (developer message)", e.message
105
+ assert_equal "Test sample error", e.description
106
+ assert_equal "Test sample error", e.desc
107
+ assert_equal 'Test sample error', e._translate
108
+ assert_equal 'Test sample error', e.user_message
109
+ assert_equal 'Test this title', e.title
110
+ e = SampleError.new(desc: :translate)
111
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_s
112
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.message
113
+ assert_equal "Test sample error", e.description
114
+ assert_equal "Test sample error", e.desc
115
+ assert_equal "Test sample error", e._translate
116
+ assert_equal "Test sample error", e.user_message
94
117
  e = SampleError.new(m: 'developer message', desc: 'user message')
95
118
  assert_equal "user message (developer message)", e.to_s
96
119
  assert_equal "user message (developer message)", e.message
@@ -132,7 +155,7 @@ module Coaster
132
155
  assert_equal 'Coaster::TestStandardError::ExampleError', e.to_hash['type']
133
156
  assert_equal 20, e.to_hash['status']
134
157
  assert_equal 500, e.to_hash['http_status']
135
- assert_equal "Test example error (Test sample error (#{SampleError.name}))", e.to_hash['message']
158
+ assert_equal "Test example error (Coaster::TestStandardError::ExampleError) {Test sample error (Coaster::TestStandardError::SampleError)}", e.to_hash['message']
136
159
  assert_equal 'rams', e.to_hash['cause']['frog']
137
160
  assert_equal 'Coaster::TestStandardError::SampleError', e.to_hash['cause']['type']
138
161
  assert_equal 10, e.to_hash['cause']['status']
@@ -144,9 +167,10 @@ module Coaster
144
167
  begin
145
168
  raise SampleError, {frog: 'rams'}
146
169
  rescue => e
147
- raise ExampleError, {wat: 'cha'}
170
+ raise ExampleError, {m: 'abc', wat: 'cha'}
148
171
  end
149
172
  rescue => e
173
+ assert_equal 'Test example error (abc) {Test sample error (Coaster::TestStandardError::SampleError)}', e.message
150
174
  assert_equal 'rams', e.cause.attr['frog']
151
175
  assert_equal 'rams', e.attr['frog']
152
176
  assert_equal 'cha', e.attr['wat']
@@ -161,7 +185,7 @@ module Coaster
161
185
  rescue => e
162
186
  detail = <<-LOG
163
187
  [Coaster::TestStandardError::ExampleError] status:20
164
- MESSAGE: Test example error (Test sample error (Coaster::TestStandardError::SampleError))
188
+ MESSAGE: Test example error (Coaster::TestStandardError::ExampleError) {Test sample error (Coaster::TestStandardError::SampleError)}
165
189
  @fingerprint: []
166
190
  @tags: {}
167
191
  @level: \"error\"
@@ -218,7 +242,7 @@ LOG
218
242
  begin
219
243
  root_cause_sample3
220
244
  rescue => e
221
- assert_equal "standard error translation (a)", e.root_cause.message
245
+ assert_equal "a", e.root_cause.message
222
246
  end
223
247
  end
224
248
 
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.2
4
+ version: 1.3.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-10-14 00:00:00.000000000 Z
11
+ date: 2021-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -152,6 +152,7 @@ files:
152
152
  - lib/coaster/core_ext/date.rb
153
153
  - lib/coaster/core_ext/month.rb
154
154
  - lib/coaster/core_ext/object_translation.rb
155
+ - lib/coaster/core_ext/require_more.rb
155
156
  - lib/coaster/core_ext/standard_error.rb
156
157
  - lib/coaster/core_ext/standard_error/raven.rb
157
158
  - lib/coaster/serialized_properties.rb
@@ -179,12 +180,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
180
  - !ruby/object:Gem::Version
180
181
  version: '0'
181
182
  requirements: []
182
- rubygems_version: 3.1.2
183
+ rubygems_version: 3.2.22
183
184
  signing_key:
184
185
  specification_version: 4
185
186
  summary: A little convenient feature for standard library
186
187
  test_files:
187
- - test/test_object_translation.rb
188
+ - test/locales/en.yml
188
189
  - test/test_helper.rb
190
+ - test/test_object_translation.rb
189
191
  - test/test_standard_error.rb
190
- - test/locales/en.yml