sentry-raven 0.9.4 → 0.10.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sentry-raven might be problematic. Click here for more details.
- checksums.yaml +5 -13
- data/README.md +44 -5
- data/lib/raven/better_attr_accessor.rb +44 -0
- data/lib/raven/cli.rb +1 -1
- data/lib/raven/client.rb +12 -1
- data/lib/raven/configuration.rb +7 -2
- data/lib/raven/interfaces.rb +10 -26
- data/lib/raven/interfaces/exception.rb +4 -4
- data/lib/raven/interfaces/http.rb +7 -7
- data/lib/raven/interfaces/message.rb +2 -2
- data/lib/raven/interfaces/stack_trace.rb +10 -19
- data/lib/raven/processors/sanitizedata.rb +11 -0
- data/lib/raven/rack.rb +6 -5
- data/lib/raven/railtie.rb +8 -6
- data/lib/raven/sidekiq.rb +1 -1
- data/lib/raven/version.rb +1 -1
- metadata +36 -35
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZWRjN2MyNTA2YzQ4ODliYTY0N2Y3ZTg3Y2MyNjUzMjYxODg0NWYzZg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 057d8d70d5fbf847fa8c41a33a8dabc5f4bf1f4d
|
4
|
+
data.tar.gz: 2042e4bbae25824369c260746f21c31b64d3c4f4
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NzZkYjQ0OTFiNjhmMmZlMzRiYzgyNWRkYjAzZWUzN2NlM2M3OGZiNDRlNzBk
|
11
|
-
YjhmYWM0ZjlkNTU2YWE3NDkwMTM2M2RiNWJjMDIzNDA0NjAzMDU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YmIzZDVlM2RhZDU3MzNiYmI2MDkxNTM0MmYxNTRhOTEwZTRkOTkyOWMxOWEx
|
14
|
-
M2U4ZmQwN2MxOGM0NDYzYWZiY2Y1NmIxOTNkZTIyN2RiYTliMGVlNjU0NmUy
|
15
|
-
MWFjZDgzYmEzYmNiZWU5ODFmNGY4NmQ0YmY5ZGRiNDg2MmM5YmE=
|
6
|
+
metadata.gz: a74a58c59287a2d4fde07886f26d9634e08f1b3b5bcf9c5c793facaec632094a83e047f426953a88b193911b71e4364fa541a0276b851f2dc86c1ea1a1aa7913
|
7
|
+
data.tar.gz: de5656fd29ce7aff1ad06c919179363f3330ff05cd4a7ab0ad17a733fb300d4468c2e3b487b4c9480abf9841d8ed28a928336d31d8df0d7d9a979c1f0cf9938b
|
data/README.md
CHANGED
@@ -25,7 +25,15 @@ the Rack middleware). If you catch those exceptions yourself, but still want to
|
|
25
25
|
|
26
26
|
### Rails 3 or 4
|
27
27
|
|
28
|
-
In Rails 3 or 4 all uncaught exceptions will be automatically reported.
|
28
|
+
In Rails 3 or 4 all uncaught exceptions will be automatically reported under most situations.
|
29
|
+
|
30
|
+
You'll still want to ensure you've disabled anything that would prevent errors from being propagated to the ```Raven::Rack``` middleware:
|
31
|
+
|
32
|
+
Disable ```ActionDispatch::ShowExceptions```:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
config.action_dispatch.show_exceptions = false
|
36
|
+
```
|
29
37
|
|
30
38
|
#### Delayed::Job
|
31
39
|
|
@@ -175,9 +183,11 @@ end
|
|
175
183
|
|
176
184
|
### Environments
|
177
185
|
|
178
|
-
By default events will be sent to Sentry in all environments
|
186
|
+
By default, events will be sent to Sentry in all environments. If you do not wish
|
187
|
+
to send events in an environment, we suggest you unset the ```SENTRY_DSN```
|
188
|
+
variable in that environment.
|
179
189
|
|
180
|
-
|
190
|
+
Alternately, you can configure Raven to run only in certain environments by configuring the `environments` whitelist. For example, to only run Sentry in production:
|
181
191
|
|
182
192
|
```ruby
|
183
193
|
Raven.configure do |config|
|
@@ -233,7 +243,7 @@ end
|
|
233
243
|
|
234
244
|
### Asynchronous Delivery
|
235
245
|
|
236
|
-
When an error occurs, the notification is immediately sent to Sentry. Raven can be configured
|
246
|
+
When an error occurs, the notification is immediately sent to Sentry. Raven can be configured
|
237
247
|
to send notifications asynchronously:
|
238
248
|
|
239
249
|
```ruby
|
@@ -244,7 +254,7 @@ Raven.configure do |config|
|
|
244
254
|
end
|
245
255
|
```
|
246
256
|
|
247
|
-
This example uses a thread, but other tools can be used (GirlFriday, Resque, Sidekiq, etc...) as
|
257
|
+
This example uses a thread, but other tools can be used (GirlFriday, Resque, Sidekiq, etc...) as
|
248
258
|
long as the `event` argument is eventually passed to `Raven.send`.
|
249
259
|
|
250
260
|
### Logging
|
@@ -261,6 +271,35 @@ Raven.configure do |config|
|
|
261
271
|
end
|
262
272
|
```
|
263
273
|
|
274
|
+
If you are using Rails, Raven will default to using Rails.logger as the logger.
|
275
|
+
|
276
|
+
### Encoding
|
277
|
+
|
278
|
+
While unlikely that you'll need to change it, by default Raven compresses outgoing messages with gzip. This has a slight impact on performance, but due to the size of many Ruby stacktrace it's required for the serve to accept the content.
|
279
|
+
|
280
|
+
To disable gzip, set the encoding to 'json':
|
281
|
+
|
282
|
+
```ruby
|
283
|
+
Raven.configure do |config|
|
284
|
+
config.encoding = 'json'
|
285
|
+
end
|
286
|
+
```
|
287
|
+
|
288
|
+
### Silencing the ready message
|
289
|
+
|
290
|
+
Upon start, Raven will write the following message to the log at the INFO level:
|
291
|
+
|
292
|
+
** [out :: hostname.example.com] I, [2014-07-22T15:32:57.498368 #30897] INFO -- : ** [Raven] Raven 0.9.4 ready to catch errors"
|
293
|
+
|
294
|
+
You can turn off this message by passing `true` to `Raven.configure`
|
295
|
+
|
296
|
+
```ruby
|
297
|
+
Raven.configure(true) do |config|
|
298
|
+
...
|
299
|
+
end
|
300
|
+
```
|
301
|
+
|
302
|
+
|
264
303
|
## Sanitizing Data (Processors)
|
265
304
|
|
266
305
|
If you need to sanitize or pre-process (before its sent to the server) data, you can do so using the Processors
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
module Raven
|
4
|
+
module BetterAttrAccessor
|
5
|
+
|
6
|
+
def attributes
|
7
|
+
Hash[
|
8
|
+
self.class.attributes.map do |attr|
|
9
|
+
[attr, send(attr)]
|
10
|
+
end
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.included(base)
|
15
|
+
base.extend ClassMethods
|
16
|
+
end
|
17
|
+
|
18
|
+
module ClassMethods
|
19
|
+
def attributes
|
20
|
+
@attributes ||= Set.new
|
21
|
+
|
22
|
+
if superclass.include? BetterAttrAccessor
|
23
|
+
@attributes + superclass.attributes
|
24
|
+
else
|
25
|
+
@attributes
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def attr_accessor(attr, options = {})
|
30
|
+
@attributes ||= Set.new
|
31
|
+
@attributes << attr.to_s
|
32
|
+
|
33
|
+
define_method attr do
|
34
|
+
if instance_variable_defined? "@#{attr}"
|
35
|
+
instance_variable_get "@#{attr}"
|
36
|
+
elsif options.key? :default
|
37
|
+
instance_variable_set "@#{attr}", options[:default].dup
|
38
|
+
end
|
39
|
+
end
|
40
|
+
attr_writer attr
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/raven/cli.rb
CHANGED
data/lib/raven/client.rb
CHANGED
@@ -59,7 +59,7 @@ module Raven
|
|
59
59
|
case self.configuration.encoding
|
60
60
|
when 'gzip'
|
61
61
|
gzipped = Zlib::Deflate.deflate(encoded)
|
62
|
-
b64_encoded =
|
62
|
+
b64_encoded = strict_encode64(gzipped)
|
63
63
|
return 'application/octet-stream', b64_encoded
|
64
64
|
else
|
65
65
|
return 'application/json', encoded
|
@@ -89,5 +89,16 @@ module Raven
|
|
89
89
|
}
|
90
90
|
'Sentry ' + fields.map { |key, value| "#{key}=#{value}" }.join(', ')
|
91
91
|
end
|
92
|
+
|
93
|
+
private
|
94
|
+
|
95
|
+
def strict_encode64(string)
|
96
|
+
if Base64.respond_to? :strict_encode64
|
97
|
+
Base64.strict_encode64 string
|
98
|
+
else # Ruby 1.8
|
99
|
+
Base64.encode64(string)[0..-2]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
92
103
|
end
|
93
104
|
end
|
data/lib/raven/configuration.rb
CHANGED
@@ -76,6 +76,10 @@ module Raven
|
|
76
76
|
# Exceptions from these directories to be ignored
|
77
77
|
attr_accessor :app_dirs_pattern
|
78
78
|
|
79
|
+
# Catch exceptions before they're been processed by
|
80
|
+
# ActionDispatch::ShowExceptions or ActionDispatch::DebugExceptions
|
81
|
+
attr_accessor :catch_debugged_exceptions
|
82
|
+
|
79
83
|
IGNORE_DEFAULT = ['ActiveRecord::RecordNotFound',
|
80
84
|
'ActionController::RoutingError',
|
81
85
|
'ActionController::InvalidAuthenticityToken',
|
@@ -92,11 +96,12 @@ module Raven
|
|
92
96
|
self.excluded_exceptions = IGNORE_DEFAULT
|
93
97
|
self.processors = [Raven::Processor::SanitizeData]
|
94
98
|
self.ssl_verification = false
|
95
|
-
self.encoding = '
|
99
|
+
self.encoding = 'gzip'
|
96
100
|
self.timeout = 1
|
97
101
|
self.open_timeout = 1
|
98
102
|
self.tags = {}
|
99
103
|
self.async = false
|
104
|
+
self.catch_debugged_exceptions = true
|
100
105
|
end
|
101
106
|
|
102
107
|
def server=(value)
|
@@ -150,7 +155,7 @@ module Raven
|
|
150
155
|
if environments
|
151
156
|
environments.include?(current_environment)
|
152
157
|
else
|
153
|
-
|
158
|
+
true
|
154
159
|
end
|
155
160
|
end
|
156
161
|
|
data/lib/raven/interfaces.rb
CHANGED
@@ -1,39 +1,23 @@
|
|
1
|
-
require '
|
1
|
+
require 'raven/better_attr_accessor'
|
2
2
|
|
3
3
|
module Raven
|
4
4
|
|
5
5
|
INTERFACES = {}
|
6
6
|
|
7
|
-
class Interface
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
def initialize(attributes = {}, &block)
|
13
|
-
@check_required = false
|
14
|
-
super(attributes)
|
15
|
-
block.call(self) if block
|
16
|
-
@check_required = true
|
17
|
-
|
18
|
-
begin
|
19
|
-
assert_required_attributes_set!
|
20
|
-
rescue NoMethodError
|
21
|
-
assert_required_properties_set!
|
22
|
-
end
|
7
|
+
class Interface
|
8
|
+
include BetterAttrAccessor
|
9
|
+
alias_method :to_hash, :attributes
|
23
10
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
11
|
+
def initialize(attributes = nil)
|
12
|
+
attributes.each do |attr, value|
|
13
|
+
send "#{attr}=", value
|
14
|
+
end if attributes
|
29
15
|
|
30
|
-
|
31
|
-
super if @check_required
|
16
|
+
yield self if block_given?
|
32
17
|
end
|
33
18
|
|
34
19
|
def self.name(value = nil)
|
35
|
-
@interface_name
|
36
|
-
@interface_name
|
20
|
+
@interface_name ||= value
|
37
21
|
end
|
38
22
|
end
|
39
23
|
|
@@ -4,10 +4,10 @@ module Raven
|
|
4
4
|
class ExceptionInterface < Interface
|
5
5
|
|
6
6
|
name 'exception'
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
attr_accessor :type
|
8
|
+
attr_accessor :value
|
9
|
+
attr_accessor :module
|
10
|
+
attr_accessor :stacktrace
|
11
11
|
|
12
12
|
def to_hash(*args)
|
13
13
|
data = super(*args)
|
@@ -4,13 +4,13 @@ module Raven
|
|
4
4
|
class HttpInterface < Interface
|
5
5
|
|
6
6
|
name 'request'
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
attr_accessor :url
|
8
|
+
attr_accessor :method
|
9
|
+
attr_accessor :data
|
10
|
+
attr_accessor :query_string
|
11
|
+
attr_accessor :cookies
|
12
|
+
attr_accessor :headers
|
13
|
+
attr_accessor :env
|
14
14
|
|
15
15
|
def initialize(*arguments)
|
16
16
|
self.headers = {}
|
@@ -1,12 +1,10 @@
|
|
1
|
-
require 'hashie'
|
2
|
-
|
3
1
|
require 'raven/interfaces'
|
4
2
|
|
5
3
|
module Raven
|
6
4
|
class StacktraceInterface < Interface
|
7
5
|
|
8
6
|
name 'stacktrace'
|
9
|
-
|
7
|
+
attr_accessor :frames, :default => []
|
10
8
|
|
11
9
|
def initialize(*arguments)
|
12
10
|
self.frames = []
|
@@ -25,27 +23,20 @@ module Raven
|
|
25
23
|
|
26
24
|
# Not actually an interface, but I want to use the same style
|
27
25
|
class Frame < Interface
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
def initialize(*arguments)
|
38
|
-
self.vars = {}
|
39
|
-
self.pre_context = []
|
40
|
-
self.post_context = []
|
41
|
-
super(*arguments)
|
42
|
-
end
|
26
|
+
attr_accessor :abs_path
|
27
|
+
attr_accessor :function
|
28
|
+
attr_accessor :vars, :default => []
|
29
|
+
attr_accessor :pre_context, :default => []
|
30
|
+
attr_accessor :post_context, :default => []
|
31
|
+
attr_accessor :context_line
|
32
|
+
attr_accessor :lineno
|
33
|
+
attr_accessor :in_app
|
43
34
|
|
44
35
|
def filename
|
45
36
|
return nil if self.abs_path.nil?
|
46
37
|
|
47
38
|
prefix = $LOAD_PATH.select { |s| self.abs_path.start_with?(s.to_s) }.sort_by { |s| s.to_s.length }.last
|
48
|
-
prefix ? self.abs_path[prefix.chomp(File::SEPARATOR).length+1..-1] : self.abs_path
|
39
|
+
prefix ? self.abs_path[prefix.to_s.chomp(File::SEPARATOR).length+1..-1] : self.abs_path
|
49
40
|
end
|
50
41
|
|
51
42
|
def to_hash(*args)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'raven/processor'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
module Raven
|
4
5
|
module Processor
|
@@ -24,6 +25,16 @@ module Raven
|
|
24
25
|
value.map do |value_|
|
25
26
|
apply(value_, key, visited, &block)
|
26
27
|
end
|
28
|
+
elsif value.is_a?(String) && json_hash = JSON.parse(value) rescue nil
|
29
|
+
return "[...]" if visited.include?(value.__id__)
|
30
|
+
visited += [value.__id__]
|
31
|
+
|
32
|
+
json_hash = json_hash.each.reduce({}) do |memo, (k, v)|
|
33
|
+
memo[k] = apply(v, k, visited, &block)
|
34
|
+
memo
|
35
|
+
end
|
36
|
+
|
37
|
+
json_hash.to_json
|
27
38
|
else
|
28
39
|
block.call(key, value)
|
29
40
|
end
|
data/lib/raven/rack.rb
CHANGED
@@ -21,8 +21,8 @@ module Raven
|
|
21
21
|
# Use a standard Raven.configure call to configure your server credentials.
|
22
22
|
class Rack
|
23
23
|
def self.capture_exception(exception, env, options = {})
|
24
|
-
if env[
|
25
|
-
options[:time_spent] = Time.now - env[
|
24
|
+
if env['requested_at']
|
25
|
+
options[:time_spent] = Time.now - env['requested_at']
|
26
26
|
end
|
27
27
|
Raven.capture_exception(exception, options) do |evt|
|
28
28
|
evt.interface :http do |int|
|
@@ -32,8 +32,8 @@ module Raven
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def self.capture_message(message, env, options = {})
|
35
|
-
if env[
|
36
|
-
options[:time_spent] = Time.now - env[
|
35
|
+
if env['requested_at']
|
36
|
+
options[:time_spent] = Time.now - env['requested_at']
|
37
37
|
end
|
38
38
|
Raven.capture_message(message, options) do |evt|
|
39
39
|
evt.interface :http do |int|
|
@@ -52,7 +52,7 @@ module Raven
|
|
52
52
|
|
53
53
|
# store the current environment in our local context for arbitrary
|
54
54
|
# callers
|
55
|
-
env[
|
55
|
+
env['requested_at'] = Time.now
|
56
56
|
Raven.rack_context(env)
|
57
57
|
|
58
58
|
begin
|
@@ -60,6 +60,7 @@ module Raven
|
|
60
60
|
rescue Error
|
61
61
|
raise # Don't capture Raven errors
|
62
62
|
rescue Exception => e
|
63
|
+
Raven.logger.debug "Collecting %p: %s" % [ e.class, e.message ]
|
63
64
|
Raven::Rack.capture_exception(e, env)
|
64
65
|
raise
|
65
66
|
end
|
data/lib/raven/railtie.rb
CHANGED
@@ -20,12 +20,14 @@ module Raven
|
|
20
20
|
config.project_root ||= ::Rails.root
|
21
21
|
end
|
22
22
|
|
23
|
-
if
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
if Raven.configuration.catch_debugged_exceptions
|
24
|
+
if defined?(::ActionDispatch::DebugExceptions)
|
25
|
+
require 'raven/rails/middleware/debug_exceptions_catcher'
|
26
|
+
::ActionDispatch::DebugExceptions.send(:include, Raven::Rails::Middleware::DebugExceptionsCatcher)
|
27
|
+
elsif defined?(::ActionDispatch::ShowExceptions)
|
28
|
+
require 'raven/rails/middleware/debug_exceptions_catcher'
|
29
|
+
::ActionDispatch::ShowExceptions.send(:include, Raven::Rails::Middleware::DebugExceptionsCatcher)
|
30
|
+
end
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
data/lib/raven/sidekiq.rb
CHANGED
@@ -22,6 +22,6 @@ if Sidekiq::VERSION < '3'
|
|
22
22
|
end
|
23
23
|
else
|
24
24
|
Sidekiq.configure_server do |config|
|
25
|
-
config.error_handlers << Proc.new {|ex,context| Raven.capture_exception(ex, context) }
|
25
|
+
config.error_handlers << Proc.new {|ex,context| Raven.capture_exception(ex, :extra => {:sidekiq => context}) }
|
26
26
|
end
|
27
27
|
end
|
data/lib/raven/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentry-raven
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Kantrowitz
|
@@ -9,62 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 0.7.6
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.7.6
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: uuidtools
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: hashie
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - ! '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 1.1.0
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ! '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 1.1.0
|
56
42
|
- !ruby/object:Gem::Dependency
|
57
43
|
name: rake
|
58
44
|
requirement: !ruby/object:Gem::Requirement
|
59
45
|
requirements:
|
60
|
-
- -
|
46
|
+
- - '>='
|
61
47
|
- !ruby/object:Gem::Version
|
62
48
|
version: '0'
|
63
49
|
type: :development
|
64
50
|
prerelease: false
|
65
51
|
version_requirements: !ruby/object:Gem::Requirement
|
66
52
|
requirements:
|
67
|
-
- -
|
53
|
+
- - '>='
|
68
54
|
- !ruby/object:Gem::Version
|
69
55
|
version: '0'
|
70
56
|
- !ruby/object:Gem::Dependency
|
@@ -73,14 +59,14 @@ dependencies:
|
|
73
59
|
requirements:
|
74
60
|
- - ~>
|
75
61
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
62
|
+
version: '3.0'
|
77
63
|
type: :development
|
78
64
|
prerelease: false
|
79
65
|
version_requirements: !ruby/object:Gem::Requirement
|
80
66
|
requirements:
|
81
67
|
- - ~>
|
82
68
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
69
|
+
version: '3.0'
|
84
70
|
- !ruby/object:Gem::Dependency
|
85
71
|
name: mime-types
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,14 +85,28 @@ dependencies:
|
|
99
85
|
name: coveralls
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
|
-
- -
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rest-client
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '>='
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - '>='
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
description:
|
@@ -118,12 +118,9 @@ extra_rdoc_files:
|
|
118
118
|
- README.md
|
119
119
|
- LICENSE
|
120
120
|
files:
|
121
|
-
- LICENSE
|
122
|
-
- README.md
|
123
|
-
- bin/raven
|
124
|
-
- lib/raven.rb
|
125
121
|
- lib/raven/backtrace.rb
|
126
122
|
- lib/raven/base.rb
|
123
|
+
- lib/raven/better_attr_accessor.rb
|
127
124
|
- lib/raven/cli.rb
|
128
125
|
- lib/raven/client.rb
|
129
126
|
- lib/raven/configuration.rb
|
@@ -131,11 +128,11 @@ files:
|
|
131
128
|
- lib/raven/error.rb
|
132
129
|
- lib/raven/event.rb
|
133
130
|
- lib/raven/integrations/delayed_job.rb
|
134
|
-
- lib/raven/interfaces.rb
|
135
131
|
- lib/raven/interfaces/exception.rb
|
136
132
|
- lib/raven/interfaces/http.rb
|
137
133
|
- lib/raven/interfaces/message.rb
|
138
134
|
- lib/raven/interfaces/stack_trace.rb
|
135
|
+
- lib/raven/interfaces.rb
|
139
136
|
- lib/raven/linecache.rb
|
140
137
|
- lib/raven/logger.rb
|
141
138
|
- lib/raven/okjson.rb
|
@@ -147,11 +144,15 @@ files:
|
|
147
144
|
- lib/raven/railtie.rb
|
148
145
|
- lib/raven/sidekiq.rb
|
149
146
|
- lib/raven/tasks.rb
|
150
|
-
- lib/raven/transports.rb
|
151
147
|
- lib/raven/transports/http.rb
|
152
148
|
- lib/raven/transports/udp.rb
|
149
|
+
- lib/raven/transports.rb
|
153
150
|
- lib/raven/version.rb
|
151
|
+
- lib/raven.rb
|
154
152
|
- lib/sentry-raven.rb
|
153
|
+
- README.md
|
154
|
+
- LICENSE
|
155
|
+
- bin/raven
|
155
156
|
homepage: http://github.com/getsentry/raven-ruby
|
156
157
|
licenses:
|
157
158
|
- Apache-2.0
|
@@ -162,17 +163,17 @@ require_paths:
|
|
162
163
|
- lib
|
163
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
164
165
|
requirements:
|
165
|
-
- -
|
166
|
+
- - '>='
|
166
167
|
- !ruby/object:Gem::Version
|
167
168
|
version: '0'
|
168
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
170
|
requirements:
|
170
|
-
- -
|
171
|
+
- - '>='
|
171
172
|
- !ruby/object:Gem::Version
|
172
173
|
version: '0'
|
173
174
|
requirements: []
|
174
175
|
rubyforge_project:
|
175
|
-
rubygems_version: 2.
|
176
|
+
rubygems_version: 2.0.3
|
176
177
|
signing_key:
|
177
178
|
specification_version: 4
|
178
179
|
summary: A gem that provides a client interface for the Sentry error logger
|