canary_notifier 0.0.14 → 0.0.15

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.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'canary_notifier'
3
- s.version = '0.0.14'
3
+ s.version = '0.0.15'
4
4
  s.authors = ["Henry Scudder"]
5
5
  s.date = %q{2011-10-27}
6
6
  s.summary = "Exception notification to Canary for Rails apps"
@@ -9,51 +9,25 @@ class CanaryNotifier
9
9
  @app.call(env)
10
10
  rescue Exception => e
11
11
  url = 'http://stark:abc123@bugdrop.bugdrop.io/notify'
12
- (file_name, line_number, method) = parse_backtrace_line(find_our_backtrace_line(e.backtrace))
13
12
 
14
13
  data = {}
15
- data["app_name"] = @options[:app_name] || "No Name"
16
- data["bug_name"] = "#{e.class.name}: #{e.to_s}"
17
- data["bug_class"] = e.class.name
18
- data["file_name"] = file_name
19
- data["line_number"] = line_number.to_i
20
- data["bug_method"] = method.split.last
21
- data["language"] = 'ruby'
22
- data["backtrace"] = e.backtrace.join("\n")
23
-
24
- lines = File.readlines(file_name)
25
- start_line = line_number.to_i - 4
26
- start_line = 0 if start_line < 0
27
- end_line = line_number.to_i+2
28
- end_line = lines.size - 1 if end_line > lines.size - 1
29
-
30
- data["code_sample"] = lines[start_line..end_line].join
31
-
32
- data["code_sample_line_start"] = line_number.to_i - 3
33
- data["code_sample_line_start"] = 1 if data["code_sample_line_start"] < 1
14
+ data["app"] = @options[:app_name] || "No Name"
15
+ data["title"] = "#{e.class.name}: #{e.to_s}"
16
+
17
+ data[:sections] = []
18
+
19
+ backtrace = {}
20
+ backtrace[:title] = 'Backtrace'
21
+ backtrace[:body] = e.backtrace.join("\n")
22
+
23
+ data[:sections] << backtrace
24
+
25
+ env = {}
26
+ env[:title] = 'Environment'
27
+ env[:body] = ENV.to_a
28
+
34
29
  RestClient.post url, data.to_json
35
30
 
36
31
  raise e
37
32
  end
38
-
39
- def parse_backtrace_line(line)
40
- parts = line.split(':')
41
-
42
- # the backtrace will always parse funny on Windows due to paths containing things like
43
- # 'c:\ruby\etc...'
44
- if parts.size == 4
45
- file = parts[0..1].join(':')
46
- line_num = parts[2]
47
- method = parts[3]
48
- [file, line_num, method]
49
- else
50
- parts
51
- end
52
- end
53
-
54
- def find_our_backtrace_line(backtrace)
55
- backtrace.each do |l|
56
- return l if !l.match(/gems/)
57
- end
58
- end
59
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canary_notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-10-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &70311705978560 !ruby/object:Gem::Requirement
16
+ requirement: &70256085269680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70311705978560
24
+ version_requirements: *70256085269680
25
25
  description:
26
26
  email: support@canaryhq.com
27
27
  executables: []