appsignal 3.9.1-java → 3.9.3-java

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3135 -0
  3. data/.rubocop.yml +28 -20
  4. data/.rubocop_todo.yml +7 -33
  5. data/CHANGELOG.md +58 -0
  6. data/Rakefile +79 -64
  7. data/appsignal.gemspec +1 -1
  8. data/build_matrix.yml +109 -179
  9. data/ext/base.rb +1 -1
  10. data/gemfiles/hanami-2.1.gemfile +7 -0
  11. data/lib/appsignal/cli/diagnose.rb +1 -1
  12. data/lib/appsignal/config.rb +1 -1
  13. data/lib/appsignal/demo.rb +0 -1
  14. data/lib/appsignal/environment.rb +5 -1
  15. data/lib/appsignal/extension/jruby.rb +1 -1
  16. data/lib/appsignal/helpers/instrumentation.rb +3 -3
  17. data/lib/appsignal/hooks/active_job.rb +2 -1
  18. data/lib/appsignal/integrations/action_cable.rb +1 -1
  19. data/lib/appsignal/integrations/grape.rb +19 -47
  20. data/lib/appsignal/integrations/hanami.rb +27 -41
  21. data/lib/appsignal/integrations/padrino.rb +46 -43
  22. data/lib/appsignal/integrations/railtie.rb +1 -4
  23. data/lib/appsignal/integrations/resque.rb +1 -1
  24. data/lib/appsignal/integrations/sidekiq.rb +2 -4
  25. data/lib/appsignal/integrations/sinatra.rb +7 -2
  26. data/lib/appsignal/probes/gvl.rb +24 -2
  27. data/lib/appsignal/probes/sidekiq.rb +1 -1
  28. data/lib/appsignal/probes.rb +1 -1
  29. data/lib/appsignal/rack/abstract_middleware.rb +62 -28
  30. data/lib/appsignal/rack/event_handler.rb +37 -26
  31. data/lib/appsignal/rack/grape_middleware.rb +40 -0
  32. data/lib/appsignal/rack/hanami_middleware.rb +20 -0
  33. data/lib/appsignal/rack/rails_instrumentation.rb +14 -56
  34. data/lib/appsignal/utils/integration_memory_logger.rb +78 -0
  35. data/lib/appsignal/utils.rb +1 -0
  36. data/lib/appsignal/version.rb +1 -1
  37. data/lib/appsignal.rb +34 -33
  38. data/spec/.rubocop.yml +1 -1
  39. data/spec/lib/appsignal/cli/diagnose_spec.rb +1 -1
  40. data/spec/lib/appsignal/cli/install_spec.rb +3 -3
  41. data/spec/lib/appsignal/config_spec.rb +7 -5
  42. data/spec/lib/appsignal/demo_spec.rb +38 -41
  43. data/spec/lib/appsignal/hooks/action_cable_spec.rb +86 -167
  44. data/spec/lib/appsignal/hooks/active_support_notifications/finish_with_state_shared_examples.rb +8 -20
  45. data/spec/lib/appsignal/hooks/active_support_notifications/instrument_shared_examples.rb +38 -84
  46. data/spec/lib/appsignal/hooks/active_support_notifications/start_finish_shared_examples.rb +16 -37
  47. data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +4 -4
  48. data/spec/lib/appsignal/hooks/activejob_spec.rb +111 -200
  49. data/spec/lib/appsignal/hooks/delayed_job_spec.rb +54 -91
  50. data/spec/lib/appsignal/hooks/dry_monitor_spec.rb +14 -32
  51. data/spec/lib/appsignal/hooks/excon_spec.rb +8 -12
  52. data/spec/lib/appsignal/hooks/net_http_spec.rb +7 -42
  53. data/spec/lib/appsignal/hooks/rake_spec.rb +9 -19
  54. data/spec/lib/appsignal/hooks/redis_client_spec.rb +18 -30
  55. data/spec/lib/appsignal/hooks/redis_spec.rb +10 -16
  56. data/spec/lib/appsignal/hooks/resque_spec.rb +42 -62
  57. data/spec/lib/appsignal/hooks/shoryuken_spec.rb +33 -74
  58. data/spec/lib/appsignal/integrations/hanami_spec.rb +126 -64
  59. data/spec/lib/appsignal/integrations/http_spec.rb +12 -20
  60. data/spec/lib/appsignal/integrations/net_http_spec.rb +33 -0
  61. data/spec/lib/appsignal/integrations/object_spec.rb +29 -36
  62. data/spec/lib/appsignal/integrations/padrino_spec.rb +47 -70
  63. data/spec/lib/appsignal/integrations/que_spec.rb +43 -70
  64. data/spec/lib/appsignal/integrations/railtie_spec.rb +26 -67
  65. data/spec/lib/appsignal/integrations/sidekiq_spec.rb +86 -160
  66. data/spec/lib/appsignal/integrations/sinatra_spec.rb +8 -3
  67. data/spec/lib/appsignal/integrations/webmachine_spec.rb +28 -39
  68. data/spec/lib/appsignal/probes/gvl_spec.rb +80 -3
  69. data/spec/lib/appsignal/probes_spec.rb +7 -4
  70. data/spec/lib/appsignal/rack/abstract_middleware_spec.rb +215 -106
  71. data/spec/lib/appsignal/rack/event_handler_spec.rb +151 -69
  72. data/spec/lib/appsignal/rack/generic_instrumentation_spec.rb +2 -12
  73. data/spec/lib/appsignal/rack/grape_middleware_spec.rb +234 -0
  74. data/spec/lib/appsignal/rack/hanami_middleware_spec.rb +36 -0
  75. data/spec/lib/appsignal/rack/rails_instrumentation_spec.rb +67 -131
  76. data/spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb +36 -44
  77. data/spec/lib/appsignal/rack/streaming_listener_spec.rb +68 -86
  78. data/spec/lib/appsignal/transaction_spec.rb +79 -93
  79. data/spec/lib/appsignal/utils/integration_memory_logger_spec.rb +163 -0
  80. data/spec/lib/appsignal_spec.rb +363 -342
  81. data/spec/support/hanami/hanami_app.rb +1 -3
  82. data/spec/support/helpers/dependency_helper.rb +6 -1
  83. data/spec/support/helpers/std_streams_helper.rb +1 -1
  84. data/spec/support/helpers/transaction_helpers.rb +8 -0
  85. data/spec/support/matchers/transaction.rb +185 -0
  86. data/spec/support/mocks/dummy_app.rb +20 -0
  87. data/spec/support/shared_examples/instrument.rb +17 -12
  88. data/spec/support/testing.rb +18 -9
  89. metadata +17 -10
  90. data/.semaphore/semaphore.yml +0 -2347
  91. data/script/lint_git +0 -22
  92. data/spec/lib/appsignal/integrations/grape_spec.rb +0 -239
  93. data/spec/support/matchers/be_completed.rb +0 -5
  94. /data/gemfiles/{hanami.gemfile → hanami-2.0.gemfile} +0 -0
@@ -21,11 +21,9 @@ module HanamiApp
21
21
 
22
22
  class Error < Hanami::Action
23
23
  def handle(_request, _response)
24
- raise ExampleError
24
+ raise ExampleException, "exception message"
25
25
  end
26
26
  end
27
27
  end
28
28
  end
29
-
30
- class ExampleError < StandardError; end
31
29
  end
@@ -1,4 +1,4 @@
1
- module DependencyHelper # rubocop:disable Metrics/ModuleLength
1
+ module DependencyHelper
2
2
  module_function
3
3
 
4
4
  def ruby_version
@@ -123,6 +123,11 @@ module DependencyHelper # rubocop:disable Metrics/ModuleLength
123
123
  dependency_present? "hanami"
124
124
  end
125
125
 
126
+ def hanami2_1_present?
127
+ hanami_present? &&
128
+ Gem::Version.new(::Hanami::VERSION) >= Gem::Version.new("2.1.0")
129
+ end
130
+
126
131
  def dry_monitor_present?
127
132
  dependency_present? "dry-monitor"
128
133
  end
@@ -89,6 +89,6 @@ module StdStreamsHelper
89
89
  end
90
90
  end
91
91
  reject
92
- end.join(",")
92
+ end.join
93
93
  end
94
94
  end
@@ -44,6 +44,14 @@ module TransactionHelpers
44
44
  created_transactions.last
45
45
  end
46
46
 
47
+ def current_transaction?
48
+ Appsignal::Transaction.current?
49
+ end
50
+
51
+ def current_transaction
52
+ Appsignal::Transaction.current
53
+ end
54
+
47
55
  # Set current transaction manually.
48
56
  # Cleared by {clear_current_transaction!}
49
57
  #
@@ -0,0 +1,185 @@
1
+ def define_transaction_metadata_matcher_for(matcher_key, value_key = matcher_key)
2
+ value_key = value_key.to_s
3
+
4
+ RSpec::Matchers.define "have_#{matcher_key}" do |expected_value|
5
+ match(:notify_expectation_failures => true) do |transaction|
6
+ actual_value = transaction.to_h[value_key]
7
+ if expected_value
8
+ expect(actual_value).to eq(expected_value)
9
+ else
10
+ expect(actual_value).to_not be_nil
11
+ end
12
+ end
13
+
14
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
15
+ actual_value = transaction.to_h[value_key]
16
+ if expected_value
17
+ expect(actual_value).to_not eq(expected_value)
18
+ else
19
+ expect(actual_value).to be_nil
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ define_transaction_metadata_matcher_for(:id)
26
+ define_transaction_metadata_matcher_for(:namespace)
27
+ define_transaction_metadata_matcher_for(:action)
28
+
29
+ def define_transaction_sample_matcher_for(matcher_key, value_key = matcher_key)
30
+ value_key = value_key.to_s
31
+
32
+ RSpec::Matchers.define "include_#{matcher_key}" do |expected_value|
33
+ match(:notify_expectation_failures => true) do |transaction|
34
+ sample_data = transaction.to_h.dig("sample_data", value_key) || {}
35
+
36
+ if expected_value
37
+ expected_value = hash_including(expected_value) if expected_value.is_a?(Hash)
38
+ expect(sample_data).to match(expected_value)
39
+ else
40
+ expect(sample_data).to be_present
41
+ end
42
+ end
43
+
44
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
45
+ sample_data = transaction.to_h.dig("sample_data", value_key) || {}
46
+
47
+ if expected_value
48
+ expect(sample_data).to_not include(expected_value)
49
+ else
50
+ expect(sample_data).to be_empty
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ define_transaction_sample_matcher_for(:sample_metadata, :metadata)
57
+ define_transaction_sample_matcher_for(:params)
58
+ define_transaction_sample_matcher_for(:environment)
59
+ define_transaction_sample_matcher_for(:session_data)
60
+ define_transaction_sample_matcher_for(:tags)
61
+ define_transaction_sample_matcher_for(:custom_data)
62
+
63
+ RSpec::Matchers.define :be_completed do
64
+ match(:notify_expectation_failures => true) do |transaction|
65
+ values_match? transaction.ext._completed?, true
66
+ end
67
+ end
68
+
69
+ RSpec::Matchers.define :have_error do |error_class, error_message|
70
+ match(:notify_expectation_failures => true) do |transaction|
71
+ transaction_error = transaction.to_h["error"]
72
+ if error_class && error_message
73
+ expect(transaction_error).to include(
74
+ "name" => error_class,
75
+ "message" => error_message,
76
+ "backtrace" => kind_of(String)
77
+ )
78
+ else
79
+ expect(transaction_error).to be_any
80
+ end
81
+ end
82
+
83
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
84
+ transaction_error = transaction.to_h["error"]
85
+ if error_class && error_message
86
+ expect(transaction_error).to_not include(
87
+ "name" => error_class,
88
+ "message" => error_message,
89
+ "backtrace" => kind_of(String)
90
+ )
91
+ else
92
+ expect(transaction_error).to be_nil
93
+ end
94
+ end
95
+ end
96
+
97
+ RSpec::Matchers.define :include_event do |event|
98
+ match(:notify_expectation_failures => true) do |transaction|
99
+ events = transaction.to_h["events"]
100
+ if event
101
+ expect(events).to include(format_event(event))
102
+ else
103
+ expect(events).to be_any
104
+ end
105
+ end
106
+
107
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
108
+ events = transaction.to_h["events"]
109
+ if event
110
+ expect(events).to_not include(format_event(event))
111
+ else
112
+ expect(events).to be_empty
113
+ end
114
+ end
115
+
116
+ def format_event(event)
117
+ hash_including({
118
+ "body" => "",
119
+ "body_format" => Appsignal::EventFormatter::DEFAULT,
120
+ "count" => 1,
121
+ "name" => kind_of(String),
122
+ "title" => ""
123
+ }.merge(event.transform_keys(&:to_s)))
124
+ end
125
+ end
126
+ RSpec::Matchers.alias_matcher :include_events, :include_event
127
+
128
+ RSpec::Matchers.define :include_metadata do |metadata|
129
+ match(:notify_expectation_failures => true) do |transaction|
130
+ actual_metadata = transaction.to_h["metadata"]
131
+ if metadata
132
+ expect(actual_metadata).to include(metadata)
133
+ else
134
+ expect(actual_metadata).to be_any
135
+ end
136
+ end
137
+
138
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
139
+ actual_metadata = transaction.to_h["metadata"]
140
+ if metadata
141
+ expect(actual_metadata).to_not include(metadata)
142
+ else
143
+ expect(actual_metadata).to be_empty
144
+ end
145
+ end
146
+ end
147
+
148
+ RSpec::Matchers.define :include_breadcrumb do |action, category, message, metadata, time|
149
+ match(:notify_expectation_failures => true) do |transaction|
150
+ breadcrumbs = transaction.to_h.dig("sample_data", "breadcrumbs")
151
+ if action
152
+ breadcrumb = format_breadcrumb(action, category, message, metadata, time)
153
+ expect(breadcrumbs).to include(breadcrumb)
154
+ else
155
+ expect(transaction.to_h.dig("sample_data", "breadcrumbs")).to be_any
156
+ end
157
+ end
158
+
159
+ match_when_negated(:notify_expectation_failures => true) do |transaction|
160
+ breadcrumbs = transaction.to_h.dig("sample_data", "breadcrumbs")
161
+ if action
162
+ breadcrumb = format_breadcrumb(action, category, message, metadata, time)
163
+ expect(breadcrumbs).to_not include(breadcrumb)
164
+ else
165
+ expect(breadcrumbs).to_not be_any
166
+ end
167
+ end
168
+
169
+ def format_breadcrumb(action, category, message, metadata, time)
170
+ {
171
+ "action" => action,
172
+ "category" => category,
173
+ "message" => message,
174
+ "metadata" => metadata,
175
+ "time" => time
176
+ }
177
+ end
178
+ end
179
+ RSpec::Matchers.alias_matcher :include_breadcrumbs, :include_breadcrumb
180
+
181
+ RSpec::Matchers.define :have_queue_start do |queue_start_time|
182
+ match(:notify_expectation_failures => true) do |transaction|
183
+ expect(transaction.ext.queue_start).to eq(queue_start_time)
184
+ end
185
+ end
@@ -0,0 +1,20 @@
1
+ class DummyApp
2
+ def initialize(&app)
3
+ @app = app
4
+ @called = false
5
+ end
6
+
7
+ def call(env)
8
+ if @app
9
+ @app&.call(env)
10
+ else
11
+ [200, {}, "body"]
12
+ end
13
+ ensure
14
+ @called = true
15
+ end
16
+
17
+ def called?
18
+ @called
19
+ end
20
+ end
@@ -1,22 +1,14 @@
1
1
  RSpec.shared_examples "instrument helper" do
2
- let(:stub) { double }
3
- before do
4
- expect(stub).to receive(:method_call).and_return("return value")
5
-
6
- expect(transaction).to receive(:start_event)
7
- expect(transaction).to receive(:finish_event).with(
8
- "name",
9
- "title",
10
- "body",
11
- 0
12
- )
13
- end
2
+ around { |example| keep_transactions { example.run } }
3
+ let(:stub) { double(:method_call => "return value") }
14
4
 
15
5
  it "records an event around the given block" do
16
6
  return_value = instrumenter.instrument "name", "title", "body" do
17
7
  stub.method_call
18
8
  end
19
9
  expect(return_value).to eq "return value"
10
+
11
+ expect_transaction_to_have_event
20
12
  end
21
13
 
22
14
  context "with an error raised in the passed block" do
@@ -27,6 +19,8 @@ RSpec.shared_examples "instrument helper" do
27
19
  raise ExampleException, "foo"
28
20
  end
29
21
  end.to raise_error(ExampleException, "foo")
22
+
23
+ expect_transaction_to_have_event
30
24
  end
31
25
  end
32
26
 
@@ -38,6 +32,17 @@ RSpec.shared_examples "instrument helper" do
38
32
  throw :foo
39
33
  end
40
34
  end.to throw_symbol(:foo)
35
+
36
+ expect_transaction_to_have_event
41
37
  end
42
38
  end
39
+
40
+ def expect_transaction_to_have_event
41
+ expect(transaction).to include_event(
42
+ "name" => "name",
43
+ "title" => "title",
44
+ "body" => "body",
45
+ "body_format" => Appsignal::EventFormatter::DEFAULT
46
+ )
47
+ end
43
48
  end
@@ -120,16 +120,25 @@ end
120
120
 
121
121
  module AppsignalTest
122
122
  module Transaction
123
- # Override the {Appsignal::Transaction.new} method so we can track which
124
- # transactions are created on the {Appsignal::Testing.transactions} list.
125
- #
126
- # @see TransactionHelpers#last_transaction
127
- def new(*_args)
128
- transaction = super
129
- Appsignal::Testing.transactions << transaction
130
- transaction
123
+ module ClassMethods
124
+ # Override the {Appsignal::Transaction.new} method so we can track which
125
+ # transactions are created on the {Appsignal::Testing.transactions} list.
126
+ #
127
+ # @see TransactionHelpers#last_transaction
128
+ def new(*_args)
129
+ transaction = super
130
+ Appsignal::Testing.transactions << transaction
131
+ transaction
132
+ end
133
+ end
134
+
135
+ module InstanceMethods
136
+ def _sample
137
+ sample_data
138
+ end
131
139
  end
132
140
  end
133
141
  end
134
142
 
135
- Appsignal::Transaction.extend(AppsignalTest::Transaction)
143
+ Appsignal::Transaction.extend(AppsignalTest::Transaction::ClassMethods)
144
+ Appsignal::Transaction.prepend(AppsignalTest::Transaction::InstanceMethods)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.1
4
+ version: 3.9.3
5
5
  platform: java
6
6
  authors:
7
7
  - Robert Beekman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-06-24 00:00:00.000000000 Z
13
+ date: 2024-07-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -74,14 +74,14 @@ dependencies:
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 1.50.0
77
+ version: 1.64.1
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 1.50.0
84
+ version: 1.64.1
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: timecop
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -149,13 +149,13 @@ extra_rdoc_files: []
149
149
  files:
150
150
  - ".github/ISSUE_TEMPLATE/bug_report.md"
151
151
  - ".github/ISSUE_TEMPLATE/chore.md"
152
+ - ".github/workflows/ci.yml"
152
153
  - ".github/workflows/create_release_from_tag.yml"
153
154
  - ".gitignore"
154
155
  - ".gitmodules"
155
156
  - ".rspec"
156
157
  - ".rubocop.yml"
157
158
  - ".rubocop_todo.yml"
158
- - ".semaphore/semaphore.yml"
159
159
  - ".yardopts"
160
160
  - CHANGELOG.md
161
161
  - CODE_OF_CONDUCT.md
@@ -177,7 +177,8 @@ files:
177
177
  - gemfiles/capistrano3.gemfile
178
178
  - gemfiles/dry-monitor.gemfile
179
179
  - gemfiles/grape.gemfile
180
- - gemfiles/hanami.gemfile
180
+ - gemfiles/hanami-2.0.gemfile
181
+ - gemfiles/hanami-2.1.gemfile
181
182
  - gemfiles/http5.gemfile
182
183
  - gemfiles/no_dependencies.gemfile
183
184
  - gemfiles/padrino.gemfile
@@ -288,6 +289,8 @@ files:
288
289
  - lib/appsignal/rack/abstract_middleware.rb
289
290
  - lib/appsignal/rack/event_handler.rb
290
291
  - lib/appsignal/rack/generic_instrumentation.rb
292
+ - lib/appsignal/rack/grape_middleware.rb
293
+ - lib/appsignal/rack/hanami_middleware.rb
291
294
  - lib/appsignal/rack/rails_instrumentation.rb
292
295
  - lib/appsignal/rack/sinatra_instrumentation.rb
293
296
  - lib/appsignal/rack/streaming_listener.rb
@@ -299,6 +302,7 @@ files:
299
302
  - lib/appsignal/utils/data.rb
300
303
  - lib/appsignal/utils/hash_sanitizer.rb
301
304
  - lib/appsignal/utils/integration_logger.rb
305
+ - lib/appsignal/utils/integration_memory_logger.rb
302
306
  - lib/appsignal/utils/json.rb
303
307
  - lib/appsignal/utils/query_params_sanitizer.rb
304
308
  - lib/appsignal/utils/rails_helper.rb
@@ -309,7 +313,6 @@ files:
309
313
  - mono.yml
310
314
  - resources/appsignal.yml.erb
311
315
  - resources/cacert.pem
312
- - script/lint_git
313
316
  - spec/.rubocop.yml
314
317
  - spec/lib/appsignal/auth_check_spec.rb
315
318
  - spec/lib/appsignal/capistrano2_spec.rb
@@ -370,10 +373,10 @@ files:
370
373
  - spec/lib/appsignal/hooks/webmachine_spec.rb
371
374
  - spec/lib/appsignal/hooks_spec.rb
372
375
  - spec/lib/appsignal/integrations/data_mapper_spec.rb
373
- - spec/lib/appsignal/integrations/grape_spec.rb
374
376
  - spec/lib/appsignal/integrations/hanami_spec.rb
375
377
  - spec/lib/appsignal/integrations/http_spec.rb
376
378
  - spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb
379
+ - spec/lib/appsignal/integrations/net_http_spec.rb
377
380
  - spec/lib/appsignal/integrations/object_spec.rb
378
381
  - spec/lib/appsignal/integrations/padrino_spec.rb
379
382
  - spec/lib/appsignal/integrations/que_spec.rb
@@ -390,6 +393,8 @@ files:
390
393
  - spec/lib/appsignal/rack/abstract_middleware_spec.rb
391
394
  - spec/lib/appsignal/rack/event_handler_spec.rb
392
395
  - spec/lib/appsignal/rack/generic_instrumentation_spec.rb
396
+ - spec/lib/appsignal/rack/grape_middleware_spec.rb
397
+ - spec/lib/appsignal/rack/hanami_middleware_spec.rb
393
398
  - spec/lib/appsignal/rack/rails_instrumentation_spec.rb
394
399
  - spec/lib/appsignal/rack/sinatra_instrumentation_spec.rb
395
400
  - spec/lib/appsignal/rack/streaming_listener_spec.rb
@@ -400,6 +405,7 @@ files:
400
405
  - spec/lib/appsignal/utils/data_spec.rb
401
406
  - spec/lib/appsignal/utils/hash_sanitizer_spec.rb
402
407
  - spec/lib/appsignal/utils/integration_logger_spec.rb
408
+ - spec/lib/appsignal/utils/integration_memory_logger_spec.rb
403
409
  - spec/lib/appsignal/utils/json_spec.rb
404
410
  - spec/lib/appsignal/utils/query_params_sanitizer_spec.rb
405
411
  - spec/lib/appsignal_spec.rb
@@ -433,10 +439,11 @@ files:
433
439
  - spec/support/helpers/time_helpers.rb
434
440
  - spec/support/helpers/transaction_helpers.rb
435
441
  - spec/support/helpers/wait_for_helper.rb
436
- - spec/support/matchers/be_completed.rb
437
442
  - spec/support/matchers/contains_log.rb
438
443
  - spec/support/matchers/have_colorized_text.rb
444
+ - spec/support/matchers/transaction.rb
439
445
  - spec/support/mocks/appsignal_mock.rb
446
+ - spec/support/mocks/dummy_app.rb
440
447
  - spec/support/mocks/fake_gc_profiler.rb
441
448
  - spec/support/mocks/fake_gvl_tools.rb
442
449
  - spec/support/mocks/mock_probe.rb
@@ -474,7 +481,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
474
481
  - !ruby/object:Gem::Version
475
482
  version: '0'
476
483
  requirements: []
477
- rubygems_version: 3.5.11
484
+ rubygems_version: 3.3.7
478
485
  signing_key:
479
486
  specification_version: 4
480
487
  summary: Logs performance and exception data from your app to appsignal.com