sentry-raven 2.8.0 → 3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b2c9069a9b5cfae47df6590266f31063b07347f4
4
- data.tar.gz: bacb13812cd83d2e16befab52f47c3cd08f481ec
2
+ SHA256:
3
+ metadata.gz: 6c812e5ab292c9f9351064bfc75f13bf3f6fff8ea1163a79a0e7da2e5efa9afb
4
+ data.tar.gz: 2fb7356fa0b26ee6f8a09a8ab023a21dcee132aa75fd3d1d87fd5f528a1c3366
5
5
  SHA512:
6
- metadata.gz: 94aa454b77018b446f06d1daf50bc97679fc76d45362bf63e1e876fad72882a3363dfe83d0a68b03b04b1e4590b55578e451e42d2badb538b44322ef5b794a06
7
- data.tar.gz: e5a2752c30d82bbeeaece755f09a4f4660b58aee9172460968447f40958a6c3ff0fc02b267040c1476097b361a0bc2785b61220acfaff1351e8dff4202010bb3
6
+ metadata.gz: b406e28322db6c9e96db35d108521f617c484cdef0367a6ea246709356d61b5917795289c3caf1cc7324f3228fba349a8b3f9a2b45aeaef0d01872848540db2a
7
+ data.tar.gz: f079139a9cf52c7344d28d55eec1fc108c237c76c23df7880122e66851d858bce86da817887d5a83f35c9732c619328178bfdd6f8cb6742c84024f0445710fed
data/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  dist: trusty
3
- sudo: false
4
3
  group: beta
5
4
  cache: bundler
6
5
 
@@ -11,10 +10,11 @@ branches:
11
10
  only: [master]
12
11
 
13
12
  rvm:
14
- - 2.2.9
15
- - 2.3.6
16
- - 2.4.3
17
- - 2.5.0
13
+ - 2.3.8
14
+ - 2.4.9
15
+ - 2.5.7
16
+ - 2.6.5
17
+ - 2.7.0
18
18
 
19
19
  env:
20
20
  - RAILS_VERSION=4
@@ -33,13 +33,9 @@ before_install:
33
33
 
34
34
  matrix:
35
35
  include:
36
- - rvm: 1.9
37
- env: RAILS_VERSION=4
38
- - rvm: jruby-1.7.27
39
- env: JRUBY_OPTS="--dev" RAILS_VERSION=4
40
- - rvm: jruby-9.2.0.0
36
+ - rvm: jruby-9.2.9.0
41
37
  env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=4
42
- - rvm: jruby-9.2.0.0
38
+ - rvm: jruby-9.2.9.0
43
39
  env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=5
44
40
  - rvm: ruby-head
45
41
  env: RAILS_VERSION=0
data/README.md CHANGED
@@ -13,13 +13,13 @@
13
13
  [![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=sentry-raven&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=sentry-raven&package-manager=bundler&version-scheme=semver)
14
14
 
15
15
 
16
- [Documentation](https://docs.getsentry.com/hosted/clients/ruby/) | [Bug Tracker](https://github.com/getsentry/raven-ruby/issues) | [Forum](https://forum.sentry.io/) | IRC: irc.freenode.net, #sentry
16
+ [Documentation](https://docs.sentry.io/clients/ruby/) | [Bug Tracker](https://github.com/getsentry/raven-ruby/issues) | [Forum](https://forum.sentry.io/) | IRC: irc.freenode.net, #sentry
17
17
 
18
18
  The official Ruby-language client and integration layer for the [Sentry](https://github.com/getsentry/sentry) error reporting API.
19
19
 
20
20
  ## Requirements
21
21
 
22
- We test on Ruby 1.9, 2.2, 2.3, and 2.4 at the latest patchlevel/teeny version. We also support JRuby 1.7 and 9.0. Our Rails integration works with Rails 4.2+ (including Rails 5).
22
+ We test on Ruby 2.3, 2.4, 2.5, 2.6 and 2.7 at the latest patchlevel/teeny version. We also support JRuby 9.0. Our Rails integration works with Rails 4.2+ (including Rails 5).
23
23
 
24
24
  ## Getting Started
25
25
 
@@ -133,4 +133,4 @@ For more information, see [Context](https://docs.sentry.io/clients/ruby/context/
133
133
  * [Documentation](https://docs.sentry.io/clients/ruby/)
134
134
  * [Bug Tracker](https://github.com/getsentry/raven-ruby/issues)
135
135
  * [Forum](https://forum.sentry.io/)
136
- * [IRC](irc://irc.freenode.net/sentry>) (irc.freenode.net, #sentry)
136
+ - [Discord](https://discord.gg/ez5KZN7)
data/changelog.md CHANGED
@@ -1,7 +1,77 @@
1
+ 3.0.0
2
+ ----
3
+
4
+ * SDK now requires Ruby >= 2.3
5
+ * REF: Retain any literal "HTTP-" in header names [@elliterate, #950]
6
+ * REF: Delete JSON spec for recursive hashes [@ksylvest, #952]
7
+ * FEAT: Bump faraday version to latest [@ksylvest, #946]
8
+
9
+ 2.13.0
10
+ ----
11
+
12
+ * FIX: Sanitize event data before they are sent to async job. [@edariedl, #895]
13
+ * FIX: Serialization MongoDB ObjectId to JSON problem with gem delayed_job_mongoid conjunction. [@eagleas, #935]
14
+ * FEAT: Skip ActiveJob integration if there is a better one [@fsateler, #909]
15
+ * FIX: Bugs with send_event in asynchronous mode (#940) [@cstyles, #940]
16
+
17
+ 2.12.3
18
+ ----
19
+
20
+ * FIX: crash when Process.wait is used [@asBrettisay, #895]
21
+
22
+ 2.12.2
23
+ ----
24
+
25
+ * FIX: return tags/extra for [@rivayama, #931]
26
+
27
+ 2.12.1
28
+ ----
29
+
30
+ * FIX: undefined method `[]' for nil:NilClass [@HazAT, #932]
31
+
32
+ 2.12.0
33
+ ----
34
+
35
+ * FIX: Remove duplicate message when exception is emitted
36
+ * FIX: Frozen string bug in utf8conversation
37
+ * FEATURE: Allow block on tags_context and extra_context
38
+
39
+ 2.11.3
40
+ ----
41
+
42
+ * FIX: infinite backoff under pressure [@Bonias, #886]
43
+
44
+ 2.11.2
45
+ ----
46
+
47
+ * REF: Warn on 4xx error [@iloveitaly, #862]
48
+
49
+ 2.11.1
50
+ ----
51
+
52
+ * FIX: Call `to_s` on breadcrumb message [@halkeye, #914]
53
+
54
+ 2.11.0
55
+ ----
56
+
57
+ * FEATURE: Prepend the transaction around_action so libraries with controllers can alter the value. [@drcapulet, #887]
58
+
59
+ 2.10.0
60
+ -----
61
+
62
+ * FEATURE: Added support for `SENTRY_ENVIRONMENT` [@mtsmfm, #910]
63
+ * FEATURE: Added support for `SENTRY_RELEASE` [@coorasse, #911]
64
+
65
+ 2.9.0
66
+ -----
67
+
68
+ * FEATURE: Added `config.inspect_exception_causes_for_exclusion`. Determines if the exception cause should be inspected for `config.excluded_exceptions` option. [@effron, #872]
69
+
70
+
1
71
  2.8.0
2
72
  -----
3
73
 
4
- * FEATURE: Added `config.before_send`. Provide a lambda or proc to this config setting, which will be `call`ed when before sending an event to Sentry. Receives `event` and `hint` as parameter. `hint` is a has {:exception => ex | nil, :message => message | nil}. [@hazat, #847]
74
+ * FEATURE: Added `config.before_send`. Provide a lambda or proc to this config setting, which will be `call`ed before sending an event to Sentry. Receives `event` and `hint` as parameters. `hint` is a hash `{:exception => ex | nil, :message => message | nil}`. [@hazat, #882]
5
75
 
6
76
  2.7.4
7
77
  -----
data/lib/raven/base.rb CHANGED
@@ -23,6 +23,7 @@ require 'raven/transports'
23
23
  require 'raven/transports/http'
24
24
  require 'raven/utils/deep_merge'
25
25
  require 'raven/utils/real_ip'
26
+ require 'raven/utils/exception_cause_chain'
26
27
  require 'raven/instance'
27
28
 
28
29
  require 'forwardable'
@@ -99,7 +100,7 @@ module Raven
99
100
 
100
101
  def sys_command(command)
101
102
  result = `#{command} 2>&1` rescue nil
102
- return if result.nil? || result.empty? || $CHILD_STATUS.exitstatus != 0
103
+ return if result.nil? || result.empty? || ($CHILD_STATUS && $CHILD_STATUS.exitstatus != 0)
103
104
  result.strip
104
105
  end
105
106
  end
@@ -36,7 +36,7 @@ module Raven
36
36
 
37
37
  # some loggers will add leading/trailing space as they (incorrectly, mind you)
38
38
  # think of logging as a shortcut to std{out,err}
39
- message = message.strip
39
+ message = message.to_s.strip
40
40
 
41
41
  last_crumb = Raven.breadcrumbs.peek
42
42
  # try to avoid dupes from logger broadcasts
data/lib/raven/client.rb CHANGED
@@ -35,7 +35,8 @@ module Raven
35
35
  return
36
36
  end
37
37
 
38
- configuration.logger.info "Sending event #{event[:event_id]} to Sentry"
38
+ event_id = event[:event_id] || event['event_id']
39
+ configuration.logger.info "Sending event #{event_id} to Sentry"
39
40
 
40
41
  content_type, encoded_data = encode(event)
41
42
 
@@ -79,8 +80,20 @@ module Raven
79
80
  end
80
81
  end
81
82
 
83
+ def get_message_from_exception(event)
84
+ (
85
+ event &&
86
+ event[:exception] &&
87
+ event[:exception][:values] &&
88
+ event[:exception][:values][0] &&
89
+ event[:exception][:values][0][:type] &&
90
+ event[:exception][:values][0][:value] &&
91
+ "#{event[:exception][:values][0][:type]}: #{event[:exception][:values][0][:value]}"
92
+ )
93
+ end
94
+
82
95
  def get_log_message(event)
83
- (event && event[:message]) || '<no message value>'
96
+ (event && event[:message]) || (event && event['message']) || get_message_from_exception(event) || '<no message value>'
84
97
  end
85
98
 
86
99
  def generate_auth_header
@@ -100,13 +113,13 @@ module Raven
100
113
  end
101
114
 
102
115
  def failed_send(e, event)
103
- @state.failure
104
116
  if e # exception was raised
105
- configuration.logger.error "Unable to record event with remote Sentry server (#{e.class} - #{e.message}):\n#{e.backtrace[0..10].join("\n")}"
117
+ @state.failure
118
+ configuration.logger.warn "Unable to record event with remote Sentry server (#{e.class} - #{e.message}):\n#{e.backtrace[0..10].join("\n")}"
106
119
  else
107
- configuration.logger.error "Not sending event due to previous failure(s)."
120
+ configuration.logger.warn "Not sending event due to previous failure(s)."
108
121
  end
109
- configuration.logger.error("Failed to submit event: #{get_log_message(event)}")
122
+ configuration.logger.warn("Failed to submit event: #{get_log_message(event)}")
110
123
  configuration.transport_failure_callback.call(event) if configuration.transport_failure_callback
111
124
  end
112
125
  end
@@ -31,6 +31,10 @@ module Raven
31
31
  # You should probably append to this rather than overwrite it.
32
32
  attr_accessor :excluded_exceptions
33
33
 
34
+ # Boolean to check nested exceptions when deciding if to exclude. Defaults to false
35
+ attr_accessor :inspect_exception_causes_for_exclusion
36
+ alias inspect_exception_causes_for_exclusion? inspect_exception_causes_for_exclusion
37
+
34
38
  # DSN component - set automatically if DSN provided
35
39
  attr_accessor :host
36
40
 
@@ -205,6 +209,7 @@ module Raven
205
209
  self.environments = []
206
210
  self.exclude_loggers = []
207
211
  self.excluded_exceptions = IGNORE_DEFAULT.dup
212
+ self.inspect_exception_causes_for_exclusion = false
208
213
  self.linecache = ::Raven::LineCache.new
209
214
  self.logger = ::Raven::Logger.new(STDOUT)
210
215
  self.open_timeout = 1
@@ -342,21 +347,32 @@ module Raven
342
347
  end
343
348
 
344
349
  def detect_release
345
- detect_release_from_git ||
350
+ detect_release_from_env ||
351
+ detect_release_from_git ||
346
352
  detect_release_from_capistrano ||
347
353
  detect_release_from_heroku
348
354
  rescue => ex
349
355
  logger.error "Error detecting release: #{ex.message}"
350
356
  end
351
357
 
352
- def excluded_exception?(exc)
353
- excluded_exceptions.any? { |x| get_exception_class(x) === exc }
358
+ def excluded_exception?(incoming_exception)
359
+ excluded_exceptions.any? do |excluded_exception|
360
+ matches_exception?(get_exception_class(excluded_exception), incoming_exception)
361
+ end
354
362
  end
355
363
 
356
364
  def get_exception_class(x)
357
365
  x.is_a?(Module) ? x : qualified_const_get(x)
358
366
  end
359
367
 
368
+ def matches_exception?(excluded_exception_class, incoming_exception)
369
+ if inspect_exception_causes_for_exclusion?
370
+ Raven::Utils::ExceptionCauseChain.exception_to_array(incoming_exception).any? { |cause| excluded_exception_class === cause }
371
+ else
372
+ excluded_exception_class === incoming_exception
373
+ end
374
+ end
375
+
360
376
  # In Ruby <2.0 const_get can't lookup "SomeModule::SomeClass" in one go
361
377
  def qualified_const_get(x)
362
378
  x = x.to_s
@@ -396,6 +412,10 @@ module Raven
396
412
  Raven.sys_command("git rev-parse --short HEAD") if File.directory?(".git")
397
413
  end
398
414
 
415
+ def detect_release_from_env
416
+ ENV['SENTRY_RELEASE']
417
+ end
418
+
399
419
  def capture_in_current_environment?
400
420
  return true unless environments.any? && !environments.include?(current_environment)
401
421
  @errors << "Not configured to send/capture in environment '#{current_environment}'"
@@ -438,7 +458,7 @@ module Raven
438
458
  end
439
459
 
440
460
  def current_environment_from_env
441
- ENV['SENTRY_CURRENT_ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default'
461
+ ENV['SENTRY_CURRENT_ENV'] || ENV['SENTRY_ENVIRONMENT'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default'
442
462
  end
443
463
 
444
464
  def server_name_from_env
data/lib/raven/event.rb CHANGED
@@ -59,10 +59,7 @@ module Raven
59
59
  return unless configuration.exception_class_allowed?(exc)
60
60
 
61
61
  new(options) do |evt|
62
- evt.message = "#{exc.class}: #{exc.message}"
63
-
64
62
  evt.add_exception_interface(exc)
65
-
66
63
  yield evt if block
67
64
  end
68
65
  end
@@ -139,7 +136,7 @@ module Raven
139
136
 
140
137
  def add_exception_interface(exc)
141
138
  interface(:exception) do |exc_int|
142
- exceptions = exception_chain_to_array(exc)
139
+ exceptions = Raven::Utils::ExceptionCauseChain.exception_to_array(exc).reverse
143
140
  backtraces = Set.new
144
141
  exc_int.values = exceptions.map do |e|
145
142
  SingleExceptionInterface.new do |int|
@@ -231,24 +228,7 @@ module Raven
231
228
  end
232
229
 
233
230
  def async_json_processors
234
- [
235
- Raven::Processor::RemoveCircularReferences,
236
- Raven::Processor::UTF8Conversion
237
- ].map { |v| v.new(self) }
238
- end
239
-
240
- def exception_chain_to_array(exc)
241
- if exc.respond_to?(:cause) && exc.cause
242
- exceptions = [exc]
243
- while exc.cause
244
- exc = exc.cause
245
- break if exceptions.any? { |e| e.object_id == exc.object_id }
246
- exceptions << exc
247
- end
248
- exceptions.reverse!
249
- else
250
- [exc]
251
- end
231
+ configuration.processors.map { |v| v.new(self) }
252
232
  end
253
233
 
254
234
  def list_gem_specs
@@ -183,6 +183,10 @@ module Raven
183
183
  # Raven.tags_context('my_custom_tag' => 'tag_value')
184
184
  def tags_context(options = nil)
185
185
  context.tags.merge!(options || {})
186
+ yield if block_given?
187
+ context.tags
188
+ ensure
189
+ context.tags.delete_if { |k, _| options.keys.include? k } if block_given?
186
190
  end
187
191
 
188
192
  # Bind extra context. Merges with existing context (if any).
@@ -194,6 +198,10 @@ module Raven
194
198
  # Raven.extra_context('my_custom_data' => 'value')
195
199
  def extra_context(options = nil)
196
200
  context.extra.merge!(options || {})
201
+ yield if block_given?
202
+ context.extra
203
+ ensure
204
+ context.extra.delete_if { |k, _| options.keys.include? k } if block_given?
197
205
  end
198
206
 
199
207
  def rack_context(env)
@@ -13,7 +13,7 @@ module Delayed
13
13
  # Log error to Sentry
14
14
  extra = {
15
15
  :delayed_job => {
16
- :id => job.id,
16
+ :id => job.id.to_s,
17
17
  :priority => job.priority,
18
18
  :attempts => job.attempts,
19
19
  :run_at => job.run_at,
@@ -36,7 +36,7 @@ module Delayed
36
36
  :logger => 'delayed_job',
37
37
  :tags => {
38
38
  :delayed_job_queue => job.queue,
39
- :delayed_job_id => job.id
39
+ :delayed_job_id => job.id.to_s
40
40
  },
41
41
  :extra => extra)
42
42
 
@@ -113,7 +113,7 @@ module Raven
113
113
 
114
114
  next unless key.start_with?('HTTP_') || %w(CONTENT_TYPE CONTENT_LENGTH).include?(key)
115
115
  # Rack stores headers as HTTP_WHAT_EVER, we need What-Ever
116
- key = key.gsub("HTTP_", "")
116
+ key = key.sub(/^HTTP_/, "")
117
117
  key = key.split('_').map(&:capitalize).join('-')
118
118
  memo[key] = value
119
119
  rescue StandardError => e
@@ -9,7 +9,11 @@ module Raven
9
9
  def self.included(base)
10
10
  base.class_eval do
11
11
  around_perform do |job, block|
12
- capture_and_reraise_with_sentry(job, block)
12
+ if already_supported_by_specific_integration?(job)
13
+ block.call
14
+ else
15
+ capture_and_reraise_with_sentry(job, block)
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -18,9 +22,7 @@ module Raven
18
22
  block.call
19
23
  rescue Exception => exception # rubocop:disable Lint/RescueException
20
24
  return if rescue_with_handler(exception)
21
- unless already_supported_by_specific_integration?(job)
22
- Raven.capture_exception(exception, :extra => raven_context(job))
23
- end
25
+ Raven.capture_exception(exception, :extra => raven_context(job))
24
26
  raise exception
25
27
  ensure
26
28
  Context.clear!
@@ -2,7 +2,7 @@ module Raven
2
2
  class Rails
3
3
  module ControllerTransaction
4
4
  def self.included(base)
5
- base.around_action do |controller, block|
5
+ base.prepend_around_action do |controller, block|
6
6
  Raven.context.transaction.push "#{controller.class}##{controller.action_name}"
7
7
  block.call
8
8
  Raven.context.transaction.pop
@@ -39,7 +39,7 @@ module Raven
39
39
  # https://github.com/rspec/rspec-support/blob/f0af3fd74a94ff7bb700f6ba06dbdc67bba17fbf/lib/rspec/support/encoded_string.rb#L120-L139
40
40
  if String.method_defined?(:scrub) # 2.1+
41
41
  def remove_invalid_bytes(string)
42
- string.scrub!(REPLACE)
42
+ string.scrub(REPLACE)
43
43
  end
44
44
  else
45
45
  def remove_invalid_bytes(string)
@@ -0,0 +1,19 @@
1
+ module Raven
2
+ module Utils
3
+ module ExceptionCauseChain
4
+ def self.exception_to_array(exception)
5
+ if exception.respond_to?(:cause) && exception.cause
6
+ exceptions = [exception]
7
+ while exception.cause
8
+ exception = exception.cause
9
+ break if exceptions.any? { |e| e.object_id == exception.object_id }
10
+ exceptions << exception
11
+ end
12
+ exceptions
13
+ else
14
+ [exception]
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
data/lib/raven/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Raven
3
3
  # Freezing this constant breaks in 1.9.x
4
- VERSION = "2.8.0" # rubocop:disable Style/MutableConstant
4
+ VERSION = "3.0.0" # rubocop:disable Style/MutableConstant
5
5
  end
data/sentry-raven.gemspec CHANGED
@@ -5,17 +5,17 @@ Gem::Specification.new do |gem|
5
5
  gem.name = "sentry-raven"
6
6
  gem.authors = ["Sentry Team"]
7
7
  gem.description = gem.summary = "A gem that provides a client interface for the Sentry error logger"
8
- gem.email = "getsentry@googlegroups.com"
8
+ gem.email = "accounts@sentry.io"
9
9
  gem.license = 'Apache-2.0'
10
10
  gem.homepage = "https://github.com/getsentry/raven-ruby"
11
11
 
12
12
  gem.version = Raven::VERSION
13
13
  gem.platform = Gem::Platform::RUBY
14
- gem.required_ruby_version = '>= 1.9.0'
14
+ gem.required_ruby_version = '>= 2.3'
15
15
  gem.extra_rdoc_files = ["README.md", "LICENSE"]
16
16
  gem.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
17
17
  gem.bindir = "exe"
18
18
  gem.executables = "raven"
19
19
 
20
- gem.add_dependency "faraday", ">= 0.7.6", "< 1.0"
20
+ gem.add_dependency "faraday", ">= 1.0"
21
21
  end
metadata CHANGED
@@ -1,23 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-raven
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-09 00:00:00.000000000 Z
11
+ date: 2020-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.7.6
20
- - - "<"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '1.0'
23
20
  type: :runtime
@@ -25,13 +22,10 @@ dependencies:
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 0.7.6
30
- - - "<"
31
25
  - !ruby/object:Gem::Version
32
26
  version: '1.0'
33
27
  description: A gem that provides a client interface for the Sentry error logger
34
- email: getsentry@googlegroups.com
28
+ email: accounts@sentry.io
35
29
  executables:
36
30
  - raven
37
31
  extensions: []
@@ -96,6 +90,7 @@ files:
96
90
  - lib/raven/transports/http.rb
97
91
  - lib/raven/transports/stdout.rb
98
92
  - lib/raven/utils/deep_merge.rb
93
+ - lib/raven/utils/exception_cause_chain.rb
99
94
  - lib/raven/utils/real_ip.rb
100
95
  - lib/raven/version.rb
101
96
  - lib/sentry-raven-without-integrations.rb
@@ -113,15 +108,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
108
  requirements:
114
109
  - - ">="
115
110
  - !ruby/object:Gem::Version
116
- version: 1.9.0
111
+ version: '2.3'
117
112
  required_rubygems_version: !ruby/object:Gem::Requirement
118
113
  requirements:
119
114
  - - ">="
120
115
  - !ruby/object:Gem::Version
121
116
  version: '0'
122
117
  requirements: []
123
- rubyforge_project:
124
- rubygems_version: 2.5.2.3
118
+ rubygems_version: 3.0.3
125
119
  signing_key:
126
120
  specification_version: 4
127
121
  summary: A gem that provides a client interface for the Sentry error logger