Commit 8afd2efe2159021ca59548525e14dcae528c52ca

Authored by Vasiliy Ermolovich
1 parent d3f91ed4
Exists in master and in 1 other branch production

update airbrake api to 2.4

app/models/error_report.rb
... ... @@ -2,7 +2,7 @@ require 'digest/sha1'
2 2 require 'hoptoad_notifier'
3 3  
4 4 class ErrorReport
5   - attr_reader :error_class, :message, :request, :server_environment, :api_key, :notifier, :user_attributes, :current_user
  5 + attr_reader :error_class, :message, :request, :server_environment, :api_key, :notifier, :user_attributes, :current_user, :framework
6 6  
7 7 def initialize(xml_or_attributes)
8 8 @attributes = (xml_or_attributes.is_a?(String) ? Hoptoad.parse_xml!(xml_or_attributes) : xml_or_attributes).with_indifferent_access
... ... @@ -42,7 +42,8 @@ class ErrorReport
42 42 :server_environment => server_environment,
43 43 :notifier => notifier,
44 44 :user_attributes => user_attributes,
45   - :current_user => current_user
  45 + :current_user => current_user,
  46 + :framework => framework
46 47 )
47 48  
48 49 err = app.find_or_create_err!(
... ...
app/models/notice.rb
... ... @@ -11,6 +11,7 @@ class Notice
11 11 field :notifier, :type => Hash
12 12 field :user_attributes, :type => Hash
13 13 field :current_user, :type => Hash
  14 + field :framework
14 15 field :error_class
15 16 delegate :lines, :to => :backtrace, :prefix => true
16 17 delegate :app, :problem, :to => :err
... ...
app/views/notices/_summary.html.haml
... ... @@ -28,6 +28,10 @@
28 28 %tr
29 29 %th App Server
30 30 %td= notice.server_environment && notice.server_environment["hostname"]
  31 + - if notice.framework
  32 + %tr
  33 + %th Framework
  34 + %td= notice.framework
31 35 %tr
32 36 %th Rel. Directory
33 37 %td= notice.server_environment && notice.server_environment["project-root"]
... ...
lib/hoptoad.rb
... ... @@ -3,7 +3,7 @@ require 'hoptoad/v2'
3 3 module Hoptoad
4 4 class ApiVersionError < StandardError
5 5 def initialize
6   - super "Wrong API Version: Expecting 2.0, 2.1, 2.2 or 2.3"
  6 + super "Wrong API Version: Expecting 2.0, 2.1, 2.2, 2.3 or 2.4"
7 7 end
8 8 end
9 9  
... ... @@ -16,7 +16,7 @@ module Hoptoad
16 16 private
17 17 def self.get_version_processor(version)
18 18 case version
19   - when /2\.[0123]/; Hoptoad::V2
  19 + when /2\.[01234]/; Hoptoad::V2
20 20 else; raise ApiVersionError
21 21 end
22 22 end
... ...
lib/hoptoad/v2.rb
... ... @@ -60,7 +60,8 @@ module Hoptoad
60 60 :api_key => notice['api-key'],
61 61 :notifier => notice['notifier'],
62 62 :user_attributes => notice['user-attributes'] || {},
63   - :current_user => notice['current-user'] || {}
  63 + :current_user => notice['current-user'] || {},
  64 + :framework => notice['framework']
64 65 }
65 66 end
66 67 end
... ...
spec/fixtures/hoptoad_test_notice.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<notice version="2.3">
  2 +<notice version="2.4">
3 3 <api-key>APIKEY</api-key>
4 4 <notifier>
5 5 <name>Hoptoad Notifier</name>
6 6 <version>2.3.2</version>
7 7 <url>http://hoptoadapp.com</url>
8 8 </notifier>
  9 + <framework>Rails: 3.2.11</framework>
9 10 <error>
10 11 <class>HoptoadTestingException</class>
11 12 <message>HoptoadTestingException: Testing hoptoad via "rake hoptoad:test". If you can see this, it works.</message>
... ...
spec/models/app_spec.rb
... ... @@ -264,6 +264,11 @@ describe App do
264 264 @notice.current_user['username'].should == 'mrbean'
265 265 end
266 266  
  267 + it 'captures the framework' do
  268 + @notice = App.report_error!(@xml)
  269 + @notice.framework.should == 'Rails: 3.2.11'
  270 + end
  271 +
267 272 end
268 273  
269 274  
... ...
spec/views/notices/_summary.html.haml_spec.rb 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +require 'spec_helper'
  2 +
  3 +describe "notices/_summary.html.haml" do
  4 + let(:notice) { Fabricate(:notice, :framework => 'Rails 3.2.11') }
  5 +
  6 + it "renders application framework" do
  7 + render "notices/summary", :notice => notice, :problem => notice.problem
  8 +
  9 + rendered.should have_content('Rails 3.2.11')
  10 + end
  11 +end
  12 +
... ...