crashbreak 1.1.0 → 1.1.1
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 +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
|