alchemrest-sentry 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 (122) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.rubocop_todo.yml +20 -0
  5. data/.ruby-version +1 -0
  6. data/Appraisals +9 -0
  7. data/Gemfile +8 -0
  8. data/Gemfile.lock +385 -0
  9. data/README.md +30 -0
  10. data/Rakefile +29 -0
  11. data/alchemrest-sentry.gemspec +53 -0
  12. data/coach.yml +5 -0
  13. data/gemfiles/rails_7_0.gemfile.lock +341 -0
  14. data/gemfiles/rails_7_2.gemfile +8 -0
  15. data/gemfiles/rails_7_2.gemfile.lock +376 -0
  16. data/gemfiles/rails_8_0.gemfile +8 -0
  17. data/gemfiles/rails_8_0.gemfile.lock +377 -0
  18. data/lib/alchemrest/sentry/version.rb +7 -0
  19. data/lib/alchemrest/sentry.rb +54 -0
  20. data/lib/alchemrest_sentry.rb +5 -0
  21. data/mutant.yml +16 -0
  22. data/sorbet/config +5 -0
  23. data/sorbet/rbi/gems/.gitattributes +1 -0
  24. data/sorbet/rbi/gems/abstract_type@0.0.7.rbi +41 -0
  25. data/sorbet/rbi/gems/actionpack@8.0.2.rbi +9 -0
  26. data/sorbet/rbi/gems/actionview@8.0.2.rbi +9 -0
  27. data/sorbet/rbi/gems/activemodel@8.0.2.rbi +2891 -0
  28. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +9301 -0
  29. data/sorbet/rbi/gems/adamantium@0.2.0.rbi +144 -0
  30. data/sorbet/rbi/gems/addressable@2.8.7.rbi +779 -0
  31. data/sorbet/rbi/gems/alchemrest@3.1.0.rbi +2455 -0
  32. data/sorbet/rbi/gems/anima@0.3.2.rbi +103 -0
  33. data/sorbet/rbi/gems/ast@2.4.3.rbi +107 -0
  34. data/sorbet/rbi/gems/base64@0.3.0.rbi +52 -0
  35. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +147 -0
  36. data/sorbet/rbi/gems/bigdecimal@3.2.0.rbi +29 -0
  37. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  38. data/sorbet/rbi/gems/circuitbox@2.0.0.rbi +297 -0
  39. data/sorbet/rbi/gems/concord@0.1.6.rbi +51 -0
  40. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +4716 -0
  41. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  42. data/sorbet/rbi/gems/crack@1.0.0.rbi +110 -0
  43. data/sorbet/rbi/gems/crass@1.0.6.rbi +9 -0
  44. data/sorbet/rbi/gems/date@3.4.1.rbi +58 -0
  45. data/sorbet/rbi/gems/drb@2.2.3.rbi +639 -0
  46. data/sorbet/rbi/gems/equalizer@0.0.11.rbi +38 -0
  47. data/sorbet/rbi/gems/erb@5.0.1.rbi +306 -0
  48. data/sorbet/rbi/gems/erubi@1.13.1.rbi +85 -0
  49. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +143 -0
  50. data/sorbet/rbi/gems/faraday@2.14.1.rbi +1797 -0
  51. data/sorbet/rbi/gems/hansi@0.2.1.rbi +392 -0
  52. data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +174 -0
  53. data/sorbet/rbi/gems/i18n@1.14.7.rbi +1328 -0
  54. data/sorbet/rbi/gems/ice_nine@0.11.2.rbi +145 -0
  55. data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
  56. data/sorbet/rbi/gems/json@2.18.1.rbi +363 -0
  57. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  58. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +103 -0
  59. data/sorbet/rbi/gems/logger@1.7.0.rbi +260 -0
  60. data/sorbet/rbi/gems/loofah@2.24.1.rbi +9 -0
  61. data/sorbet/rbi/gems/memoizable@0.4.2.rbi +131 -0
  62. data/sorbet/rbi/gems/memosa@0.8.3.rbi +185 -0
  63. data/sorbet/rbi/gems/minitest@5.25.5.rbi +824 -0
  64. data/sorbet/rbi/gems/money@6.19.0.rbi +815 -0
  65. data/sorbet/rbi/gems/morpher@0.4.2.rbi +388 -0
  66. data/sorbet/rbi/gems/mprelude@0.1.0.rbi +140 -0
  67. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +180 -0
  68. data/sorbet/rbi/gems/mustermann-contrib@3.0.3.rbi +658 -0
  69. data/sorbet/rbi/gems/mustermann@3.0.3.rbi +809 -0
  70. data/sorbet/rbi/gems/net-http@0.9.1.rbi +1012 -0
  71. data/sorbet/rbi/gems/netrc@0.11.0.rbi +112 -0
  72. data/sorbet/rbi/gems/nokogiri@1.19.1.rbi +9 -0
  73. data/sorbet/rbi/gems/parallel@1.27.0.rbi +234 -0
  74. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +4883 -0
  75. data/sorbet/rbi/gems/pp@0.6.2.rbi +176 -0
  76. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +155 -0
  77. data/sorbet/rbi/gems/prism@1.4.0.rbi +26357 -0
  78. data/sorbet/rbi/gems/procto@0.0.3.rbi +9 -0
  79. data/sorbet/rbi/gems/psych@5.2.6.rbi +1173 -0
  80. data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +267 -0
  81. data/sorbet/rbi/gems/racc@1.8.1.rbi +122 -0
  82. data/sorbet/rbi/gems/rack-session@2.1.1.rbi +9 -0
  83. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +9 -0
  84. data/sorbet/rbi/gems/rack@3.1.20.rbi +2801 -0
  85. data/sorbet/rbi/gems/rackup@2.2.1.rbi +132 -0
  86. data/sorbet/rbi/gems/rails-dom-testing@2.3.0.rbi +9 -0
  87. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +9 -0
  88. data/sorbet/rbi/gems/railties@8.0.2.rbi +568 -0
  89. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +333 -0
  90. data/sorbet/rbi/gems/rake@13.3.0.rbi +1955 -0
  91. data/sorbet/rbi/gems/rbi@0.3.3.rbi +4551 -0
  92. data/sorbet/rbi/gems/rbs@3.9.4.rbi +5583 -0
  93. data/sorbet/rbi/gems/rdoc@6.14.0.rbi +6843 -0
  94. data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3020 -0
  95. data/sorbet/rbi/gems/reline@0.6.1.rbi +9 -0
  96. data/sorbet/rbi/gems/rexml@3.4.1.rbi +1931 -0
  97. data/sorbet/rbi/gems/rubocop-ast@1.44.1.rbi +5236 -0
  98. data/sorbet/rbi/gems/rubocop@1.75.8.rbi +32674 -0
  99. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +980 -0
  100. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  101. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +33 -0
  102. data/sorbet/rbi/gems/sentry-ruby@5.24.0.rbi +4076 -0
  103. data/sorbet/rbi/gems/spoom@1.6.3.rbi +4612 -0
  104. data/sorbet/rbi/gems/stringio@3.1.7.rbi +9 -0
  105. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3417 -0
  106. data/sorbet/rbi/gems/thor@1.4.0.rbi +2015 -0
  107. data/sorbet/rbi/gems/thread_safe@0.3.6.rbi +711 -0
  108. data/sorbet/rbi/gems/timeout@0.4.3.rbi +80 -0
  109. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +1677 -0
  110. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +106 -0
  111. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +178 -0
  112. data/sorbet/rbi/gems/uri@1.1.1.rbi +760 -0
  113. data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
  114. data/sorbet/rbi/gems/webmock@3.25.1.rbi +1368 -0
  115. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +345 -0
  116. data/sorbet/rbi/gems/yard@0.9.37.rbi +8762 -0
  117. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +9 -0
  118. data/sorbet/tapioca/config.yml +45 -0
  119. data/sorbet/tapioca/require.rb +2 -0
  120. data/sorbet/tapioca/sorbet/rbi/dsl/.gitattributes +1 -0
  121. data/sorbet/tapioca/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  122. metadata +379 -0
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "alchemrest", path: "../../alchemrest"
6
+ gem "activesupport", "~> 8.0.0"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,377 @@
1
+ PATH
2
+ remote: ../../alchemrest
3
+ specs:
4
+ alchemrest (3.1.0)
5
+ activerecord (>= 7.2, < 8.1)
6
+ activesupport (>= 7.2, < 8.1)
7
+ circuitbox (~> 2.0.0)
8
+ faraday (>= 1.10, < 3.0)
9
+ memosa (>= 0.8.2)
10
+ money (>= 6.0)
11
+ morpher (>= 0.4.1)
12
+ multi_json (~> 1.0)
13
+ mustermann-contrib (>= 1.0)
14
+ railties (>= 7.2, < 8.1)
15
+ sentry-ruby
16
+ sorbet-runtime (>= 0.5.0)
17
+
18
+ PATH
19
+ remote: ..
20
+ specs:
21
+ alchemrest-sentry (1.0.0)
22
+ alchemrest (>= 3.0.0.pre.alpha)
23
+ sentry-ruby
24
+ sorbet-runtime (>= 0.5.0)
25
+
26
+ GEM
27
+ remote: https://rubygems.org/
28
+ specs:
29
+ abstract_type (0.0.7)
30
+ actionpack (8.0.1)
31
+ actionview (= 8.0.1)
32
+ activesupport (= 8.0.1)
33
+ nokogiri (>= 1.8.5)
34
+ rack (>= 2.2.4)
35
+ rack-session (>= 1.0.1)
36
+ rack-test (>= 0.6.3)
37
+ rails-dom-testing (~> 2.2)
38
+ rails-html-sanitizer (~> 1.6)
39
+ useragent (~> 0.16)
40
+ actionview (8.0.1)
41
+ activesupport (= 8.0.1)
42
+ builder (~> 3.1)
43
+ erubi (~> 1.11)
44
+ rails-dom-testing (~> 2.2)
45
+ rails-html-sanitizer (~> 1.6)
46
+ activemodel (8.0.1)
47
+ activesupport (= 8.0.1)
48
+ activerecord (8.0.1)
49
+ activemodel (= 8.0.1)
50
+ activesupport (= 8.0.1)
51
+ timeout (>= 0.4.0)
52
+ activesupport (8.0.1)
53
+ base64
54
+ benchmark (>= 0.3)
55
+ bigdecimal
56
+ concurrent-ruby (~> 1.0, >= 1.3.1)
57
+ connection_pool (>= 2.2.5)
58
+ drb
59
+ i18n (>= 1.6, < 2)
60
+ logger (>= 1.4.2)
61
+ minitest (>= 5.1)
62
+ securerandom (>= 0.3)
63
+ tzinfo (~> 2.0, >= 2.0.5)
64
+ uri (>= 0.13.1)
65
+ adamantium (0.2.0)
66
+ ice_nine (~> 0.11.0)
67
+ memoizable (~> 0.4.0)
68
+ addressable (2.8.7)
69
+ public_suffix (>= 2.0.2, < 7.0)
70
+ anima (0.3.2)
71
+ abstract_type (~> 0.0.7)
72
+ adamantium (~> 0.2)
73
+ equalizer (~> 0.0.11)
74
+ appraisal (2.5.0)
75
+ bundler
76
+ rake
77
+ thor (>= 0.14.0)
78
+ ast (2.4.2)
79
+ base64 (0.2.0)
80
+ benchmark (0.4.0)
81
+ betterlint (1.19.0)
82
+ rubocop (~> 1.71)
83
+ rubocop-graphql (~> 1.5)
84
+ rubocop-performance (~> 1.23)
85
+ rubocop-rails (~> 2.29)
86
+ rubocop-rake (~> 0.6)
87
+ rubocop-rspec (~> 2.29)
88
+ bigdecimal (3.1.9)
89
+ builder (3.3.0)
90
+ circuitbox (2.0.0)
91
+ coderay (1.1.3)
92
+ concord (0.1.6)
93
+ adamantium (~> 0.2.0)
94
+ equalizer (~> 0.0.9)
95
+ concurrent-ruby (1.3.5)
96
+ connection_pool (2.5.0)
97
+ crack (1.0.0)
98
+ bigdecimal
99
+ rexml
100
+ crass (1.0.6)
101
+ date (3.4.1)
102
+ diff-lcs (1.6.2)
103
+ drb (2.2.1)
104
+ equalizer (0.0.11)
105
+ erubi (1.13.1)
106
+ faraday (1.10.4)
107
+ faraday-em_http (~> 1.0)
108
+ faraday-em_synchrony (~> 1.0)
109
+ faraday-excon (~> 1.1)
110
+ faraday-httpclient (~> 1.0)
111
+ faraday-multipart (~> 1.0)
112
+ faraday-net_http (~> 1.0)
113
+ faraday-net_http_persistent (~> 1.0)
114
+ faraday-patron (~> 1.0)
115
+ faraday-rack (~> 1.0)
116
+ faraday-retry (~> 1.0)
117
+ ruby2_keywords (>= 0.0.4)
118
+ faraday-em_http (1.0.0)
119
+ faraday-em_synchrony (1.0.0)
120
+ faraday-excon (1.1.0)
121
+ faraday-httpclient (1.0.1)
122
+ faraday-multipart (1.1.0)
123
+ multipart-post (~> 2.0)
124
+ faraday-net_http (1.0.2)
125
+ faraday-net_http_persistent (1.2.0)
126
+ faraday-patron (1.0.0)
127
+ faraday-rack (1.0.0)
128
+ faraday-retry (1.0.3)
129
+ hansi (0.2.1)
130
+ hashdiff (1.1.2)
131
+ i18n (1.14.6)
132
+ concurrent-ruby (~> 1.0)
133
+ ice_nine (0.11.2)
134
+ io-console (0.8.0)
135
+ irb (1.15.2)
136
+ pp (>= 0.6.0)
137
+ rdoc (>= 4.0.0)
138
+ reline (>= 0.4.2)
139
+ json (2.9.1)
140
+ language_server-protocol (3.17.0.3)
141
+ logger (1.6.5)
142
+ loofah (2.24.0)
143
+ crass (~> 1.0.2)
144
+ nokogiri (>= 1.12.0)
145
+ memoizable (0.4.2)
146
+ thread_safe (~> 0.3, >= 0.3.1)
147
+ memosa (0.8.2)
148
+ method_source (1.1.0)
149
+ minitest (5.25.4)
150
+ money (6.19.0)
151
+ i18n (>= 0.6.4, <= 2)
152
+ morpher (0.4.2)
153
+ abstract_type (~> 0.0.7)
154
+ adamantium (~> 0.2.0)
155
+ anima (~> 0.3.0)
156
+ concord (~> 0.1.5)
157
+ equalizer (~> 0.0.9)
158
+ mprelude (~> 0.1.0)
159
+ procto (~> 0.0.2)
160
+ mprelude (0.1.0)
161
+ abstract_type (~> 0.0.7)
162
+ adamantium (~> 0.2.0)
163
+ concord (~> 0.1.5)
164
+ equalizer (~> 0.0.9)
165
+ ice_nine (~> 0.11.1)
166
+ procto (~> 0.0.2)
167
+ multi_json (1.15.0)
168
+ multipart-post (2.4.1)
169
+ mustermann (3.0.3)
170
+ ruby2_keywords (~> 0.0.1)
171
+ mustermann-contrib (3.0.3)
172
+ hansi (~> 0.2.0)
173
+ mustermann (= 3.0.3)
174
+ mutant (0.13.4)
175
+ diff-lcs (~> 1.3)
176
+ irb (~> 1.15.2)
177
+ parser (~> 3.3.0)
178
+ regexp_parser (~> 2.10)
179
+ sorbet-runtime (~> 0.5.0)
180
+ unparser (~> 0.8.0)
181
+ mutant-rspec (0.13.4)
182
+ mutant (= 0.13.4)
183
+ rspec-core (>= 3.8.0, < 4.0.0)
184
+ netrc (0.11.0)
185
+ nokogiri (1.18.8-aarch64-linux-gnu)
186
+ racc (~> 1.4)
187
+ nokogiri (1.18.8-aarch64-linux-musl)
188
+ racc (~> 1.4)
189
+ nokogiri (1.18.8-arm64-darwin)
190
+ racc (~> 1.4)
191
+ nokogiri (1.18.8-x86_64-darwin)
192
+ racc (~> 1.4)
193
+ nokogiri (1.18.8-x86_64-linux-gnu)
194
+ racc (~> 1.4)
195
+ nokogiri (1.18.8-x86_64-linux-musl)
196
+ racc (~> 1.4)
197
+ parallel (1.26.3)
198
+ parser (3.3.7.0)
199
+ ast (~> 2.4.1)
200
+ racc
201
+ pp (0.6.2)
202
+ prettyprint
203
+ prettyprint (0.2.0)
204
+ prism (1.5.1)
205
+ procto (0.0.3)
206
+ pry (0.15.2)
207
+ coderay (~> 1.1)
208
+ method_source (~> 1.0)
209
+ psych (5.2.3)
210
+ date
211
+ stringio
212
+ public_suffix (6.0.1)
213
+ racc (1.8.1)
214
+ rack (3.1.14)
215
+ rack-session (2.1.1)
216
+ base64 (>= 0.1.0)
217
+ rack (>= 3.0.0)
218
+ rack-test (2.2.0)
219
+ rack (>= 1.3)
220
+ rackup (2.2.1)
221
+ rack (>= 3)
222
+ rails-dom-testing (2.2.0)
223
+ activesupport (>= 5.0.0)
224
+ minitest
225
+ nokogiri (>= 1.6)
226
+ rails-html-sanitizer (1.6.2)
227
+ loofah (~> 2.21)
228
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
229
+ railties (8.0.1)
230
+ actionpack (= 8.0.1)
231
+ activesupport (= 8.0.1)
232
+ irb (~> 1.13)
233
+ rackup (>= 1.0.0)
234
+ rake (>= 12.2)
235
+ thor (~> 1.0, >= 1.2.2)
236
+ zeitwerk (~> 2.6)
237
+ rainbow (3.1.1)
238
+ rake (13.2.1)
239
+ rbi (0.2.3)
240
+ prism (~> 1.0)
241
+ sorbet-runtime (>= 0.5.9204)
242
+ rdoc (6.13.1)
243
+ psych (>= 4.0.0)
244
+ regexp_parser (2.11.3)
245
+ reline (0.6.0)
246
+ io-console (~> 0.5)
247
+ rexml (3.4.0)
248
+ rspec (3.13.0)
249
+ rspec-core (~> 3.13.0)
250
+ rspec-expectations (~> 3.13.0)
251
+ rspec-mocks (~> 3.13.0)
252
+ rspec-core (3.13.2)
253
+ rspec-support (~> 3.13.0)
254
+ rspec-expectations (3.13.3)
255
+ diff-lcs (>= 1.2.0, < 2.0)
256
+ rspec-support (~> 3.13.0)
257
+ rspec-mocks (3.13.2)
258
+ diff-lcs (>= 1.2.0, < 2.0)
259
+ rspec-support (~> 3.13.0)
260
+ rspec-support (3.13.2)
261
+ rspec_junit_formatter (0.6.0)
262
+ rspec-core (>= 2, < 4, != 2.12.0)
263
+ rubocop (1.71.1)
264
+ json (~> 2.3)
265
+ language_server-protocol (>= 3.17.0)
266
+ parallel (~> 1.10)
267
+ parser (>= 3.3.0.2)
268
+ rainbow (>= 2.2.2, < 4.0)
269
+ regexp_parser (>= 2.9.3, < 3.0)
270
+ rubocop-ast (>= 1.38.0, < 2.0)
271
+ ruby-progressbar (~> 1.7)
272
+ unicode-display_width (>= 2.4.0, < 4.0)
273
+ rubocop-ast (1.38.0)
274
+ parser (>= 3.3.1.0)
275
+ rubocop-capybara (2.21.0)
276
+ rubocop (~> 1.41)
277
+ rubocop-factory_bot (2.26.1)
278
+ rubocop (~> 1.61)
279
+ rubocop-graphql (1.5.4)
280
+ rubocop (>= 1.50, < 2)
281
+ rubocop-performance (1.23.1)
282
+ rubocop (>= 1.48.1, < 2.0)
283
+ rubocop-ast (>= 1.31.1, < 2.0)
284
+ rubocop-rails (2.29.1)
285
+ activesupport (>= 4.2.0)
286
+ rack (>= 1.1)
287
+ rubocop (>= 1.52.0, < 2.0)
288
+ rubocop-ast (>= 1.31.1, < 2.0)
289
+ rubocop-rake (0.6.0)
290
+ rubocop (~> 1.0)
291
+ rubocop-rspec (2.31.0)
292
+ rubocop (~> 1.40)
293
+ rubocop-capybara (~> 2.17)
294
+ rubocop-factory_bot (~> 2.22)
295
+ rubocop-rspec_rails (~> 2.28)
296
+ rubocop-rspec_rails (2.29.1)
297
+ rubocop (~> 1.61)
298
+ ruby-progressbar (1.13.0)
299
+ ruby2_keywords (0.0.5)
300
+ securerandom (0.4.1)
301
+ sentry-ruby (5.22.1)
302
+ bigdecimal
303
+ concurrent-ruby (~> 1.0, >= 1.0.2)
304
+ sorbet (0.5.11763)
305
+ sorbet-static (= 0.5.11763)
306
+ sorbet-runtime (0.5.11763)
307
+ sorbet-static (0.5.11763-aarch64-linux)
308
+ sorbet-static (0.5.11763-universal-darwin)
309
+ sorbet-static (0.5.11763-x86_64-linux)
310
+ sorbet-static-and-runtime (0.5.11763)
311
+ sorbet (= 0.5.11763)
312
+ sorbet-runtime (= 0.5.11763)
313
+ spoom (1.5.1)
314
+ erubi (>= 1.10.0)
315
+ prism (>= 0.28.0)
316
+ sorbet-static-and-runtime (>= 0.5.10187)
317
+ thor (>= 0.19.2)
318
+ stringio (3.1.2)
319
+ tapioca (0.16.8)
320
+ benchmark
321
+ bundler (>= 2.2.25)
322
+ netrc (>= 0.11.0)
323
+ parallel (>= 1.21.0)
324
+ rbi (~> 0.2)
325
+ sorbet-static-and-runtime (>= 0.5.11087)
326
+ spoom (>= 1.2.0)
327
+ thor (>= 1.2.0)
328
+ yard-sorbet
329
+ thor (1.3.2)
330
+ thread_safe (0.3.6)
331
+ timeout (0.4.3)
332
+ tzinfo (2.0.6)
333
+ concurrent-ruby (~> 1.0)
334
+ unicode-display_width (2.6.0)
335
+ unparser (0.8.0)
336
+ diff-lcs (~> 1.6)
337
+ parser (>= 3.3.0)
338
+ prism (>= 1.4)
339
+ uri (1.0.3)
340
+ useragent (0.16.11)
341
+ webmock (3.24.0)
342
+ addressable (>= 2.8.0)
343
+ crack (>= 0.3.2)
344
+ hashdiff (>= 0.4.0, < 2.0.0)
345
+ yard (0.9.37)
346
+ yard-sorbet (0.9.0)
347
+ sorbet-runtime
348
+ yard
349
+ zeitwerk (2.7.1)
350
+
351
+ PLATFORMS
352
+ aarch64-linux-gnu
353
+ aarch64-linux-musl
354
+ arm64-darwin
355
+ x86_64-darwin
356
+ x86_64-linux-gnu
357
+ x86_64-linux-musl
358
+
359
+ DEPENDENCIES
360
+ activesupport (~> 8.0.0)
361
+ alchemrest!
362
+ alchemrest-sentry!
363
+ appraisal
364
+ betterlint (~> 1.19.0)
365
+ mutant-rspec (~> 0.13.4)
366
+ pry
367
+ rake (~> 13.0)
368
+ rspec (~> 3.0)
369
+ rspec_junit_formatter
370
+ rubocop
371
+ rubocop-rspec
372
+ sorbet
373
+ tapioca (>= 0.16.6)
374
+ webmock
375
+
376
+ BUNDLED WITH
377
+ 2.6.9
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alchemrest
4
+ module Sentry
5
+ VERSION = "1.0.0"
6
+ end
7
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sentry-ruby'
4
+
5
+ module Alchemrest
6
+ module Sentry
7
+ FILTERED_FOR_SIZE_MESSAGE = { warning: "[FILTERED FOR SIZE]" }.freeze
8
+ TOO_MANY_RESPONSES_MESSAGE = { warning: "[TOO MANY RESPONSES]" }.freeze
9
+
10
+ def self.capture_response(identifier:, result:)
11
+ return if should_not_capture?
12
+
13
+ response_data = case result
14
+ in Result::Ok(data) if JSON.generate(data).bytesize > 6000
15
+ FILTERED_FOR_SIZE_MESSAGE
16
+ in Result::Ok(data)
17
+ { data: data }
18
+ in Result::Error(error)
19
+ { error: error.to_s }
20
+ end
21
+
22
+ response_data = TOO_MANY_RESPONSES_MESSAGE if sentry_klass.get_current_scope.contexts.size > 12 || captured_response_count > 12
23
+
24
+ add_response_data!(identifier, response_data)
25
+ sentry_klass.set_tags(includes_captured_alchemrest_response: true)
26
+ end
27
+
28
+ def self.add_response_data!(identifier, data)
29
+ ensure_context!(identifier)
30
+ responses = sentry_klass.get_current_scope.contexts.fetch(identifier).fetch(:responses)
31
+ responses << data
32
+ end
33
+
34
+ def self.ensure_context!(identifier)
35
+ unless sentry_klass.get_current_scope.contexts.key?(identifier)
36
+ sentry_klass.set_context(identifier, { responses: [] })
37
+ end
38
+ end
39
+
40
+ def self.captured_response_count
41
+ sentry_klass.get_current_scope.contexts
42
+ .transform_values { |v| v.key?(:responses) ? v.fetch(:responses).size : 0 }
43
+ .values.sum
44
+ end
45
+
46
+ def self.should_not_capture?
47
+ sentry_klass.get_current_scope.contexts.size > 16 || captured_response_count > 16
48
+ end
49
+
50
+ def self.sentry_klass
51
+ ::Sentry
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'alchemrest'
4
+ require_relative "alchemrest/sentry/version"
5
+ require_relative "alchemrest/sentry"
data/mutant.yml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ integration:
3
+ name: rspec
4
+ requires:
5
+ - alchemrest/sentry
6
+ matcher:
7
+ subjects:
8
+ - Alchemrest::Sentry*
9
+ mutation:
10
+ timeout: 1.0
11
+ coverage_criteria:
12
+ timeout: true
13
+ environment_variables:
14
+ # we need to include this to avoid segfault when working with psql
15
+ PGGSSENCMODE: disable
16
+ usage: commercial
data/sorbet/config ADDED
@@ -0,0 +1,5 @@
1
+ --dir=.
2
+ --ignore=lib/
3
+ --ignore=spec/
4
+ --ignore=vendor/
5
+ --ignore=alchemrest-sentry.gemspec
@@ -0,0 +1 @@
1
+ **/*.rbi linguist-generated=true
@@ -0,0 +1,41 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `abstract_type` gem.
5
+ # Please instead update this file by running `bin/tapioca gem abstract_type`.
6
+
7
+
8
+ # source://abstract_type//lib/abstract_type.rb#4
9
+ module AbstractType
10
+ mixes_in_class_methods ::AbstractType::AbstractMethodDeclarations
11
+
12
+ class << self
13
+ private
14
+
15
+ # source://abstract_type//lib/abstract_type.rb#32
16
+ def create_new_method(abstract_class); end
17
+
18
+ # source://abstract_type//lib/abstract_type.rb#14
19
+ def included(descendant); end
20
+ end
21
+ end
22
+
23
+ # source://abstract_type//lib/abstract_type.rb#44
24
+ module AbstractType::AbstractMethodDeclarations
25
+ # source://abstract_type//lib/abstract_type.rb#61
26
+ def abstract_method(*names); end
27
+
28
+ # source://abstract_type//lib/abstract_type.rb#81
29
+ def abstract_singleton_method(*names); end
30
+
31
+ private
32
+
33
+ # source://abstract_type//lib/abstract_type.rb#110
34
+ def create_abstract_instance_method(name); end
35
+
36
+ # source://abstract_type//lib/abstract_type.rb#96
37
+ def create_abstract_singleton_method(name); end
38
+ end
39
+
40
+ # source://abstract_type//lib/abstract_type/version.rb#6
41
+ AbstractType::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `actionpack` gem.
5
+ # Please instead update this file by running `bin/tapioca gem actionpack`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `actionview` gem.
5
+ # Please instead update this file by running `bin/tapioca gem actionview`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem