crashbreak 0.9.11 → 0.9.12

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94c401ee078a3f6f4d71f1309855ea77fc89e6ef
4
- data.tar.gz: dcf09e8fc27a7934ad862119bfd4b7012f618263
3
+ metadata.gz: 4f6183abe751a1cecd33a2d52399434823e0773e
4
+ data.tar.gz: fcee46ef8ef7ac9226fd47432be4a22ddc8a96cf
5
5
  SHA512:
6
- metadata.gz: 1b4156728a4159720d0433e9087d202647390acfe07be068dab05660f4d040bb7eb0ffc82b4220016a4849b6289c98b006821b0d207a5f05889cdbc57b14c2bc
7
- data.tar.gz: 72abcbadd27dfe83c3bab1dcd3ececf42819ed20f67e2ddb0fa077a42727ba112edb6b0cd4b8dd4b5ae6e6ba29efbe596bf79034dec99acb33552d73971cca81
6
+ metadata.gz: f834ad2ead2fe48eb87c995495b9bb30f4e16a546f3fc931953cc0ac7222f68a5910560fffb64c2ea80a0f1791102035023541e221db25ec58e48b026d98fabd
7
+ data.tar.gz: c27afe53f5cded9b28afed5cf409cfa4155d09f8155324d618a3a47aefc9c913daf1248bd0d2c1bae218e7f5069a6a65b63ca06cd1b6067eff7eed065bd2d811
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1.0
5
+ env:
6
+ script:
7
+ - bundle exec rspec spec/
data/Gemfile CHANGED
@@ -1,7 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gemspec
4
-
5
- group :test do
6
- gem 'generator_spec', git: 'git@github.com:substantial/generator_spec.git', branch: 'fix-for-rspec-3'
7
- end
3
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Crashbreak
1
+ # Crashbreak [![Version](http://img.shields.io/gem/v/crashbreak.svg) ](https://rubygems.org/gems/crashbreak) [![Build Status](https://travis-ci.org/crashbreak/crashbreak.svg?branch=master)](https://travis-ci.org/crashbreak/crashbreak) [![Code Climate](https://codeclimate.com/github/crashbreak/crashbreak/badges/gpa.svg)](https://codeclimate.com/github/crashbreak/crashbreak)
2
2
 
3
3
  TODO: Write a gem description
4
4
 
data/crashbreak.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'webmock'
24
24
  spec.add_development_dependency 'simplecov'
25
25
  spec.add_development_dependency 'deepstruct'
26
+ spec.add_development_dependency 'generator_spec'
26
27
 
27
28
  spec.add_runtime_dependency 'faraday', '>= 0'
28
29
  spec.add_runtime_dependency 'request_store', '>= 0'
@@ -1,6 +1,7 @@
1
1
  module Crashbreak
2
2
  class Configurator
3
3
  attr_accessor :api_key
4
+ attr_accessor :ignored_environments
4
5
  attr_accessor :exception_notifier
5
6
  attr_accessor :error_serializers
6
7
  attr_accessor :dumpers
@@ -17,6 +18,10 @@ module Crashbreak
17
18
  @exception_notifier || ExceptionNotifier.new
18
19
  end
19
20
 
21
+ def ignored_environments
22
+ @ignored_environments || ['development']
23
+ end
24
+
20
25
  def error_serializers
21
26
  @error_serializers || []
22
27
  end
@@ -1,8 +1,9 @@
1
1
  module Crashbreak
2
2
  class ExceptionNotifier
3
3
  def notify
4
+ return if skip_exception?
4
5
  response = exceptions_repository.create serialize_exception
5
- GithubIntegrationService.new(response).push_test if Crashbreak.configure.github_repo_name.present?
6
+ GithubIntegrationService.new(response).push_test if Crashbreak.configure.github_repo_name.present? && response['similar'] == false
6
7
  end
7
8
 
8
9
  private
@@ -22,6 +23,10 @@ module Crashbreak
22
23
  end
23
24
  end
24
25
 
26
+ def skip_exception?
27
+ Crashbreak.configure.ignored_environments.include? ENV['RACK_ENV']
28
+ end
29
+
25
30
  def dumpers
26
31
  Crashbreak.configure.dumpers
27
32
  end
@@ -27,7 +27,11 @@ module Crashbreak
27
27
  end
28
28
 
29
29
  def request_headers
30
- @request.select{|key| key.start_with?('HTTP_')}.map{|key, value| [key.gsub('HTTP_', ''), value]}.to_h
30
+ {}.tap do |request_headers|
31
+ @request.select{|key| key.start_with?('HTTP_')}.each do |key, value|
32
+ request_headers[key.gsub('HTTP_', '')] = value
33
+ end
34
+ end
31
35
  end
32
36
  end
33
37
  end
@@ -1,3 +1,3 @@
1
1
  module Crashbreak
2
- VERSION = '0.9.11'
2
+ VERSION = '0.9.12'
3
3
  end
@@ -61,8 +61,26 @@ describe Crashbreak::ExceptionNotifier do
61
61
  end
62
62
  end
63
63
 
64
+ context 'skipping environment' do
65
+ before(:each) do
66
+ expect_any_instance_of(Crashbreak::ExceptionsRepository).to_not receive(:create)
67
+ end
68
+
69
+ it 'skips development environment by default' do
70
+ expect(ENV).to receive(:[]).with('RACK_ENV').and_return('development')
71
+ subject.notify
72
+ end
73
+
74
+ it 'skips all environments in config' do
75
+ Crashbreak.configure.ignored_environments = ['staging']
76
+
77
+ expect(ENV).to receive(:[]).with('RACK_ENV').and_return('staging')
78
+ subject.notify
79
+ end
80
+ end
81
+
64
82
  context 'github integration' do
65
- let(:error_hash) { Hash[id: 1, deploy_revision: 'test'] }
83
+ let(:error_hash) { Hash[id: 1, deploy_revision: 'test', similar: false] }
66
84
 
67
85
  it 'passes error hash from request to github integration service' do
68
86
  Crashbreak.configure.github_repo_name = 'user/repo'
@@ -72,6 +90,13 @@ describe Crashbreak::ExceptionNotifier do
72
90
 
73
91
  subject.notify
74
92
  end
93
+
94
+ it 'skips github integration if error is similar' do
95
+ allow_any_instance_of(Crashbreak::ExceptionsRepository).to receive(:create).and_return(error_hash.merge(similar: true))
96
+ expect_any_instance_of(Crashbreak::GithubIntegrationService).to_not receive(:initialize)
97
+
98
+ subject.notify
99
+ end
75
100
  end
76
101
  end
77
102
  end
@@ -15,6 +15,7 @@ describe Crashbreak::GithubIntegrationService do
15
15
 
16
16
  before(:each) do
17
17
  Crashbreak.configure.github_spec_file_path = 'spec/crashbreak_error_spec.rb'
18
+ allow_any_instance_of(WebMock::Response).to receive(:assert_valid_body!).and_return(true)
18
19
  end
19
20
 
20
21
  it 'pushes test to github' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crashbreak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.11
4
+ version: 0.9.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Janeczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-17 00:00:00.000000000 Z
11
+ date: 2015-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: generator_spec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: faraday
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -202,6 +216,7 @@ files:
202
216
  - ".gitignore"
203
217
  - ".rspec"
204
218
  - ".ruby-version"
219
+ - ".travis.yml"
205
220
  - Gemfile
206
221
  - LICENSE.txt
207
222
  - README.md