Commit a42d9de37fa15e5dfd3c4c35b192e71dae24609b
Exists in
master
and in
1 other branch
Merge remote-tracking branch 'errbit/master'
Showing
8 changed files
with
65 additions
and
60 deletions
Show diff stats
Gemfile
| @@ -20,13 +20,14 @@ gem 'hoptoad_notifier', "~> 2.4" | @@ -20,13 +20,14 @@ gem 'hoptoad_notifier', "~> 2.4" | ||
| 20 | gem 'actionmailer_inline_css', "~> 1.3.0" | 20 | gem 'actionmailer_inline_css', "~> 1.3.0" |
| 21 | 21 | ||
| 22 | platform :ruby do | 22 | platform :ruby do |
| 23 | - gem 'bson_ext', '~> 1.3.1' | 23 | + gem 'bson_ext', '~> 1.4.0' |
| 24 | end | 24 | end |
| 25 | 25 | ||
| 26 | group :development, :test do | 26 | group :development, :test do |
| 27 | gem 'rspec-rails', '~> 2.6' | 27 | gem 'rspec-rails', '~> 2.6' |
| 28 | gem 'webmock', :require => false | 28 | gem 'webmock', :require => false |
| 29 | - gem 'factory_girl_rails' | 29 | + gem 'factory_girl', '~> 1.3.3' |
| 30 | + gem 'factory_girl_rails', '~> 1.0.1' | ||
| 30 | unless ENV['TRAVIS'] | 31 | unless ENV['TRAVIS'] |
| 31 | gem 'ruby-debug', :platform => :mri_18 | 32 | gem 'ruby-debug', :platform => :mri_18 |
| 32 | gem 'ruby-debug19', :platform => :mri_19, :require => 'ruby-debug' | 33 | gem 'ruby-debug19', :platform => :mri_19, :require => 'ruby-debug' |
Gemfile.lock
| @@ -6,7 +6,7 @@ GEM | @@ -6,7 +6,7 @@ GEM | ||
| 6 | actionmailer (3.0.10) | 6 | actionmailer (3.0.10) |
| 7 | actionpack (= 3.0.10) | 7 | actionpack (= 3.0.10) |
| 8 | mail (~> 2.2.19) | 8 | mail (~> 2.2.19) |
| 9 | - actionmailer_inline_css (1.3.0) | 9 | + actionmailer_inline_css (1.3.1) |
| 10 | actionmailer (>= 3.0.0) | 10 | actionmailer (>= 3.0.0) |
| 11 | nokogiri (>= 1.4.4) | 11 | nokogiri (>= 1.4.4) |
| 12 | premailer (>= 1.7.1) | 12 | premailer (>= 1.7.1) |
| @@ -33,25 +33,26 @@ GEM | @@ -33,25 +33,26 @@ GEM | ||
| 33 | activemodel (= 3.0.10) | 33 | activemodel (= 3.0.10) |
| 34 | activesupport (= 3.0.10) | 34 | activesupport (= 3.0.10) |
| 35 | activesupport (3.0.10) | 35 | activesupport (3.0.10) |
| 36 | - addressable (2.2.5) | 36 | + addressable (2.2.6) |
| 37 | archive-tar-minitar (0.5.2) | 37 | archive-tar-minitar (0.5.2) |
| 38 | arel (2.0.10) | 38 | arel (2.0.10) |
| 39 | - bcrypt-ruby (2.1.4) | ||
| 40 | - bson (1.3.1) | ||
| 41 | - bson_ext (1.3.1) | 39 | + bcrypt-ruby (3.0.1) |
| 40 | + bson (1.4.0) | ||
| 41 | + bson_ext (1.4.0) | ||
| 42 | builder (2.1.2) | 42 | builder (2.1.2) |
| 43 | columnize (0.3.4) | 43 | columnize (0.3.4) |
| 44 | - crack (0.1.8) | 44 | + crack (0.3.1) |
| 45 | css_parser (1.2.5) | 45 | css_parser (1.2.5) |
| 46 | addressable | 46 | addressable |
| 47 | daemons (1.1.4) | 47 | daemons (1.1.4) |
| 48 | database_cleaner (0.6.7) | 48 | database_cleaner (0.6.7) |
| 49 | - devise (1.4.2) | ||
| 50 | - bcrypt-ruby (~> 2.1.2) | 49 | + devise (1.4.7) |
| 50 | + bcrypt-ruby (~> 3.0) | ||
| 51 | orm_adapter (~> 0.0.3) | 51 | orm_adapter (~> 0.0.3) |
| 52 | warden (~> 1.0.3) | 52 | warden (~> 1.0.3) |
| 53 | diff-lcs (1.1.3) | 53 | diff-lcs (1.1.3) |
| 54 | - email_spec (1.1.1) | 54 | + email_spec (1.2.1) |
| 55 | + mail (~> 2.2) | ||
| 55 | rspec (~> 2.0) | 56 | rspec (~> 2.0) |
| 56 | erubis (2.6.6) | 57 | erubis (2.6.6) |
| 57 | abstract (>= 1.0.0) | 58 | abstract (>= 1.0.0) |
| @@ -60,15 +61,15 @@ GEM | @@ -60,15 +61,15 @@ GEM | ||
| 60 | factory_girl_rails (1.0.1) | 61 | factory_girl_rails (1.0.1) |
| 61 | factory_girl (~> 1.3) | 62 | factory_girl (~> 1.3) |
| 62 | railties (>= 3.0.0) | 63 | railties (>= 3.0.0) |
| 63 | - faraday (0.6.1) | ||
| 64 | - addressable (~> 2.2.4) | 64 | + faraday (0.7.4) |
| 65 | + addressable (~> 2.2.6) | ||
| 65 | multipart-post (~> 1.1.0) | 66 | multipart-post (~> 1.1.0) |
| 66 | - rack (>= 1.1.0, < 2) | ||
| 67 | - faraday_middleware (0.6.5) | ||
| 68 | - faraday (~> 0.6.0) | ||
| 69 | - haml (3.0.25) | ||
| 70 | - happymapper (0.3.2) | ||
| 71 | - libxml-ruby (~> 1.1.3) | 67 | + rack (< 2, >= 1.1.0) |
| 68 | + faraday_middleware (0.7.0) | ||
| 69 | + faraday (~> 0.7.3) | ||
| 70 | + haml (3.1.3) | ||
| 71 | + happymapper (0.4.0) | ||
| 72 | + libxml-ruby (~> 2.0) | ||
| 72 | has_scope (0.5.1) | 73 | has_scope (0.5.1) |
| 73 | hashie (1.0.0) | 74 | hashie (1.0.0) |
| 74 | hoptoad_notifier (2.4.11) | 75 | hoptoad_notifier (2.4.11) |
| @@ -76,10 +77,10 @@ GEM | @@ -76,10 +77,10 @@ GEM | ||
| 76 | builder | 77 | builder |
| 77 | htmlentities (4.3.0) | 78 | htmlentities (4.3.0) |
| 78 | i18n (0.5.0) | 79 | i18n (0.5.0) |
| 79 | - inherited_resources (1.2.2) | 80 | + inherited_resources (1.3.0) |
| 80 | has_scope (~> 0.5.0) | 81 | has_scope (~> 0.5.0) |
| 81 | responders (~> 0.6.0) | 82 | responders (~> 0.6.0) |
| 82 | - libxml-ruby (1.1.4) | 83 | + libxml-ruby (2.2.2) |
| 83 | lighthouse-api (2.0) | 84 | lighthouse-api (2.0) |
| 84 | activeresource (>= 3.0.0) | 85 | activeresource (>= 3.0.0) |
| 85 | activesupport (>= 3.0.0) | 86 | activesupport (>= 3.0.0) |
| @@ -93,40 +94,43 @@ GEM | @@ -93,40 +94,43 @@ GEM | ||
| 93 | mime-types (~> 1.16) | 94 | mime-types (~> 1.16) |
| 94 | treetop (~> 1.4.8) | 95 | treetop (~> 1.4.8) |
| 95 | mime-types (1.16) | 96 | mime-types (1.16) |
| 96 | - mongo (1.3.1) | ||
| 97 | - bson (>= 1.3.1) | 97 | + mongo (1.4.0) |
| 98 | + bson (= 1.4.0) | ||
| 98 | mongoid (2.1.2) | 99 | mongoid (2.1.2) |
| 99 | activemodel (~> 3.0) | 100 | activemodel (~> 3.0) |
| 100 | mongo (~> 1.3) | 101 | mongo (~> 1.3) |
| 101 | tzinfo (~> 0.3.22) | 102 | tzinfo (~> 0.3.22) |
| 102 | - mongoid_rails_migrations (0.0.10) | ||
| 103 | - activesupport (~> 3.0.0) | ||
| 104 | - bundler (>= 0.9.19) | ||
| 105 | - rails (~> 3.0.0) | ||
| 106 | - railties (~> 3.0.0) | 103 | + mongoid_rails_migrations (0.0.14) |
| 104 | + activesupport (>= 3.0.0) | ||
| 105 | + bundler (>= 1.0.0) | ||
| 106 | + rails (>= 3.0.0) | ||
| 107 | + railties (>= 3.0.0) | ||
| 107 | multi_json (1.0.3) | 108 | multi_json (1.0.3) |
| 108 | multipart-post (1.1.3) | 109 | multipart-post (1.1.3) |
| 109 | - nokogiri (1.4.4) | ||
| 110 | - octokit (0.6.3) | ||
| 111 | - addressable (~> 2.2.4) | ||
| 112 | - faraday (~> 0.6.0) | ||
| 113 | - faraday_middleware (~> 0.6.0) | 110 | + nokogiri (1.5.0) |
| 111 | + octokit (0.6.4) | ||
| 112 | + addressable (~> 2.2.6) | ||
| 113 | + faraday (~> 0.7.3) | ||
| 114 | + faraday_middleware (~> 0.7.0.rc1) | ||
| 114 | hashie (~> 1.0.0) | 115 | hashie (~> 1.0.0) |
| 115 | - multi_json (~> 1.0.0) | ||
| 116 | - rash (~> 0.3.0) | 116 | + multi_json (~> 1.0.2) |
| 117 | orm_adapter (0.0.5) | 117 | orm_adapter (0.0.5) |
| 118 | oruen_redmine_client (0.0.1) | 118 | oruen_redmine_client (0.0.1) |
| 119 | activeresource (>= 2.3.0) | 119 | activeresource (>= 2.3.0) |
| 120 | - pivotal-tracker (0.2.0) | 120 | + pivotal-tracker (0.4.1) |
| 121 | builder | 121 | builder |
| 122 | - happymapper (>= 0.2.4) | ||
| 123 | - nokogiri (~> 1.4.1) | ||
| 124 | - rest-client (~> 1.5.1) | 122 | + builder |
| 123 | + happymapper (>= 0.3.2) | ||
| 124 | + happymapper (>= 0.3.2) | ||
| 125 | + nokogiri (>= 1.4.3) | ||
| 126 | + nokogiri (~> 1.4) | ||
| 127 | + rest-client (~> 1.6.0) | ||
| 128 | + rest-client (~> 1.6.0) | ||
| 125 | polyglot (0.3.2) | 129 | polyglot (0.3.2) |
| 126 | premailer (1.7.3) | 130 | premailer (1.7.3) |
| 127 | css_parser (>= 1.1.9) | 131 | css_parser (>= 1.1.9) |
| 128 | htmlentities (>= 4.0.0) | 132 | htmlentities (>= 4.0.0) |
| 129 | - rack (1.2.3) | 133 | + rack (1.2.4) |
| 130 | rack-mount (0.6.14) | 134 | rack-mount (0.6.14) |
| 131 | rack (>= 1.0.0) | 135 | rack (>= 1.0.0) |
| 132 | rack-test (0.5.7) | 136 | rack-test (0.5.7) |
| @@ -146,12 +150,10 @@ GEM | @@ -146,12 +150,10 @@ GEM | ||
| 146 | rdoc (~> 3.4) | 150 | rdoc (~> 3.4) |
| 147 | thor (~> 0.14.4) | 151 | thor (~> 0.14.4) |
| 148 | rake (0.9.2) | 152 | rake (0.9.2) |
| 149 | - rash (0.3.0) | ||
| 150 | - hashie (~> 1.0.0) | ||
| 151 | rbx-require-relative (0.0.5) | 153 | rbx-require-relative (0.0.5) |
| 152 | rdoc (3.9.4) | 154 | rdoc (3.9.4) |
| 153 | responders (0.6.4) | 155 | responders (0.6.4) |
| 154 | - rest-client (1.5.1) | 156 | + rest-client (1.6.7) |
| 155 | mime-types (>= 1.16) | 157 | mime-types (>= 1.16) |
| 156 | rspec (2.6.0) | 158 | rspec (2.6.0) |
| 157 | rspec-core (~> 2.6.0) | 159 | rspec-core (~> 2.6.0) |
| @@ -195,14 +197,14 @@ GEM | @@ -195,14 +197,14 @@ GEM | ||
| 195 | typhoeus (0.2.4) | 197 | typhoeus (0.2.4) |
| 196 | mime-types | 198 | mime-types |
| 197 | mime-types | 199 | mime-types |
| 198 | - tzinfo (0.3.29) | ||
| 199 | - useragent (0.3.1) | 200 | + tzinfo (0.3.30) |
| 201 | + useragent (0.3.2) | ||
| 200 | warden (1.0.5) | 202 | warden (1.0.5) |
| 201 | rack (>= 1.0) | 203 | rack (>= 1.0) |
| 202 | - webmock (1.6.2) | ||
| 203 | - addressable (>= 2.2.2) | 204 | + webmock (1.7.6) |
| 205 | + addressable (> 2.2.5, ~> 2.2) | ||
| 204 | crack (>= 0.1.7) | 206 | crack (>= 0.1.7) |
| 205 | - will_paginate (3.0.0) | 207 | + will_paginate (3.0.2) |
| 206 | 208 | ||
| 207 | PLATFORMS | 209 | PLATFORMS |
| 208 | ruby | 210 | ruby |
| @@ -210,11 +212,12 @@ PLATFORMS | @@ -210,11 +212,12 @@ PLATFORMS | ||
| 210 | DEPENDENCIES | 212 | DEPENDENCIES |
| 211 | SystemTimer | 213 | SystemTimer |
| 212 | actionmailer_inline_css (~> 1.3.0) | 214 | actionmailer_inline_css (~> 1.3.0) |
| 213 | - bson_ext (~> 1.3.1) | 215 | + bson_ext (~> 1.4.0) |
| 214 | database_cleaner (~> 0.6.0) | 216 | database_cleaner (~> 0.6.0) |
| 215 | devise (~> 1.4.0) | 217 | devise (~> 1.4.0) |
| 216 | email_spec | 218 | email_spec |
| 217 | - factory_girl_rails | 219 | + factory_girl (~> 1.3.3) |
| 220 | + factory_girl_rails (~> 1.0.1) | ||
| 218 | haml | 221 | haml |
| 219 | hoptoad_notifier (~> 2.4) | 222 | hoptoad_notifier (~> 2.4) |
| 220 | htmlentities (~> 4.3.0) | 223 | htmlentities (~> 4.3.0) |
app/models/app.rb
app/models/problem.rb
| @@ -109,7 +109,9 @@ class Problem | @@ -109,7 +109,9 @@ class Problem | ||
| 109 | def cache_app_attributes | 109 | def cache_app_attributes |
| 110 | if app | 110 | if app |
| 111 | self.app_name = app.name | 111 | self.app_name = app.name |
| 112 | - self.last_deploy_at = app.last_deploy_at | 112 | + self.last_deploy_at = if (last_deploy = app.deploys.where(:environment => self.environment).last) |
| 113 | + last_deploy.created_at | ||
| 114 | + end | ||
| 113 | self.save if persisted? | 115 | self.save if persisted? |
| 114 | end | 116 | end |
| 115 | end | 117 | end |
app/views/apps/show.html.haml
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | = auto_discovery_link_tag :atom, app_url(@app, User.token_authentication_key => current_user.authentication_token, :format => "atom"), :title => "Errbit notices for #{@app.name} at #{root_url}" | 3 | = auto_discovery_link_tag :atom, app_url(@app, User.token_authentication_key => current_user.authentication_token, :format => "atom"), :title => "Errbit notices for #{@app.name} at #{root_url}" |
| 4 | = javascript_include_tag 'apps.show' | 4 | = javascript_include_tag 'apps.show' |
| 5 | - content_for :meta do | 5 | - content_for :meta do |
| 6 | - %strong Errs Caught: | 6 | + %strong Errors Caught: |
| 7 | = @app.problems.count | 7 | = @app.problems.count |
| 8 | %strong Deploy Count: | 8 | %strong Deploy Count: |
| 9 | = @app.deploys.count | 9 | = @app.deploys.count |
| @@ -83,7 +83,7 @@ | @@ -83,7 +83,7 @@ | ||
| 83 | %h3 No deploys | 83 | %h3 No deploys |
| 84 | 84 | ||
| 85 | - if @app.problems.any? | 85 | - if @app.problems.any? |
| 86 | - %h3.clear Errs | 86 | + %h3.clear Errors |
| 87 | = render 'errs/table', :errs => @problems | 87 | = render 'errs/table', :errs => @problems |
| 88 | - else | 88 | - else |
| 89 | %h3.clear No errs have been caught yet, make sure you setup your app | 89 | %h3.clear No errs have been caught yet, make sure you setup your app |
app/views/errs/show.html.haml
| @@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
| 22 | 22 | ||
| 23 | - if Errbit::Config.allow_comments_with_issue_tracker || !@app.issue_tracker_configured? || @problem.comments.any? | 23 | - if Errbit::Config.allow_comments_with_issue_tracker || !@app.issue_tracker_configured? || @problem.comments.any? |
| 24 | - content_for :comments do | 24 | - content_for :comments do |
| 25 | - %h3 Comments on this Err | 25 | + %h3 Comments |
| 26 | - @problem.comments.each do |comment| | 26 | - @problem.comments.each do |comment| |
| 27 | .window | 27 | .window |
| 28 | %table.comment | 28 | %table.comment |
lib/overrides/hoptoad_notifier/hoptoad_notifier.rb
| @@ -14,9 +14,8 @@ HoptoadNotifier.module_eval do | @@ -14,9 +14,8 @@ HoptoadNotifier.module_eval do | ||
| 14 | app.save! | 14 | app.save! |
| 15 | end | 15 | end |
| 16 | notice.send("api_key=", app.api_key) | 16 | notice.send("api_key=", app.api_key) |
| 17 | - # Create notice internally. | ||
| 18 | - debugger | ||
| 19 | 17 | ||
| 18 | + # Create notice internally. | ||
| 20 | report = ErrorReport.new(notice.to_xml) | 19 | report = ErrorReport.new(notice.to_xml) |
| 21 | report.generate_notice! | 20 | report.generate_notice! |
| 22 | 21 |
spec/models/problem_spec.rb
| @@ -180,16 +180,16 @@ describe Problem do | @@ -180,16 +180,16 @@ describe Problem do | ||
| 180 | before do | 180 | before do |
| 181 | @app = Factory(:app) | 181 | @app = Factory(:app) |
| 182 | @last_deploy = 10.days.ago.localtime.round(0) | 182 | @last_deploy = 10.days.ago.localtime.round(0) |
| 183 | - deploy = Factory(:deploy, :app => @app, :created_at => @last_deploy) | 183 | + deploy = Factory(:deploy, :app => @app, :created_at => @last_deploy, :environment => "production") |
| 184 | end | 184 | end |
| 185 | 185 | ||
| 186 | it "is set when a problem is created" do | 186 | it "is set when a problem is created" do |
| 187 | - problem = Factory(:problem, :app => @app) | 187 | + problem = Factory(:problem, :app => @app, :environment => "production") |
| 188 | assert_equal @last_deploy, problem.last_deploy_at | 188 | assert_equal @last_deploy, problem.last_deploy_at |
| 189 | end | 189 | end |
| 190 | 190 | ||
| 191 | it "is updated when a deploy is created" do | 191 | it "is updated when a deploy is created" do |
| 192 | - problem = Factory(:problem, :app => @app) | 192 | + problem = Factory(:problem, :app => @app, :environment => "production") |
| 193 | next_deploy = 5.minutes.ago.localtime.round(0) | 193 | next_deploy = 5.minutes.ago.localtime.round(0) |
| 194 | lambda { | 194 | lambda { |
| 195 | @deploy = Factory(:deploy, :app => @app, :created_at => next_deploy) | 195 | @deploy = Factory(:deploy, :app => @app, :created_at => next_deploy) |