hockeybrake 0.0.4 → 0.0.5
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.
- data/.gitignore +2 -0
- data/Gemfile.lock +11 -9
- data/README.md +4 -0
- data/lib/hockeybrake/hockey_log.rb +45 -12
- data/lib/hockeybrake/hockey_sender.rb +2 -1
- data/lib/hockeybrake/version.rb +1 -1
- metadata +2 -2
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
hockeybrake (0.0.
|
|
4
|
+
hockeybrake (0.0.4)
|
|
5
5
|
airbrake (>= 3.1.2)
|
|
6
6
|
multipart-post (>= 1.1.5)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: http://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
|
|
12
|
-
i18n (~> 0.6)
|
|
13
|
-
multi_json (~> 1.0)
|
|
14
|
-
airbrake (3.1.2)
|
|
15
|
-
activesupport
|
|
11
|
+
airbrake (3.1.6)
|
|
16
12
|
builder
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
girl_friday
|
|
14
|
+
builder (3.0.4)
|
|
15
|
+
connection_pool (0.9.2)
|
|
16
|
+
girl_friday (0.11.1)
|
|
17
|
+
connection_pool (~> 0.9.0)
|
|
18
|
+
rubinius-actor
|
|
20
19
|
multipart-post (1.1.5)
|
|
20
|
+
rubinius-actor (0.0.2)
|
|
21
|
+
rubinius-core-api
|
|
22
|
+
rubinius-core-api (0.0.1)
|
|
21
23
|
|
|
22
24
|
PLATFORMS
|
|
23
25
|
ruby
|
data/README.md
CHANGED
|
@@ -45,3 +45,7 @@ Resque comes with out of the box support for Airbrake. This gem is compatible wi
|
|
|
45
45
|
* Fork the project
|
|
46
46
|
* Fix the issue
|
|
47
47
|
* Create pull request on github
|
|
48
|
+
|
|
49
|
+
## More Information
|
|
50
|
+
|
|
51
|
+
* Check out the HockeyApp documentation for custom crash reports: http://support.hockeyapp.net/kb/api/api-post-custom-crashes
|
|
@@ -32,24 +32,57 @@ module HockeyBrake
|
|
|
32
32
|
|
|
33
33
|
# parse the XML and convert them to the HockeyApp format
|
|
34
34
|
begin
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
output += "#{crashData['notice']['error']['class']}: #{crashData['notice']['error']['message']}\n"
|
|
40
|
-
|
|
41
|
-
# parse the lines
|
|
42
|
-
lines = crashData['notice']['error']['backtrace']['line']
|
|
43
|
-
lines.each do |line|
|
|
44
|
-
class_name = File.basename(line['file'], ".rb").classify
|
|
45
|
-
output += " at #{class_name}##{line['method']}(#{line['file']}:#{line['number']})\n"
|
|
35
|
+
if ( data.is_a?(String))
|
|
36
|
+
output += generate_from_xml(data)
|
|
37
|
+
else
|
|
38
|
+
output += generate_from_notice(data)
|
|
46
39
|
end
|
|
47
|
-
rescue
|
|
40
|
+
rescue Exception => e
|
|
48
41
|
# nothing to do
|
|
42
|
+
output += "An exception was thrown during handling of the exception from the HockeyBrake injector\n"
|
|
43
|
+
output += "Exception: #{e.message}"
|
|
49
44
|
end
|
|
50
45
|
|
|
51
46
|
# return the output
|
|
52
47
|
output
|
|
53
48
|
end
|
|
49
|
+
|
|
50
|
+
def self.generate_from_notice(data)
|
|
51
|
+
output = ""
|
|
52
|
+
|
|
53
|
+
# write the first line
|
|
54
|
+
output += "#{data.error_class}: #{data.error_message}\n"
|
|
55
|
+
|
|
56
|
+
# generate the call stacke
|
|
57
|
+
data.backtrace.lines.each do |line|
|
|
58
|
+
class_name = File.basename(line.file, ".rb").classify
|
|
59
|
+
output += " at #{class_name}##{line.method}(#{line.file}:#{line.number})\n"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# emit
|
|
63
|
+
output
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def self.generate_from_xml(data)
|
|
67
|
+
# the output
|
|
68
|
+
output = ""
|
|
69
|
+
|
|
70
|
+
# xml parser
|
|
71
|
+
crashData = Hash.from_xml(data)
|
|
72
|
+
|
|
73
|
+
# write the first line
|
|
74
|
+
output += "#{crashData['notice']['error']['class']}: #{crashData['notice']['error']['message']}\n"
|
|
75
|
+
|
|
76
|
+
# parse the lines
|
|
77
|
+
lines = crashData['notice']['error']['backtrace']['line']
|
|
78
|
+
lines.each do |line|
|
|
79
|
+
class_name = File.basename(line['file'], ".rb").classify
|
|
80
|
+
output += " at #{class_name}##{line['method']}(#{line['file']}:#{line['number']})\n"
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# emit
|
|
84
|
+
output
|
|
85
|
+
end
|
|
54
86
|
end
|
|
87
|
+
|
|
55
88
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# using multipart post
|
|
2
2
|
require 'net/http/post/multipart'
|
|
3
|
+
require 'airbrake'
|
|
3
4
|
|
|
4
5
|
module HockeyBrake
|
|
5
6
|
# Sends out the notice to HockeyApp
|
|
@@ -51,7 +52,7 @@ module HockeyBrake
|
|
|
51
52
|
error_id = response.body.match(%r{<id[^>]*>(.*?)</id>})
|
|
52
53
|
error_id[1] if error_id
|
|
53
54
|
end
|
|
54
|
-
rescue => e
|
|
55
|
+
rescue Exception => e
|
|
55
56
|
log :error, "[HockeyBrake::HockeySender#send_to_airbrake] Cannot send notification. Error: #{e.class} - #{e.message}\nBacktrace:\n#{e.backtrace.join("\n\t")}"
|
|
56
57
|
nil
|
|
57
58
|
end
|
data/lib/hockeybrake/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hockeybrake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: airbrake
|