Skip to content

Commit d7522f9

Browse files
st0012sl0thentr0py
authored andcommitted
Migrate from to_hash to to_h (#2351)
* Migrate from to_hash to to_h As @solnic pointed out in #2350 (comment) `to_hash` has special meaning in Ruby and could be called implicitly in contexts like double splatting argument. So we should switch to `to_h` to avoid potential issues.
1 parent 52032f3 commit d7522f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+184
-183
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### Breaking Changes
44

55
- Remove `config.async` [#1894](https://github.com/getsentry/sentry-ruby/pull/1894)
6+
- Migrate from to_hash to to_h ([#2351](https://github.com/getsentry/sentry-ruby/pull/2351))
67

78
## Unreleased
89

sentry-delayed_job/spec/sentry/delayed_job_spec.rb

+8-8
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def do_nothing_with_args(a)
4646
enqueued_job.invoke_job
4747

4848
expect(transport.events.count).to eq(1)
49-
event = transport.events.last.to_hash
49+
event = transport.events.last.to_h
5050
expect(event[:message]).to eq("report")
5151
expect(event[:contexts][:"Delayed-Job"][:id]).to eq(enqueued_job.id.to_s)
5252
expect(event[:tags]).to eq({ "delayed_job.id" => enqueued_job.id.to_s, "delayed_job.queue" => nil })
@@ -68,7 +68,7 @@ def do_nothing_with_args(a)
6868
enqueued_job.invoke_job
6969

7070
expect(transport.events.count).to eq(1)
71-
event = transport.events.last.to_hash
71+
event = transport.events.last.to_h
7272
expect(event[:message]).to eq("tagged report")
7373
expect(event[:tags]).to eq({ "delayed_job.id" => enqueued_job.id.to_s, "delayed_job.queue" => nil, number: 1 })
7474

@@ -77,7 +77,7 @@ def do_nothing_with_args(a)
7777
enqueued_job.invoke_job
7878

7979
expect(transport.events.count).to eq(2)
80-
event = transport.events.last.to_hash
80+
event = transport.events.last.to_h
8181
expect(event[:tags]).to eq({ "delayed_job.id" => enqueued_job.id.to_s, "delayed_job.queue" => nil })
8282
end
8383

@@ -93,7 +93,7 @@ def do_nothing_with_args(a)
9393
end.to raise_error(ZeroDivisionError)
9494

9595
expect(transport.events.count).to eq(1)
96-
event = transport.events.last.to_hash
96+
event = transport.events.last.to_h
9797

9898
expect(event[:sdk]).to eq({ name: "sentry.ruby.delayed_job", version: described_class::VERSION })
9999
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
@@ -109,7 +109,7 @@ def do_nothing_with_args(a)
109109
end.to raise_error(RuntimeError)
110110

111111
expect(transport.events.count).to eq(1)
112-
event = transport.events.last.to_hash
112+
event = transport.events.last.to_h
113113

114114
expect(event[:tags]).to eq({ "delayed_job.id" => enqueued_job.id.to_s, "delayed_job.queue" => nil, number: 1 })
115115
expect(Sentry.get_current_scope.extra).to eq({})
@@ -123,7 +123,7 @@ def do_nothing_with_args(a)
123123
end.to raise_error(ZeroDivisionError)
124124

125125
expect(transport.events.count).to eq(2)
126-
event = transport.events.last.to_hash
126+
event = transport.events.last.to_h
127127
expect(event[:tags]).to eq({ "delayed_job.id" => enqueued_job.id.to_s, "delayed_job.queue" => nil })
128128
expect(Sentry.get_current_scope.extra).to eq({})
129129
expect(Sentry.get_current_scope.tags).to eq({})
@@ -228,7 +228,7 @@ def perform
228228
it "injects ActiveJob information to the event" do
229229
expect(transport.events.count).to eq(1)
230230

231-
event = transport.events.last.to_hash
231+
event = transport.events.last.to_h
232232
expect(event[:message]).to eq("report from ActiveJob")
233233
expect(event[:tags]).to match({ "delayed_job.id" => anything, "delayed_job.queue" => "default", number: 1 })
234234
expect(event[:contexts][:"Active-Job"][:job_class]).to eq("ReportingJob")
@@ -255,7 +255,7 @@ def perform
255255
it "injects ActiveJob information to the event" do
256256
expect(transport.events.count).to eq(1)
257257

258-
event = transport.events.last.to_hash
258+
event = transport.events.last.to_h
259259
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
260260
expect(event[:tags]).to match({ "delayed_job.id" => anything, "delayed_job.queue" => "default", number: 2 })
261261
expect(event[:contexts][:"Active-Job"][:job_class]).to eq("FailedJob")

sentry-rails/spec/sentry/rails/activejob_spec.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def perform
254254
expect(transport.events.size).to eq(1)
255255

256256
event = transport.events.first
257-
exceptions_data = event.exception.to_hash[:values]
257+
exceptions_data = event.exception.to_h[:values]
258258

259259
expect(exceptions_data.count).to eq(2)
260260
expect(exceptions_data[0][:type]).to eq("FailedJob::TestError")
@@ -293,7 +293,7 @@ def perform
293293
first = transport.events[0]
294294
check_in_id = first.check_in_id
295295
expect(first).to be_a(Sentry::CheckInEvent)
296-
expect(first.to_hash).to include(
296+
expect(first.to_h).to include(
297297
type: 'check_in',
298298
check_in_id: check_in_id,
299299
monitor_slug: "normaljobwithcron",
@@ -302,7 +302,7 @@ def perform
302302

303303
second = transport.events[1]
304304
expect(second).to be_a(Sentry::CheckInEvent)
305-
expect(second.to_hash).to include(
305+
expect(second.to_h).to include(
306306
:duration,
307307
type: 'check_in',
308308
check_in_id: check_in_id,
@@ -321,7 +321,7 @@ def perform
321321
first = transport.events[0]
322322
check_in_id = first.check_in_id
323323
expect(first).to be_a(Sentry::CheckInEvent)
324-
expect(first.to_hash).to include(
324+
expect(first.to_h).to include(
325325
type: 'check_in',
326326
check_in_id: check_in_id,
327327
monitor_slug: "failed_job",
@@ -331,7 +331,7 @@ def perform
331331

332332
second = transport.events[1]
333333
expect(second).to be_a(Sentry::CheckInEvent)
334-
expect(second.to_hash).to include(
334+
expect(second.to_h).to include(
335335
:duration,
336336
type: 'check_in',
337337
check_in_id: check_in_id,

sentry-rails/spec/sentry/rails/breadcrumbs/active_support_logger_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@
130130

131131
expect(transport.events.count).to eq(1)
132132

133-
transaction = transport.events.last.to_hash
133+
transaction = transport.events.last.to_h
134134
breadcrumbs = transaction[:breadcrumbs][:values]
135135
process_action_crumb = breadcrumbs.last
136136
expect(process_action_crumb[:category]).to eq("process_action.action_controller")

sentry-rails/spec/sentry/rails/breadcrumbs/monotonic_active_support_logger_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134

135135
expect(transport.events.count).to eq(1)
136136

137-
transaction = transport.events.last.to_hash
137+
transaction = transport.events.last.to_h
138138
breadcrumbs = transaction[:breadcrumbs][:values]
139139
process_action_crumb = breadcrumbs.last
140140
expect(process_action_crumb[:category]).to eq("process_action.action_controller")

sentry-rails/spec/sentry/rails/controller_methods_spec.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def request
3737
event = transport.events.last
3838
expect(event.message).to eq("foo")
3939
expect(event.tags).to eq({ new_tag: true })
40-
expect(event.to_hash.dig(:request, :url)).to eq("http://example.org/test")
40+
expect(event.to_h.dig(:request, :url)).to eq("http://example.org/test")
4141
end
4242
end
4343

@@ -49,8 +49,8 @@ def request
4949

5050
event = transport.events.last
5151
expect(event.tags).to eq({ new_tag: true })
52-
expect(event.to_hash.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
53-
expect(event.to_hash.dig(:request, :url)).to eq("http://example.org/test")
52+
expect(event.to_h.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
53+
expect(event.to_h.dig(:request, :url)).to eq("http://example.org/test")
5454
end
5555
end
5656
end

sentry-rails/spec/sentry/rails/event_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
end
99

1010
it "sets right SDK information" do
11-
event_hash = Sentry::Rails.capture_message("foo").to_hash
11+
event_hash = Sentry::Rails.capture_message("foo").to_h
1212

1313
expect(event_hash[:sdk]).to eq(name: "sentry.ruby.rails", version: Sentry::Rails::VERSION)
1414
end
@@ -27,7 +27,7 @@
2727
e
2828
end
2929

30-
let(:hash) { Sentry::Rails.capture_exception(exception).to_hash }
30+
let(:hash) { Sentry::Rails.capture_exception(exception).to_h }
3131

3232
it 'marks in_app correctly' do
3333
frames = hash[:exception][:values][0][:stacktrace][:frames]

sentry-rails/spec/sentry/rails/tracing/action_controller_subscriber_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
expect(transport.events.count).to eq(1)
3434

35-
transaction = transport.events.first.to_hash
35+
transaction = transport.events.first.to_h
3636
expect(transaction[:type]).to eq("transaction")
3737
expect(transaction[:spans].count).to eq(2)
3838

sentry-rails/spec/sentry/rails/tracing/action_view_subscriber_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
expect(transport.events.count).to eq(1)
2222

23-
transaction = transport.events.first.to_hash
23+
transaction = transport.events.first.to_h
2424
expect(transaction[:type]).to eq("transaction")
2525
expect(transaction[:spans].count).to eq(2)
2626

sentry-rails/spec/sentry/rails/tracing/active_record_subscriber_spec.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
expect(transport.events.count).to eq(1)
3232

33-
transaction = transport.events.first.to_hash
33+
transaction = transport.events.first.to_h
3434
expect(transaction[:type]).to eq("transaction")
3535
expect(transaction[:spans].count).to eq(1)
3636

@@ -67,7 +67,7 @@ def foo
6767
it "doesn't record query's source location" do
6868
expect(transport.events.count).to eq(1)
6969

70-
transaction = transport.events.first.to_hash
70+
transaction = transport.events.first.to_h
7171
expect(transaction[:type]).to eq("transaction")
7272
expect(transaction[:spans].count).to eq(1)
7373

@@ -86,7 +86,7 @@ def foo
8686
it "records query's source location" do
8787
expect(transport.events.count).to eq(1)
8888

89-
transaction = transport.events.first.to_hash
89+
transaction = transport.events.first.to_h
9090
expect(transaction[:type]).to eq("transaction")
9191
expect(transaction[:spans].count).to eq(1)
9292

@@ -104,7 +104,7 @@ def foo
104104
it "doesn't record query's source location" do
105105
expect(transport.events.count).to eq(1)
106106

107-
transaction = transport.events.first.to_hash
107+
transaction = transport.events.first.to_h
108108
expect(transaction[:type]).to eq("transaction")
109109
expect(transaction[:spans].count).to eq(1)
110110

@@ -131,7 +131,7 @@ def foo
131131

132132
expect(transport.events.count).to eq(1)
133133

134-
transaction = transport.events.first.to_hash
134+
transaction = transport.events.first.to_h
135135
expect(transaction[:type]).to eq("transaction")
136136
expect(transaction[:spans].count).to eq(2)
137137

sentry-rails/spec/sentry/rails/tracing/active_storage_subscriber_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
expect(response).to have_http_status(:ok)
2626
expect(transport.events.count).to eq(2)
2727

28-
analysis_transaction = transport.events.first.to_hash
28+
analysis_transaction = transport.events.first.to_h
2929
expect(analysis_transaction[:type]).to eq("transaction")
3030

3131
if Rails.version.to_f > 6.1
@@ -40,7 +40,7 @@
4040
expect(analysis_transaction[:spans][0][:origin]).to eq("auto.file.rails")
4141
end
4242

43-
request_transaction = transport.events.last.to_hash
43+
request_transaction = transport.events.last.to_h
4444
expect(request_transaction[:type]).to eq("transaction")
4545
expect(request_transaction[:spans].count).to eq(2)
4646

sentry-rails/spec/sentry/rails/tracing_spec.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
expect(response).to have_http_status(:internal_server_error)
2727
expect(transport.events.count).to eq(2)
2828

29-
event = transport.events.first.to_hash
30-
transaction = transport.events.last.to_hash
29+
event = transport.events.first.to_h
30+
transaction = transport.events.last.to_h
3131

3232
expect(event.dig(:contexts, :trace, :trace_id).length).to eq(32)
3333
expect(event.dig(:contexts, :trace, :trace_id)).to eq(transaction.dig(:contexts, :trace, :trace_id))
@@ -64,7 +64,7 @@
6464
expect(response).to have_http_status(:ok)
6565
expect(transport.events.count).to eq(1)
6666

67-
transaction = transport.events.last.to_hash
67+
transaction = transport.events.last.to_h
6868

6969
expect(transaction[:type]).to eq("transaction")
7070
expect(transaction.dig(:contexts, :trace, :op)).to eq("http.server")
@@ -254,7 +254,7 @@
254254

255255
expect(transport.events.count).to eq(3)
256256

257-
transaction = transport.events.last.to_hash
257+
transaction = transport.events.last.to_h
258258

259259
expect(transaction[:type]).to eq("transaction")
260260
expect(transaction[:transaction]).to eq("PostsController#show")

sentry-resque/spec/sentry/resque_spec.rb

+11-11
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def self.perform(msg)
6666
process_job(worker)
6767

6868
expect(transport.events.count).to eq(1)
69-
event = transport.events.last.to_hash
69+
event = transport.events.last.to_h
7070
expect(event[:message]).to eq("report")
7171
expect(event[:tags]).to eq({ "resque.queue" => "default" })
7272
expect(event[:contexts][:"Resque"]).to include({ job_class: "MessageJob", arguments: ["report"], queue: "default" })
@@ -88,7 +88,7 @@ def self.perform(msg)
8888
process_job(worker)
8989

9090
expect(transport.events.count).to eq(1)
91-
event = transport.events.last.to_hash
91+
event = transport.events.last.to_h
9292
expect(event[:message]).to eq("tagged report")
9393
expect(event[:tags]).to include({ number: 1 })
9494

@@ -97,7 +97,7 @@ def self.perform(msg)
9797
process_job(worker)
9898

9999
expect(transport.events.count).to eq(2)
100-
event = transport.events.last.to_hash
100+
event = transport.events.last.to_h
101101
expect(event[:tags]).to eq({ "resque.queue" => "default" })
102102
end
103103

@@ -109,7 +109,7 @@ def self.perform(msg)
109109
end.to change { Resque::Stat.get("failed") }.by(1)
110110

111111
expect(transport.events.count).to eq(1)
112-
event = transport.events.last.to_hash
112+
event = transport.events.last.to_h
113113

114114
expect(event[:sdk]).to eq({ name: "sentry.ruby.resque", version: described_class::VERSION })
115115
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
@@ -123,7 +123,7 @@ def self.perform(msg)
123123
end.to change { Resque::Stat.get("failed") }.by(1)
124124

125125
expect(transport.events.count).to eq(1)
126-
event = transport.events.last.to_hash
126+
event = transport.events.last.to_h
127127

128128
expect(event[:tags]).to eq({ "resque.queue" => "default", number: 1 })
129129
expect(Sentry.get_current_scope.extra).to eq({})
@@ -135,7 +135,7 @@ def self.perform(msg)
135135
end.to change { Resque::Stat.get("failed") }.by(1)
136136

137137
expect(transport.events.count).to eq(2)
138-
event = transport.events.last.to_hash
138+
event = transport.events.last.to_h
139139
expect(event[:tags]).to eq({ "resque.queue" => "default" })
140140
expect(Sentry.get_current_scope.extra).to eq({})
141141
expect(Sentry.get_current_scope.tags).to eq({})
@@ -161,7 +161,7 @@ def self.perform(msg)
161161
end
162162
end.to change { transport.events.count }.by(1)
163163

164-
event = transport.events.last.to_hash
164+
event = transport.events.last.to_h
165165

166166
expect(event[:sdk]).to eq({ name: "sentry.ruby.resque", version: described_class::VERSION })
167167
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
@@ -175,7 +175,7 @@ def self.perform(msg)
175175
end.to change { Resque::Stat.get("failed") }.by(1)
176176
.and change { transport.events.count }.by(1)
177177

178-
event = transport.events.last.to_hash
178+
event = transport.events.last.to_h
179179

180180
expect(event[:sdk]).to eq({ name: "sentry.ruby.resque", version: described_class::VERSION })
181181
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
@@ -201,7 +201,7 @@ def self.perform(msg)
201201
end
202202
end.to change { transport.events.count }.by(3)
203203

204-
event = transport.events.last.to_hash
204+
event = transport.events.last.to_h
205205

206206
expect(event[:sdk]).to eq({ name: "sentry.ruby.resque", version: described_class::VERSION })
207207
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
@@ -266,7 +266,7 @@ def perform
266266
it "injects ActiveJob information to the event" do
267267
expect(transport.events.count).to eq(1)
268268

269-
event = transport.events.last.to_hash
269+
event = transport.events.last.to_h
270270
expect(event[:message]).to eq("report from ActiveJob")
271271
expect(event[:tags]).to match({ "resque.queue" => "default", number: 1 })
272272
expect(event[:contexts][:"Active-Job"][:job_class]).to eq("AJMessageJob")
@@ -291,7 +291,7 @@ def perform
291291
it "injects ActiveJob information to the event" do
292292
expect(transport.events.count).to eq(1)
293293

294-
event = transport.events.last.to_hash
294+
event = transport.events.last.to_h
295295
expect(event.dig(:exception, :values, 0, :type)).to eq("ZeroDivisionError")
296296
expect(event[:tags]).to match({ "resque.queue" => "default", number: 2 })
297297
expect(event[:contexts][:"Active-Job"][:job_class]).to eq("AJFailedJob")

0 commit comments

Comments
 (0)