crashbreak 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48536ecac8f93671f2dfd485c9bf3f9ec2f861f5
4
- data.tar.gz: 06fb15138866c07a1dbf18ebc4dade65307f22bf
3
+ metadata.gz: a1d14fcb61e329935dd1f837590f346da64245a4
4
+ data.tar.gz: 1446a4ac170233144972b04d3847c0a00946df74
5
5
  SHA512:
6
- metadata.gz: bd437a3eb1cd4fa80ab822e7dff89ffa0a989a51ae168d13e8fbfcb392ecb6802626f69a3f8719dd60b9151d0972a888d02c5fb69396b38ab0000a5f2f260fc8
7
- data.tar.gz: 50af0658221b4bb536037fd1398b4eb2168918b155c28a0888e44c6d33fd3daeb02524ac36caa16686278bad59d1c09f1f428b4fee195fc29d521499c3efcc70
6
+ metadata.gz: 0b87d86b0de848dbbbee95e99bee32c8056935bcae23ad000087febc354681a426825854ca4d988dc73c999c5abe1d42d0e17c2ee4732c8bcb239d753cdeab17
7
+ data.tar.gz: 22dacbe1ce5b36120300cd849ae4aba0fc4a81665e8585f8c57c623f03f2619ca56f28369c1a4bc928563ab15741d8d65aeaa42ac959c521f5e17292bce5aa9d
@@ -5,6 +5,7 @@ require 'aws-sdk'
5
5
 
6
6
  require 'crashbreak/version'
7
7
  require 'crashbreak/exception_notifier'
8
+ require 'crashbreak/restorers_middleware'
8
9
  require 'crashbreak/exception_catcher_middleware'
9
10
  require 'crashbreak/request_parser'
10
11
  require 'crashbreak/github_integration_service'
@@ -30,10 +31,12 @@ require 'crashbreak/repositories/dumpers_data_repository'
30
31
 
31
32
  require 'crashbreak/dumpers/database_dumper'
32
33
  require 'crashbreak/dumpers/request_dumper'
34
+ require 'crashbreak/dumpers/session_dumper'
33
35
 
34
36
  require 'crashbreak/restorers/database_restorer'
35
37
  require 'crashbreak/restorers/state_restorer'
36
38
  require 'crashbreak/restorers/request_restorer'
39
+ require 'crashbreak/restorers/session_restorer'
37
40
 
38
41
  require 'crashbreak/railtie' if defined?(Rails::Railtie)
39
42
 
@@ -0,0 +1,7 @@
1
+ module Crashbreak
2
+ class SessionDumper < Crashbreak::BasicSerializer
3
+ def dump
4
+ request.session.to_hash
5
+ end
6
+ end
7
+ end
@@ -4,6 +4,7 @@ module Crashbreak
4
4
  class Railtie < ::Rails::Railtie
5
5
  initializer 'crashbreak.add_middleware' do
6
6
  Rails.application.middleware.use Crashbreak::ExceptionCatcherMiddleware
7
+ Rails.application.middleware.use Crashbreak::RestorersMiddleware if Rails.env.test?
7
8
  end
8
9
 
9
10
  rake_tasks do
@@ -23,7 +23,7 @@ module Crashbreak
23
23
  end
24
24
 
25
25
  def request_hash_as_string
26
- @request['rack.request.form_hash'] || '{}'
26
+ @request['rack.request.form_hash'] || @request['RAW_POST_DATA'] || '{}'
27
27
  end
28
28
 
29
29
  def request_headers
@@ -0,0 +1,13 @@
1
+ module Crashbreak
2
+ class SessionRestorer
3
+ def initialize(session_data)
4
+ @session_data = session_data
5
+ end
6
+
7
+ def restore
8
+ @session_data.tap do |session_data|
9
+ $session_data = session_data # pass it via global variable to restorers middleware
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ module Crashbreak
2
+ class RestorersMiddleware
3
+ def initialize(app)
4
+ @app = app
5
+ end
6
+
7
+ def call(env)
8
+ # It's ugly, we know that...
9
+ env['rack.session'].merge! $session_data if $session_data
10
+
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Crashbreak
2
- VERSION = '1.1.0'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -19,8 +19,8 @@ Crashbreak.configure do |config|
19
19
  }
20
20
 
21
21
  # Config for GitHub integration
22
- config.github_integration = true
22
+ config.github_integration = false
23
23
  config.github_login = ENV['GITHUB_USER']
24
24
  config.github_password = ENV['GITHUB_PASSWORD']
25
25
  config.github_repo_name = ENV['GITHUB_REPO_NAME']
26
- end
26
+ end
@@ -0,0 +1,15 @@
1
+ describe Crashbreak::SessionDumper do
2
+ subject { described_class.new }
3
+
4
+ let(:example_request) { double(:request, session: fake_session ) }
5
+ let(:fake_session) { double(:session, to_hash: { user_id: 123 }) }
6
+
7
+ before(:each) do
8
+ RequestStore.store[:request] = example_request
9
+ end
10
+
11
+ it 'returns a request hash' do
12
+ expect(subject.dump).to eq(user_id: 123)
13
+ end
14
+
15
+ end
@@ -29,5 +29,12 @@ describe Crashbreak::RequestParser do
29
29
  it 'yields with request data' do
30
30
  expect{|y| subject.request_data(&y) }.to yield_with_args(:post, '/projects', request_parameters, { 'ACCEPT' => 'text/html', 'CACHE_CONTROL' => 'max-age=0' })
31
31
  end
32
+
33
+ it 'fallbacks to RAW_POST_DATA if rack.request.form_hash is missing' do
34
+ request_data.delete('rack.request.form_hash')
35
+ request_data['RAW_POST_DATA'] = request_parameters.to_json
36
+
37
+ expect{|y| subject.request_data(&y) }.to yield_with_args(:post, '/projects', request_parameters, { 'ACCEPT' => 'text/html', 'CACHE_CONTROL' => 'max-age=0' })
38
+ end
32
39
  end
33
40
  end
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: 1.1.0
4
+ version: 1.1.1
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-09-15 00:00:00.000000000 Z
11
+ date: 2015-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -201,6 +201,7 @@ files:
201
201
  - lib/crashbreak/config/configurator.rb
202
202
  - lib/crashbreak/dumpers/database_dumper.rb
203
203
  - lib/crashbreak/dumpers/request_dumper.rb
204
+ - lib/crashbreak/dumpers/session_dumper.rb
204
205
  - lib/crashbreak/exception_catcher_middleware.rb
205
206
  - lib/crashbreak/exception_notifier.rb
206
207
  - lib/crashbreak/fork_exception_notifier.rb
@@ -214,7 +215,9 @@ files:
214
215
  - lib/crashbreak/request_parser.rb
215
216
  - lib/crashbreak/restorers/database_restorer.rb
216
217
  - lib/crashbreak/restorers/request_restorer.rb
218
+ - lib/crashbreak/restorers/session_restorer.rb
217
219
  - lib/crashbreak/restorers/state_restorer.rb
220
+ - lib/crashbreak/restorers_middleware.rb
218
221
  - lib/crashbreak/serializers/basic_information_serializer.rb
219
222
  - lib/crashbreak/serializers/basic_serializer.rb
220
223
  - lib/crashbreak/serializers/default_summary_serializer.rb
@@ -235,6 +238,7 @@ files:
235
238
  - spec/lib/config/configurator_spec.rb
236
239
  - spec/lib/deploys_repository_spec.rb
237
240
  - spec/lib/dumpers/request_dumper_spec.rb
241
+ - spec/lib/dumpers/session_dumper_spec.rb
238
242
  - spec/lib/dumpers_data_repository_spec.rb
239
243
  - spec/lib/exception_catcher_middleware_spec.rb
240
244
  - spec/lib/exception_notifier_spec.rb
@@ -283,6 +287,7 @@ test_files:
283
287
  - spec/lib/config/configurator_spec.rb
284
288
  - spec/lib/deploys_repository_spec.rb
285
289
  - spec/lib/dumpers/request_dumper_spec.rb
290
+ - spec/lib/dumpers/session_dumper_spec.rb
286
291
  - spec/lib/dumpers_data_repository_spec.rb
287
292
  - spec/lib/exception_catcher_middleware_spec.rb
288
293
  - spec/lib/exception_notifier_spec.rb