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 +4 -4
- data/lib/crashbreak.rb +3 -0
- data/lib/crashbreak/dumpers/session_dumper.rb +7 -0
- data/lib/crashbreak/railtie.rb +1 -0
- data/lib/crashbreak/request_parser.rb +1 -1
- data/lib/crashbreak/restorers/session_restorer.rb +13 -0
- data/lib/crashbreak/restorers_middleware.rb +14 -0
- data/lib/crashbreak/version.rb +1 -1
- data/lib/generators/crashbreak/templates/crashbreak.rb +2 -2
- data/spec/lib/dumpers/session_dumper_spec.rb +15 -0
- data/spec/lib/request_parser_spec.rb +7 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1d14fcb61e329935dd1f837590f346da64245a4
|
4
|
+
data.tar.gz: 1446a4ac170233144972b04d3847c0a00946df74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b87d86b0de848dbbbee95e99bee32c8056935bcae23ad000087febc354681a426825854ca4d988dc73c999c5abe1d42d0e17c2ee4732c8bcb239d753cdeab17
|
7
|
+
data.tar.gz: 22dacbe1ce5b36120300cd849ae4aba0fc4a81665e8585f8c57c623f03f2619ca56f28369c1a4bc928563ab15741d8d65aeaa42ac959c521f5e17292bce5aa9d
|
data/lib/crashbreak.rb
CHANGED
@@ -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
|
|
data/lib/crashbreak/railtie.rb
CHANGED
@@ -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
|
@@ -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
|
data/lib/crashbreak/version.rb
CHANGED
@@ -19,8 +19,8 @@ Crashbreak.configure do |config|
|
|
19
19
|
}
|
20
20
|
|
21
21
|
# Config for GitHub integration
|
22
|
-
config.github_integration =
|
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.
|
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-
|
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
|