sentry-raven 0.9.4 → 0.10.1

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.

Potentially problematic release.


This version of sentry-raven might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGNhZTllOWIxNjg1ZDNkZmMxMzBmNmJhZDEzNjliOGYyNzNiZDc1MQ==
5
- data.tar.gz: !binary |-
6
- ZWRjN2MyNTA2YzQ4ODliYTY0N2Y3ZTg3Y2MyNjUzMjYxODg0NWYzZg==
2
+ SHA1:
3
+ metadata.gz: 057d8d70d5fbf847fa8c41a33a8dabc5f4bf1f4d
4
+ data.tar.gz: 2042e4bbae25824369c260746f21c31b64d3c4f4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZDI3NWFlZjY2YjBjNjYxNTBlYjg5NWRmOWQ2OWRmYTZlY2RkYzIyNTg2NDRl
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 except 'test', 'development', and 'cucumber'.
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
- You can configure Raven to run only in certain environments by configuring the `environments` whitelist. For example, to only run Sentry in production:
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
@@ -12,7 +12,7 @@ module Raven
12
12
  end
13
13
 
14
14
  Raven.configuration.logger = logger
15
-
15
+ Raven.configuration.timeout = 5
16
16
  Raven.configuration.dsn = dsn if dsn
17
17
 
18
18
  # wipe out env settings to ensure we send the event
@@ -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 = Base64.strict_encode64(gzipped)
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
@@ -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 = 'json'
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
- !%w[test cucumber development].include?(current_environment)
158
+ true
154
159
  end
155
160
  end
156
161
 
@@ -1,39 +1,23 @@
1
- require 'hashie'
1
+ require 'raven/better_attr_accessor'
2
2
 
3
3
  module Raven
4
4
 
5
5
  INTERFACES = {}
6
6
 
7
- class Interface < Hashie::Dash
8
- if defined?(Hashie::Extensions::Dash::IndifferentAccess)
9
- include Hashie::Extensions::Dash::IndifferentAccess
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
- end
25
-
26
- def assert_required_attributes_set!
27
- super if @check_required
28
- end
11
+ def initialize(attributes = nil)
12
+ attributes.each do |attr, value|
13
+ send "#{attr}=", value
14
+ end if attributes
29
15
 
30
- def assert_required_properties_set!
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 = value if value
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
- property :type, :required => true
8
- property :value, :required => true
9
- property :module
10
- property :stacktrace
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
- property :url, :required => true
8
- property :method, :required => true
9
- property :data
10
- property :query_string
11
- property :cookies
12
- property :headers
13
- property :env
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 = {}
@@ -4,8 +4,8 @@ module Raven
4
4
  class MessageInterface < Interface
5
5
 
6
6
  name 'sentry.interfaces.Message'
7
- property :message, :required => true
8
- property :params
7
+ attr_accessor :message
8
+ attr_accessor :params
9
9
 
10
10
  def initialize(*arguments)
11
11
  self.params = []
@@ -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
- property :frames, :default => []
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
- property :abs_path
29
- property :function
30
- property :vars
31
- property :pre_context
32
- property :post_context
33
- property :context_line
34
- property :lineno, :required => true
35
- property :in_app
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
@@ -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[:requested_at]
25
- options[:time_spent] = Time.now - env[:requested_at]
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[:requested_at]
36
- options[:time_spent] = Time.now - env[:requested_at]
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[:requested_at] = Time.now
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
@@ -20,12 +20,14 @@ module Raven
20
20
  config.project_root ||= ::Rails.root
21
21
  end
22
22
 
23
- if defined?(::ActionDispatch::DebugExceptions)
24
- require 'raven/rails/middleware/debug_exceptions_catcher'
25
- ::ActionDispatch::DebugExceptions.send(:include, Raven::Rails::Middleware::DebugExceptionsCatcher)
26
- elsif defined?(::ActionDispatch::ShowExceptions)
27
- require 'raven/rails/middleware/debug_exceptions_catcher'
28
- ::ActionDispatch::ShowExceptions.send(:include, Raven::Rails::Middleware::DebugExceptionsCatcher)
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
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Raven
2
- VERSION = "0.9.4"
2
+ VERSION = "0.10.1"
3
3
  end
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.9.4
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-07-09 00:00:00.000000000 Z
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: '2.10'
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: '2.10'
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.2.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