exceptify 1.0.0

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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.rdoc +16 -0
  3. data/CODE_OF_CONDUCT.md +22 -0
  4. data/CONTRIBUTING.md +33 -0
  5. data/MIT-LICENSE +23 -0
  6. data/README.md +534 -0
  7. data/RELEASING.md +51 -0
  8. data/Rakefile +25 -0
  9. data/docs/notifiers/custom.md +42 -0
  10. data/docs/notifiers/datadog.md +51 -0
  11. data/docs/notifiers/email.md +195 -0
  12. data/docs/notifiers/slack.md +154 -0
  13. data/docs/notifiers/sns.md +37 -0
  14. data/docs/notifiers/teams.md +54 -0
  15. data/docs/notifiers/webhook.md +60 -0
  16. data/exceptify.gemspec +48 -0
  17. data/lib/exceptify/base_notifier.rb +30 -0
  18. data/lib/exceptify/configuration.rb +184 -0
  19. data/lib/exceptify/datadog_notifier.rb +160 -0
  20. data/lib/exceptify/dispatcher.rb +49 -0
  21. data/lib/exceptify/email_notifier.rb +208 -0
  22. data/lib/exceptify/modules/backtrace_cleaner.rb +13 -0
  23. data/lib/exceptify/modules/error_grouping.rb +170 -0
  24. data/lib/exceptify/modules/formatter.rb +119 -0
  25. data/lib/exceptify/notification.rb +71 -0
  26. data/lib/exceptify/notifier.rb +19 -0
  27. data/lib/exceptify/notifier_registry.rb +55 -0
  28. data/lib/exceptify/rack.rb +88 -0
  29. data/lib/exceptify/rails/runner_tie.rb +57 -0
  30. data/lib/exceptify/rails.rb +29 -0
  31. data/lib/exceptify/rake.rb +59 -0
  32. data/lib/exceptify/request_context.rb +35 -0
  33. data/lib/exceptify/resque.rb +25 -0
  34. data/lib/exceptify/sidekiq.rb +15 -0
  35. data/lib/exceptify/slack_notifier.rb +141 -0
  36. data/lib/exceptify/sns_notifier.rb +98 -0
  37. data/lib/exceptify/solid_queue.rb +68 -0
  38. data/lib/exceptify/teams_notifier.rb +209 -0
  39. data/lib/exceptify/version.rb +5 -0
  40. data/lib/exceptify/views/exceptify/_backtrace.html.erb +3 -0
  41. data/lib/exceptify/views/exceptify/_backtrace.text.erb +1 -0
  42. data/lib/exceptify/views/exceptify/_data.html.erb +6 -0
  43. data/lib/exceptify/views/exceptify/_data.text.erb +1 -0
  44. data/lib/exceptify/views/exceptify/_environment.html.erb +10 -0
  45. data/lib/exceptify/views/exceptify/_environment.text.erb +5 -0
  46. data/lib/exceptify/views/exceptify/_request.html.erb +36 -0
  47. data/lib/exceptify/views/exceptify/_request.text.erb +10 -0
  48. data/lib/exceptify/views/exceptify/_session.html.erb +10 -0
  49. data/lib/exceptify/views/exceptify/_session.text.erb +2 -0
  50. data/lib/exceptify/views/exceptify/_title.html.erb +3 -0
  51. data/lib/exceptify/views/exceptify/_title.text.erb +3 -0
  52. data/lib/exceptify/views/exceptify/background_exceptify.html.erb +53 -0
  53. data/lib/exceptify/views/exceptify/background_exceptify.text.erb +14 -0
  54. data/lib/exceptify/views/exceptify/exceptify.html.erb +52 -0
  55. data/lib/exceptify/views/exceptify/exceptify.text.erb +24 -0
  56. data/lib/exceptify/webhook_notifier.rb +63 -0
  57. data/lib/exceptify.rb +177 -0
  58. data/lib/generators/exceptify/install_generator.rb +24 -0
  59. data/lib/generators/exceptify/templates/exceptify.rb.erb +44 -0
  60. metadata +364 -0
metadata ADDED
@@ -0,0 +1,364 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: exceptify
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - lukin.io
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: actionmailer
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9'
32
+ - !ruby/object:Gem::Dependency
33
+ name: activesupport
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '7.1'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '9'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '7.1'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '9'
52
+ - !ruby/object:Gem::Dependency
53
+ name: cgi
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '0.5'
59
+ type: :runtime
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - "~>"
64
+ - !ruby/object:Gem::Version
65
+ version: '0.5'
66
+ - !ruby/object:Gem::Dependency
67
+ name: aws-sdk-sns
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '1'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1'
80
+ - !ruby/object:Gem::Dependency
81
+ name: dogapi
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 1.23.0
87
+ - - "<"
88
+ - !ruby/object:Gem::Version
89
+ version: '2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.23.0
97
+ - - "<"
98
+ - !ruby/object:Gem::Version
99
+ version: '2'
100
+ - !ruby/object:Gem::Dependency
101
+ name: httparty
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 0.10.2
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 0.10.2
114
+ - !ruby/object:Gem::Dependency
115
+ name: mocha
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 2.7.1
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: '4'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 2.7.1
131
+ - - "<"
132
+ - !ruby/object:Gem::Version
133
+ version: '4'
134
+ - !ruby/object:Gem::Dependency
135
+ name: mock_redis
136
+ requirement: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 0.19.0
141
+ type: :development
142
+ prerelease: false
143
+ version_requirements: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: 0.19.0
148
+ - !ruby/object:Gem::Dependency
149
+ name: net-smtp
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '0.5'
155
+ type: :development
156
+ prerelease: false
157
+ version_requirements: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '0.5'
162
+ - !ruby/object:Gem::Dependency
163
+ name: ostruct
164
+ requirement: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '0.6'
169
+ type: :development
170
+ prerelease: false
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '0.6'
176
+ - !ruby/object:Gem::Dependency
177
+ name: rails
178
+ requirement: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 8.0.2
183
+ - - "<"
184
+ - !ruby/object:Gem::Version
185
+ version: '9'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 8.0.2
193
+ - - "<"
194
+ - !ruby/object:Gem::Version
195
+ version: '9'
196
+ - !ruby/object:Gem::Dependency
197
+ name: resque
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: 1.8.0
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: 1.8.0
210
+ - !ruby/object:Gem::Dependency
211
+ name: sidekiq
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: 7.1.0
217
+ - - "<"
218
+ - !ruby/object:Gem::Version
219
+ version: '9'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: 7.1.0
227
+ - - "<"
228
+ - !ruby/object:Gem::Version
229
+ version: '9'
230
+ - !ruby/object:Gem::Dependency
231
+ name: slack-notifier
232
+ requirement: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: 1.0.0
237
+ - - "<"
238
+ - !ruby/object:Gem::Version
239
+ version: '3'
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: 1.0.0
247
+ - - "<"
248
+ - !ruby/object:Gem::Version
249
+ version: '3'
250
+ - !ruby/object:Gem::Dependency
251
+ name: standard
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '1.54'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '1.54'
264
+ - !ruby/object:Gem::Dependency
265
+ name: timecop
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: 0.9.0
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: 0.9.0
278
+ executables: []
279
+ extensions: []
280
+ extra_rdoc_files: []
281
+ files:
282
+ - CHANGELOG.rdoc
283
+ - CODE_OF_CONDUCT.md
284
+ - CONTRIBUTING.md
285
+ - MIT-LICENSE
286
+ - README.md
287
+ - RELEASING.md
288
+ - Rakefile
289
+ - docs/notifiers/custom.md
290
+ - docs/notifiers/datadog.md
291
+ - docs/notifiers/email.md
292
+ - docs/notifiers/slack.md
293
+ - docs/notifiers/sns.md
294
+ - docs/notifiers/teams.md
295
+ - docs/notifiers/webhook.md
296
+ - exceptify.gemspec
297
+ - lib/exceptify.rb
298
+ - lib/exceptify/base_notifier.rb
299
+ - lib/exceptify/configuration.rb
300
+ - lib/exceptify/datadog_notifier.rb
301
+ - lib/exceptify/dispatcher.rb
302
+ - lib/exceptify/email_notifier.rb
303
+ - lib/exceptify/modules/backtrace_cleaner.rb
304
+ - lib/exceptify/modules/error_grouping.rb
305
+ - lib/exceptify/modules/formatter.rb
306
+ - lib/exceptify/notification.rb
307
+ - lib/exceptify/notifier.rb
308
+ - lib/exceptify/notifier_registry.rb
309
+ - lib/exceptify/rack.rb
310
+ - lib/exceptify/rails.rb
311
+ - lib/exceptify/rails/runner_tie.rb
312
+ - lib/exceptify/rake.rb
313
+ - lib/exceptify/request_context.rb
314
+ - lib/exceptify/resque.rb
315
+ - lib/exceptify/sidekiq.rb
316
+ - lib/exceptify/slack_notifier.rb
317
+ - lib/exceptify/sns_notifier.rb
318
+ - lib/exceptify/solid_queue.rb
319
+ - lib/exceptify/teams_notifier.rb
320
+ - lib/exceptify/version.rb
321
+ - lib/exceptify/views/exceptify/_backtrace.html.erb
322
+ - lib/exceptify/views/exceptify/_backtrace.text.erb
323
+ - lib/exceptify/views/exceptify/_data.html.erb
324
+ - lib/exceptify/views/exceptify/_data.text.erb
325
+ - lib/exceptify/views/exceptify/_environment.html.erb
326
+ - lib/exceptify/views/exceptify/_environment.text.erb
327
+ - lib/exceptify/views/exceptify/_request.html.erb
328
+ - lib/exceptify/views/exceptify/_request.text.erb
329
+ - lib/exceptify/views/exceptify/_session.html.erb
330
+ - lib/exceptify/views/exceptify/_session.text.erb
331
+ - lib/exceptify/views/exceptify/_title.html.erb
332
+ - lib/exceptify/views/exceptify/_title.text.erb
333
+ - lib/exceptify/views/exceptify/background_exceptify.html.erb
334
+ - lib/exceptify/views/exceptify/background_exceptify.text.erb
335
+ - lib/exceptify/views/exceptify/exceptify.html.erb
336
+ - lib/exceptify/views/exceptify/exceptify.text.erb
337
+ - lib/exceptify/webhook_notifier.rb
338
+ - lib/generators/exceptify/install_generator.rb
339
+ - lib/generators/exceptify/templates/exceptify.rb.erb
340
+ homepage: https://github.com/lukin-io/exceptify
341
+ licenses:
342
+ - MIT
343
+ metadata:
344
+ bug_tracker_uri: https://github.com/lukin-io/exceptify/issues
345
+ changelog_uri: https://github.com/lukin-io/exceptify/blob/main/CHANGELOG.rdoc
346
+ source_code_uri: https://github.com/lukin-io/exceptify
347
+ rdoc_options: []
348
+ require_paths:
349
+ - lib
350
+ required_ruby_version: !ruby/object:Gem::Requirement
351
+ requirements:
352
+ - - ">="
353
+ - !ruby/object:Gem::Version
354
+ version: 3.4.4
355
+ required_rubygems_version: !ruby/object:Gem::Requirement
356
+ requirements:
357
+ - - ">="
358
+ - !ruby/object:Gem::Version
359
+ version: '0'
360
+ requirements: []
361
+ rubygems_version: 3.6.7
362
+ specification_version: 4
363
+ summary: Exception notification for Ruby applications
364
+ test_files: []