sentry-raven 0.4.3 → 0.4.4

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.

@@ -116,14 +116,34 @@ module Raven
116
116
  send(evt) if evt
117
117
  end
118
118
 
119
+ # Bind user context. Merges with existing context (if any).
120
+ #
121
+ # It is recommending that you send at least the ``id`` and ``email``
122
+ # values. All other values are arbitrary.
123
+ #
124
+ # @example
125
+ # Raven.user_context('id' => 1, 'email' => 'foo@example.com')
119
126
  def user_context(options={})
120
127
  self.context.user.merge!(options)
121
128
  end
122
129
 
130
+ # Bind tags context. Merges with existing context (if any).
131
+ #
132
+ # Tags are key / value pairs which generally represent things like application version,
133
+ # environment, role, and server names.
134
+ #
135
+ # @example
136
+ # Raven.tags_context('my_custom_tag' => 'tag_value')
123
137
  def tags_context(options={})
124
138
  self.context.tags.merge!(options)
125
139
  end
126
140
 
141
+ # Bind extra context. Merges with existing context (if any).
142
+ #
143
+ # Extra context shows up as Additional Data within Sentry, and is completely arbitrary.
144
+ #
145
+ # @example
146
+ # Raven.tags_context('my_custom_data' => 'value')
127
147
  def extra_context(options={})
128
148
  self.context.extra.merge!(options)
129
149
  end
@@ -18,6 +18,7 @@ module Raven
18
18
 
19
19
  def initialize(configuration)
20
20
  @configuration = configuration
21
+ @processors = configuration.processors.map { |v| v.new(self) }
21
22
  end
22
23
 
23
24
  def send(event)
@@ -26,6 +27,7 @@ module Raven
26
27
  # Set the project ID correctly
27
28
  event.project = self.configuration.project_id
28
29
  Raven.logger.debug "Sending event #{event.id} to Sentry"
30
+
29
31
  content_type, encoded_data = encode(event)
30
32
  transport.send(generate_auth_header(encoded_data), encoded_data,
31
33
  :content_type => content_type)
@@ -34,7 +36,15 @@ module Raven
34
36
  private
35
37
 
36
38
  def encode(event)
37
- encoded = MultiJson.encode(event.to_hash)
39
+ hash = event.to_hash
40
+
41
+ # apply processors
42
+ hash = @processors.reduce(hash) do |memo, processor|
43
+ processor.process(memo)
44
+ end
45
+
46
+ encoded = MultiJson.encode(hash)
47
+
38
48
  case self.configuration.encoding
39
49
  when 'gzip'
40
50
  gzipped = Zlib::Deflate.deflate(encoded)
@@ -19,6 +19,9 @@ module Raven
19
19
  # Project ID number to send to the Sentry server
20
20
  attr_accessor :project_id
21
21
 
22
+ # Project directory root
23
+ attr_accessor :project_root
24
+
22
25
  # Encoding type for event bodies
23
26
  attr_reader :encoding
24
27
 
@@ -24,7 +24,7 @@ module Raven
24
24
  end
25
25
 
26
26
  def sanitize(key, value)
27
- if !value || value.empty?
27
+ if !value.is_a?(String) || value.empty?
28
28
  value
29
29
  elsif VALUES_RE.match(value) or FIELDS_RE.match(key)
30
30
  MASK
@@ -10,6 +10,7 @@ module Raven
10
10
  config.after_initialize do
11
11
  Raven.configure(true) do |config|
12
12
  config.logger ||= ::Rails.logger
13
+ config.project_root ||= ::Rails.root
13
14
  end
14
15
 
15
16
  if defined?(::ActionDispatch::DebugExceptions)
@@ -26,14 +26,21 @@ module Raven
26
26
 
27
27
  Raven.logger.debug "Raven HTTP Transport connecting to #{self.configuration.server}"
28
28
 
29
- Faraday.new(
29
+ conn = Faraday.new(
30
30
  :url => self.configuration[:server],
31
31
  :ssl => {:verify => self.configuration.ssl_verification}
32
32
  ) do |builder|
33
33
  builder.adapter(*adapter)
34
- builder.options[:timeout] = self.configuration.timeout if self.configuration.timeout
35
- builder.options[:open_timeout] = self.configuration.open_timeout if self.configuration.open_timeout
36
34
  end
35
+
36
+ if self.configuration.timeout
37
+ conn.options[:timeout] = self.configuration.timeout
38
+ end
39
+ if self.configuration.open_timeout
40
+ conn.options[:open_timeout] = self.configuration.open_timeout
41
+ end
42
+
43
+ conn
37
44
  end
38
45
  end
39
46
 
@@ -1,3 +1,3 @@
1
1
  module Raven
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
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.4.3
4
+ version: 0.4.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-02 00:00:00.000000000 Z
13
+ date: 2013-03-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
17
- requirement: !ruby/object:Gem::Requirement
17
+ requirement: &70112682633700 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,15 +22,10 @@ dependencies:
22
22
  version: 0.7.6
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: 0.7.6
25
+ version_requirements: *70112682633700
31
26
  - !ruby/object:Gem::Dependency
32
27
  name: uuidtools
33
- requirement: !ruby/object:Gem::Requirement
28
+ requirement: &70112682631820 !ruby/object:Gem::Requirement
34
29
  none: false
35
30
  requirements:
36
31
  - - ! '>='
@@ -38,15 +33,10 @@ dependencies:
38
33
  version: '0'
39
34
  type: :runtime
40
35
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: '0'
36
+ version_requirements: *70112682631820
47
37
  - !ruby/object:Gem::Dependency
48
38
  name: multi_json
49
- requirement: !ruby/object:Gem::Requirement
39
+ requirement: &70112682628660 !ruby/object:Gem::Requirement
50
40
  none: false
51
41
  requirements:
52
42
  - - ~>
@@ -54,15 +44,10 @@ dependencies:
54
44
  version: '1.0'
55
45
  type: :runtime
56
46
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: '1.0'
47
+ version_requirements: *70112682628660
63
48
  - !ruby/object:Gem::Dependency
64
49
  name: hashie
65
- requirement: !ruby/object:Gem::Requirement
50
+ requirement: &70112682643820 !ruby/object:Gem::Requirement
66
51
  none: false
67
52
  requirements:
68
53
  - - ! '>='
@@ -70,12 +55,7 @@ dependencies:
70
55
  version: '0'
71
56
  type: :runtime
72
57
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
58
+ version_requirements: *70112682643820
79
59
  description:
80
60
  email: noah@coderanger.net
81
61
  executables:
@@ -133,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
113
  version: '0'
134
114
  requirements: []
135
115
  rubyforge_project:
136
- rubygems_version: 1.8.23
116
+ rubygems_version: 1.8.10
137
117
  signing_key:
138
118
  specification_version: 3
139
119
  summary: A gem that provides a client interface for the Sentry error logger