bugsnag-api 1.0.3 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +14 -3
- data/CHANGELOG.md +32 -0
- data/CONTRIBUTING.md +40 -0
- data/README.md +126 -111
- data/bugsnag-api.gemspec +4 -3
- data/lib/bugsnag/api/client.rb +18 -9
- data/lib/bugsnag/api/client/collaborators.rb +87 -0
- data/lib/bugsnag/api/client/comments.rb +31 -40
- data/lib/bugsnag/api/client/currentuser.rb +33 -0
- data/lib/bugsnag/api/client/errors.rb +45 -51
- data/lib/bugsnag/api/client/eventfields.rb +50 -0
- data/lib/bugsnag/api/client/events.rb +38 -32
- data/lib/bugsnag/api/client/organizations.rb +46 -0
- data/lib/bugsnag/api/client/pivots.rb +43 -0
- data/lib/bugsnag/api/client/projects.rb +37 -63
- data/lib/bugsnag/api/client/trends.rb +38 -0
- data/lib/bugsnag/api/error.rb +4 -0
- data/lib/bugsnag/api/version.rb +1 -1
- data/spec/bugsnag/api/client/collaborators_spec.rb +101 -0
- data/spec/bugsnag/api/client/comments_spec.rb +42 -30
- data/spec/bugsnag/api/client/currentuser_spec.rb +57 -0
- data/spec/bugsnag/api/client/errors_spec.rb +44 -41
- data/spec/bugsnag/api/client/eventfields_spec.rb +56 -0
- data/spec/bugsnag/api/client/events_spec.rb +41 -29
- data/spec/bugsnag/api/client/organizations_spec.rb +53 -0
- data/spec/bugsnag/api/client/pivots_spec.rb +49 -0
- data/spec/bugsnag/api/client/projects_spec.rb +35 -59
- data/spec/bugsnag/api/client/trends_spec.rb +44 -0
- data/spec/bugsnag/api/client_spec.rb +8 -3
- data/spec/cassettes/Bugsnag_Api_Client/_get/handles_query_params.yml +45 -27
- data/spec/cassettes/Bugsnag_Api_Client/_last_response/caches_the_last_agent_response.yml +45 -27
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/_invitecollaborator/creates_and_returns_a_collaborator.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/_invitecollaborator/invites_multiple_collaborators.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborator/returns_a_collaborator.yml +157 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/returns_a_list_of_all_organization_collaborators.yml +160 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/returns_a_list_of_all_project_collaborators.yml +160 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/throws_an_argument_error_if_neither_org_id_or_project_id_are_provided.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_delete_collaborator/deletes_a_collaborator.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_update_collaborator_permissions/updates_and_returns_the_collaborator.yml +157 -0
- data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_view_collaborator_projects/returns_a_list_of_projects_belonging_to_the_collaborator.yml +159 -0
- data/spec/cassettes/Bugsnag_Api_Client_Comments/_create_comment/creates_a_comment_on_the_error.yml +82 -0
- data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_comment/retrieves_the_comment_specified.yml +159 -0
- data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_comments/retrieves_all_comments_on_an_error.yml +161 -0
- data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_delete_comment/deletes_the_comment_and_returns_true.yml +82 -0
- data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_update_comment/updates_the_message_on_a_comment.yml +159 -0
- data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_organizations/when_using_auth_token/returns_the_organization_the_auth_token_belongs_to.yml +81 -0
- data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_organizations/when_using_user_credentials/returns_users_organizations.yml +85 -0
- data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_projects/when_using_auth_token/lists_current_user_s_projects_in_the_organization.yml +82 -0
- data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_projects/when_using_user_credentials/lists_current_user_s_projects_in_the_organization.yml +86 -0
- data/spec/cassettes/Bugsnag_Api_Client_Errors/_error/returns_a_single_error.yml +82 -0
- data/spec/cassettes/Bugsnag_Api_Client_Errors/_errors/returns_errors_on_the_project.yml +84 -0
- data/spec/cassettes/Bugsnag_Api_Client_Errors/_update_errors/updates_and_returns_the_updated_errors.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Events/_error_events/lists_all_error_events.yml +84 -0
- data/spec/cassettes/Bugsnag_Api_Client_Events/_event/returns_the_specified_event.yml +253 -0
- data/spec/cassettes/Bugsnag_Api_Client_Events/_events/returns_the_a_list_of_project_errors.yml +84 -0
- data/spec/cassettes/Bugsnag_Api_Client_Events/_latest_event/returns_the_last_event_on_an_error.yml +253 -0
- data/spec/cassettes/Bugsnag_Api_Client_Organizations/_create_organization/creates_a_new_organization.yml +84 -0
- data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_delete_organization/deletes_the_organization.yml +159 -0
- data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_organization/returns_the_requested_organization.yml +165 -0
- data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_update_organization/updates_and_returns_the_organization.yml +165 -0
- data/spec/cassettes/Bugsnag_Api_Client_Projects/_create_project/creates_a_new_project.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_delete_project/deletes_the_project.yml +151 -0
- data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_project/returns_the_requested_project.yml +157 -0
- data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_regenerate_api_key/removes_the_current_api_key_and_replaces_it_with_a_new_api_key.yml +157 -0
- data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_update_project/updates_and_returns_the_project.yml +157 -0
- data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_buckets/returns_a_list_of_error_trends_in_bucket_form.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_buckets/returns_a_list_of_project_trends_in_bucket_form.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_resolution/returns_a_list_of_project_trends_in_resolution_form.yml +80 -0
- data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_resolution/returns_a_list_of_trends_in_resolution_form.yml +80 -0
- data/spec/spec_helper.rb +29 -27
- metadata +124 -83
- data/lib/bugsnag/api/client/accounts.rb +0 -44
- data/lib/bugsnag/api/client/users.rb +0 -99
- data/spec/bugsnag/api/client/accounts_spec.rb +0 -45
- data/spec/bugsnag/api/client/users_spec.rb +0 -105
- data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/returns_the_requested_account.yml +0 -49
- data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/when_using_account_credentials/returns_the_account.yml +0 -51
- data/spec/cassettes/Bugsnag_Api_Client_Accounts/_accounts/returns_all_accounts.yml +0 -49
- data/spec/cassettes/Bugsnag_Api_Client_Comments/_comments/returns_all_comments_on_an_error.yml +0 -107
- data/spec/cassettes/Bugsnag_Api_Client_Comments/_create_comment/created_a_comment.yml +0 -51
- data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_comment/returns_a_comment.yml +0 -97
- data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_delete_comment/deletes_an_existing_comment.yml +0 -92
- data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_update_comment/updates_an_existing_comment.yml +0 -97
- data/spec/cassettes/Bugsnag_Api_Client_Errors/_errors/returns_all_errors_on_an_project.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_error/returns_an_error.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_reopen_error/reopens_the_error.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_resolve_error/resolves_the_error.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_update_error/updates_the_error.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Events/_error_events/returns_all_events_on_an_error.yml +0 -64
- data/spec/cassettes/Bugsnag_Api_Client_Events/_project_events/returns_all_events_on_a_project.yml +0 -64
- data/spec/cassettes/Bugsnag_Api_Client_Events/with_event/_event/returns_an_event.yml +0 -56
- data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/returns_all_projects_on_an_account.yml +0 -61
- data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/when_using_account_credentials/returns_all_projects.yml +0 -63
- data/spec/cassettes/Bugsnag_Api_Client_Projects/_create_project/creates_a_project_on_an_account.yml +0 -50
- data/spec/cassettes/Bugsnag_Api_Client_Projects/_user_projects/returns_all_projects_for_a_user.yml +0 -61
- data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_delete_project/deletes_an_existing_project.yml +0 -91
- data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_project/returns_a_project.yml +0 -95
- data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_update_project/updates_an_existing_project.yml +0 -95
- data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/returns_all_users_on_an_account.yml +0 -49
- data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/when_using_account_credentials/returns_all_users.yml +0 -51
- data/spec/cassettes/Bugsnag_Api_Client_Users/_invite_user/invites_a_user_to_an_account.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Users/_project_users/returns_all_users_for_a_project.yml +0 -49
- data/spec/cassettes/Bugsnag_Api_Client_Users/_user/returns_a_user.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Users/_user/when_using_user_credentials/returns_the_authed_user.yml +0 -48
- data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_remove_user/removes_a_user_from_an_account.yml +0 -89
- data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_update_user_permissions/updates_a_users_permissions.yml +0 -93
data/spec/cassettes/Bugsnag_Api_Client_Events/_events/returns_the_a_list_of_project_errors.yml
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID/events
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Bugsnag API Ruby Gem 1.0.3
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
X-Version:
|
15
|
+
- '2'
|
16
|
+
Authorization:
|
17
|
+
- token BUGSNAG_AUTH_TOKEN
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
Accept:
|
21
|
+
- "*/*"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx
|
29
|
+
Date:
|
30
|
+
- Tue, 10 Oct 2017 07:45:09 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/json; charset=utf-8
|
33
|
+
X-Total-Count:
|
34
|
+
- '1'
|
35
|
+
Etag:
|
36
|
+
- W/"bf2feb969a8cf69c47e1491e2aec2a78"
|
37
|
+
Cache-Control:
|
38
|
+
- max-age=0, private, must-revalidate
|
39
|
+
X-Request-Id:
|
40
|
+
- 68b47bfb-3bb0-4f40-810f-b2adf7770456
|
41
|
+
X-Runtime:
|
42
|
+
- '0.237505'
|
43
|
+
Vary:
|
44
|
+
- Origin
|
45
|
+
X-Ratelimit-Limit:
|
46
|
+
- '10'
|
47
|
+
X-Ratelimit-Remaining:
|
48
|
+
- '9'
|
49
|
+
Content-Security-Policy:
|
50
|
+
- 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
|
51
|
+
connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
|
52
|
+
https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
|
53
|
+
''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
|
54
|
+
script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
|
55
|
+
https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
|
56
|
+
https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
|
57
|
+
X-Content-Type-Options:
|
58
|
+
- nosniff
|
59
|
+
X-Download-Options:
|
60
|
+
- noopen
|
61
|
+
X-Frame-Options:
|
62
|
+
- DENY
|
63
|
+
X-Permitted-Cross-Domain-Policies:
|
64
|
+
- none
|
65
|
+
X-Xss-Protection:
|
66
|
+
- 1; mode=block
|
67
|
+
X-Robots-Tag:
|
68
|
+
- noindex, nofollow
|
69
|
+
Strict-Transport-Security:
|
70
|
+
- max-age=31536000
|
71
|
+
Via:
|
72
|
+
- 1.1 google
|
73
|
+
Alt-Svc:
|
74
|
+
- clear
|
75
|
+
Transfer-Encoding:
|
76
|
+
- chunked
|
77
|
+
body:
|
78
|
+
encoding: ASCII-8BIT
|
79
|
+
string: '[{"id":"BUGSNAG_EVENT_ID","url":"https://api.bugsnag.com/events/BUGSNAG_EVENT_ID","project_url":"https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID","is_full_report":false,"error_id":"BUGSNAG_ERROR_ID","receivedAt":"2017-10-09T14:18:25.000Z","exceptions":[{"errorClass":"RuntimeError","message":"Bugsnag
|
80
|
+
Padrino demo says: It crashed! Go check bugsnag.com for a new notification!"}],"severity":"error","context":"GET
|
81
|
+
/crash","unhandled":true,"app":{"releaseStage":"development"}}]'
|
82
|
+
http_version:
|
83
|
+
recorded_at: Tue, 10 Oct 2017 07:45:07 GMT
|
84
|
+
recorded_with: VCR 2.9.3
|
data/spec/cassettes/Bugsnag_Api_Client_Events/_latest_event/returns_the_last_event_on_an_error.yml
ADDED
@@ -0,0 +1,253 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.bugsnag.com/errors/BUGSNAG_ERROR_ID/latest_event
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Bugsnag API Ruby Gem 1.0.3
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
X-Version:
|
15
|
+
- '2'
|
16
|
+
Authorization:
|
17
|
+
- token BUGSNAG_AUTH_TOKEN
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
Accept:
|
21
|
+
- "*/*"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx
|
29
|
+
Date:
|
30
|
+
- Mon, 09 Oct 2017 14:20:06 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/json; charset=utf-8
|
33
|
+
Etag:
|
34
|
+
- W/"0401f7a63d242024c1b50e1c30154845"
|
35
|
+
Cache-Control:
|
36
|
+
- max-age=0, private, must-revalidate
|
37
|
+
X-Request-Id:
|
38
|
+
- 68494c24-9200-4616-9c8d-0ec855a62347
|
39
|
+
X-Runtime:
|
40
|
+
- '0.307119'
|
41
|
+
Vary:
|
42
|
+
- Origin
|
43
|
+
X-Ratelimit-Limit:
|
44
|
+
- '10'
|
45
|
+
X-Ratelimit-Remaining:
|
46
|
+
- '1'
|
47
|
+
Content-Security-Policy:
|
48
|
+
- 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
|
49
|
+
connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
|
50
|
+
https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
|
51
|
+
''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
|
52
|
+
script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
|
53
|
+
https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
|
54
|
+
https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
|
55
|
+
X-Content-Type-Options:
|
56
|
+
- nosniff
|
57
|
+
X-Download-Options:
|
58
|
+
- noopen
|
59
|
+
X-Frame-Options:
|
60
|
+
- DENY
|
61
|
+
X-Permitted-Cross-Domain-Policies:
|
62
|
+
- none
|
63
|
+
X-Xss-Protection:
|
64
|
+
- 1; mode=block
|
65
|
+
X-Robots-Tag:
|
66
|
+
- noindex, nofollow
|
67
|
+
Strict-Transport-Security:
|
68
|
+
- max-age=31536000
|
69
|
+
Via:
|
70
|
+
- 1.1 google
|
71
|
+
Alt-Svc:
|
72
|
+
- clear
|
73
|
+
Transfer-Encoding:
|
74
|
+
- chunked
|
75
|
+
body:
|
76
|
+
encoding: ASCII-8BIT
|
77
|
+
string: '{"id":"BUGSNAG_EVENT_ID","url":"https://api.bugsnag.com/events/BUGSNAG_EVENT_ID","project_url":"https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID","is_full_report":true,"error_id":"BUGSNAG_ERROR_ID","received_at":"2017-10-09T14:18:25.000Z","exceptions":[{"error_class":"RuntimeError","message":"Bugsnag
|
78
|
+
Padrino demo says: It crashed! Go check bugsnag.com for a new notification!","stacktrace":[{"column_number":null,"in_project":null,"line_number":74,"method":"block
|
79
|
+
in \u003cclass:App\u003e","file":"/Users/amoinet/Desktop/libraries/bugsnag-ruby/example/padrino/app/app.rb","code":{"71":" end","72":"","73":" get
|
80
|
+
''/crash'' do","74":" raise RuntimeError.new(''Bugsnag Padrino demo says:
|
81
|
+
It crashed! Go check '' +","75":" ''bugsnag.com for a new notification!'')","76":" end","77":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":735,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"732":"","733":" block
|
82
|
+
= block.arity != 0 ?","734":" proc { |a,p| unbound_method.bind(a).call(*p)
|
83
|
+
} :","735":" proc { |a,p| unbound_method.bind(a).call }","736":"","737":" invoke_hook(:route_added,
|
84
|
+
verb, path, block)","738":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":735,"method":"block
|
85
|
+
in route","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"732":"","733":" block
|
86
|
+
= block.arity != 0 ?","734":" proc { |a,p| unbound_method.bind(a).call(*p)
|
87
|
+
} :","735":" proc { |a,p| unbound_method.bind(a).call }","736":"","737":" invoke_hook(:route_added,
|
88
|
+
verb, path, block)","738":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"[]","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
|
89
|
+
- settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
|
90
|
+
= path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
|
91
|
+
{ |block| pass if block.bind(self).call == false }","62":" halt_response =
|
92
|
+
catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
|
93
|
+
= halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
|
94
|
+
true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
|
95
|
+
(3 levels) in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
|
96
|
+
- settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
|
97
|
+
= path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
|
98
|
+
{ |block| pass if block.bind(self).call == false }","62":" halt_response =
|
99
|
+
catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
|
100
|
+
= halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
|
101
|
+
true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":994,"method":"route_eval","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"991":"","992":" #
|
102
|
+
Run a route block and throw :halt with the result.","993":" def route_eval","994":" throw
|
103
|
+
:halt, yield","995":" end","996":"","997":" # If the current request
|
104
|
+
matches pattern and conditions, fill params"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
|
105
|
+
(2 levels) in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
|
106
|
+
- settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
|
107
|
+
= path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
|
108
|
+
{ |block| pass if block.bind(self).call == false }","62":" halt_response =
|
109
|
+
catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
|
110
|
+
= halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
|
111
|
+
true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"catch","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
|
112
|
+
- settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
|
113
|
+
= path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
|
114
|
+
{ |block| pass if block.bind(self).call == false }","62":" halt_response =
|
115
|
+
catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
|
116
|
+
= halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
|
117
|
+
true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
|
118
|
+
in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
|
119
|
+
- settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
|
120
|
+
= path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
|
121
|
+
{ |block| pass if block.bind(self).call == false }","62":" halt_response =
|
122
|
+
catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
|
123
|
+
= halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
|
124
|
+
true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":37,"method":"instance_eval","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"34":" def
|
125
|
+
rewrite_path_info(env, request); end","35":"","36":" def process_destination_path(path,
|
126
|
+
env)","37":" Thread.current[''padrino.instance''].instance_eval do","38":" request.route_obj
|
127
|
+
= path.route","39":" @_response_buffer = nil","40":" @route =
|
128
|
+
path.route"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":37,"method":"process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"34":" def
|
129
|
+
rewrite_path_info(env, request); end","35":"","36":" def process_destination_path(path,
|
130
|
+
env)","37":" Thread.current[''padrino.instance''].instance_eval do","38":" request.route_obj
|
131
|
+
= path.route","39":" @_response_buffer = nil","40":" @route =
|
132
|
+
path.route"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":77,"method":"block
|
133
|
+
in call","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":66,"method":"catch","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":66,"method":"call","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":288,"method":"raw_call","file":"gems/http_router-0.11.2/lib/http_router.rb","code":{"285":" @root.call(request,
|
134
|
+
\u0026blk)","286":" request","287":" else","288":" @root.call(request)
|
135
|
+
or no_response(request, env)","289":" end","290":" end","291":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1169,"method":"route!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1166":"","1167":" def
|
136
|
+
route!(base=settings, pass_block=nil)","1168":" Thread.current[''padrino.instance'']
|
137
|
+
= self","1169":" if base.compiled_router and match = base.compiled_router.call(@request.env)","1170":" if
|
138
|
+
match.respond_to?(:each)","1171":" route_eval do","1172":" match[1].each
|
139
|
+
{ |k,v| response[k] = v }"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1154,"method":"block
|
140
|
+
in dispatch!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1151":" def
|
141
|
+
dispatch!","1152":" invoke do","1153":" static! if settings.static?
|
142
|
+
\u0026\u0026 (request.get? || request.head?)","1154":" route!","1155":" end","1156":" rescue
|
143
|
+
::Exception =\u003e boom","1157":" filter! :before if boom.kind_of?
|
144
|
+
::Sinatra::NotFound"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"block
|
145
|
+
in invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
146
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
147
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
148
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
149
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"catch","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
150
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
151
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
152
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
153
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
154
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
155
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
156
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
157
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1152,"method":"dispatch!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1149":" end","1150":"","1151":" def
|
158
|
+
dispatch!","1152":" invoke do","1153":" static! if settings.static?
|
159
|
+
\u0026\u0026 (request.get? || request.head?)","1154":" route!","1155":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":907,"method":"block
|
160
|
+
in call!","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"904":" force_encoding(@params)","905":"","906":" @response[''Content-Type'']
|
161
|
+
= nil","907":" invoke { dispatch! }","908":" invoke { error_block!(response.status)
|
162
|
+
} unless @env[''sinatra.error'']","909":"","910":" unless @response[''Content-Type'']"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"block
|
163
|
+
in invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
164
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
165
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
166
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
167
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"catch","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
168
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
169
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
170
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
171
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
|
172
|
+
Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
|
173
|
+
invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
|
174
|
+
if Integer === res or String === res","1069":" if Array === res and Integer
|
175
|
+
=== res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":907,"method":"call!","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"904":" force_encoding(@params)","905":"","906":" @response[''Content-Type'']
|
176
|
+
= nil","907":" invoke { dispatch! }","908":" invoke { error_block!(response.status)
|
177
|
+
} unless @env[''sinatra.error'']","909":"","910":" unless @response[''Content-Type'']"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":895,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"892":"","893":" #
|
178
|
+
Rack call interface.","894":" def call(env)","895":" dup.call!(env)","896":" end","897":"","898":" def
|
179
|
+
call!(env) # :nodoc:"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
|
180
|
+
env","47":" result = react env","48":" end","49":" result
|
181
|
+
or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":18,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb","code":{"15":" default_options
|
182
|
+
:xss_mode =\u003e :block, :nosniff =\u003e true","16":"","17":" def call(env)","18":" status,
|
183
|
+
headers, body = @app.call(env)","19":" headers[''X-XSS-Protection''] ||=
|
184
|
+
\"1; mode=#{options[:xss_mode]}\" if html? headers","20":" headers[''X-Content-Type-Options'']
|
185
|
+
||= ''nosniff'' if options[:nosniff]","21":" [status,
|
186
|
+
headers, body]"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
|
187
|
+
env","47":" result = react env","48":" end","49":" result
|
188
|
+
or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
|
189
|
+
env","47":" result = react env","48":" end","49":" result
|
190
|
+
or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":18,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb","code":{"15":"","16":" def
|
191
|
+
call(env)","17":" request = Request.new(env)","18":" status,
|
192
|
+
headers, body = app.call(env)","19":"","20":" if has_vector? request,
|
193
|
+
headers","21":" warn env, \"attack prevented by #{self.class}\""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
|
194
|
+
env","47":" result = react env","48":" end","49":" result
|
195
|
+
or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
|
196
|
+
env","47":" result = react env","48":" end","49":" result
|
197
|
+
or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":31,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb","code":{"28":" end","29":"","30":" def
|
198
|
+
call(env)","31":" status, headers, body = @app.call(env)","32":" headers[''X-Frame-Options'']
|
199
|
+
||= frame_options if html? headers","33":" [status, headers, body]","34":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":13,"method":"call","file":"gems/rack-1.6.8/lib/rack/head.rb","code":{"10":" end","11":"","12":" def
|
200
|
+
call(env)","13":" status, headers, body = @app.call(env)","14":"","15":" if
|
201
|
+
env[REQUEST_METHOD] == HEAD","16":" ["},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":22,"method":"call","file":"gems/rack-1.6.8/lib/rack/methodoverride.rb","code":{"19":" end","20":" end","21":"","22":" @app.call(env)","23":" end","24":"","25":" def
|
202
|
+
method_override(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":22,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/reloader/rack.rb","code":{"19":" Thread.list.size
|
203
|
+
\u003e 1 ? Thread.exclusive { Padrino.reload! } : Padrino.reload!","20":" @last
|
204
|
+
= Time.now","21":" end","22":" @app.call(env)","23":" end","24":" end","25":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":420,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/logger.rb","code":{"417":" def
|
205
|
+
call(env)","418":" env[''rack.logger''] = Padrino.logger","419":" began_at
|
206
|
+
= Time.now","420":" status, header, body = @app.call(env)","421":" log(env,
|
207
|
+
status, header, began_at) if logger.debug?","422":" [status, header,
|
208
|
+
body]","423":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":225,"method":"context","file":"gems/rack-1.6.8/lib/rack/session/abstract/id.rb","code":{"222":"","223":" def
|
209
|
+
context(env, app=@app)","224":" prepare_session(env)","225":" status,
|
210
|
+
headers, body = app.call(env)","226":" commit_session(env, status,
|
211
|
+
headers, body)","227":" end","228":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":220,"method":"call","file":"gems/rack-1.6.8/lib/rack/session/abstract/id.rb","code":{"217":" end","218":"","219":" def
|
212
|
+
call(env)","220":" context(env)","221":" end","222":"","223":" def
|
213
|
+
context(env, app=@app)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":2013,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"2010":" end","2011":"","2012":" def
|
214
|
+
call(env)","2013":" @stack.call(env)","2014":" end","2015":"","2016":" def
|
215
|
+
inspect"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1487,"method":"block
|
216
|
+
in call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1484":" end","1485":"","1486":" def
|
217
|
+
call(env)","1487":" synchronize { prototype.call(env) }","1488":" end","1489":"","1490":" #
|
218
|
+
Like Kernel#caller but excluding certain magic entries and without"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1787,"method":"synchronize","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1784":" if
|
219
|
+
lock?","1785":" @@mutex.synchronize(\u0026block)","1786":" else","1787":" yield","1788":" end","1789":" end","1790":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1487,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1484":" end","1485":"","1486":" def
|
220
|
+
call(env)","1487":" synchronize { prototype.call(env) }","1488":" end","1489":"","1490":" #
|
221
|
+
Like Kernel#caller but excluding certain magic entries and without"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":84,"method":"block
|
222
|
+
in call","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"81":"","82":" env[''SCRIPT_NAME'']
|
223
|
+
= script_name + path","83":" env[''PATH_INFO''] = rest","84":" last_result
|
224
|
+
= app.call(env)","85":"","86":" cascade_setting = app.respond_to?(:cascade)
|
225
|
+
? app.cascade : true","87":" cascade_statuses = cascade_setting.respond_to?(:include?)
|
226
|
+
? cascade_setting : Mounter::DEFAULT_CASCADE"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":75,"method":"each","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"72":" http_host
|
227
|
+
= env[''HTTP_HOST'']","73":" last_result = nil","74":"","75":" @mapping.each
|
228
|
+
do |host, path, match, app|","76":" next unless host.nil? || http_host
|
229
|
+
=~ host","77":" next unless path_info =~ match \u0026\u0026 rest =
|
230
|
+
$1","78":" next unless rest.empty? || rest[0] == ?/"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":75,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"72":" http_host
|
231
|
+
= env[''HTTP_HOST'']","73":" last_result = nil","74":"","75":" @mapping.each
|
232
|
+
do |host, path, match, app|","76":" next unless host.nil? || http_host
|
233
|
+
=~ host","77":" next unless path_info =~ match \u0026\u0026 rest =
|
234
|
+
$1","78":" next unless rest.empty? || rest[0] == ?/"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":88,"method":"service","file":"gems/rack-1.6.8/lib/rack/handler/webrick.rb","code":{"85":" end","86":" env[\"REQUEST_PATH\"]
|
235
|
+
||= [env[\"SCRIPT_NAME\"], env[PATH_INFO]].join","87":"","88":" status,
|
236
|
+
headers, body = @app.call(env)","89":" begin","90":" res.status
|
237
|
+
= status.to_i","91":" headers.each { |k, vs|"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":138,"method":"service","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb","code":{"135":" req.path_info
|
238
|
+
= path_info","136":" si = servlet.get_instance(self, *options)","137":" @logger.debug(format(\"%s
|
239
|
+
is invoked.\", si.class.name))","138":" si.service(req, res)","139":" end","140":"","141":" ##"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":94,"method":"run","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb","code":{"91":" @logger.warn(msg)","92":" callback.call(req,
|
240
|
+
res)","93":" end","94":" server.service(req, res)","95":" rescue
|
241
|
+
HTTPStatus::EOFError, HTTPStatus::RequestTimeout =\u003e ex","96":" res.set_error(ex)","97":" rescue
|
242
|
+
HTTPStatus::Error =\u003e ex"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":294,"method":"block
|
243
|
+
in start_thread","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/server.rb","code":{"291":" raise","292":" end","293":" call_callback(:AcceptCallback,
|
244
|
+
sock)","294":" block ? block.call(sock) : run(sock)","295":" rescue
|
245
|
+
Errno::ENOTCONN","296":" @logger.debug \"Errno::ENOTCONN raised\"","297":" rescue
|
246
|
+
ServerError =\u003e ex"},"macho_uuid":null,"source_control_link":null,"source_control_name":null}]}],"threads":[],"metaData":{"request":{"referer":null},"session":{"csrf":"6baa4072450acdd3cfbb968468124847","session_id":"97833d48752db206ba510e4497dd102fc02c432b6db242633c8e23c97a10e5a8","tracking":{"HTTP_USER_AGENT":"12a00762794c42b4c1ad20036160ad0eb7f7f6db","HTTP_ACCEPT_LANGUAGE":"3aafc5dab3eb0b9a53b22430a9c6325546c8ae04"}}},"customDiagnostics":{},"request":{"clientIp":"127.0.0.1","headers":{"Host":"localhost:3000","Connection":"keep-alive","User-Agent":"Mozilla/5.0
|
247
|
+
(Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko)
|
248
|
+
Chrome/61.0.3163.100 Safari/537.36","Upgrade-Insecure-Requests":"1","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Encoding":"gzip,
|
249
|
+
deflate, br","Accept-Language":"en-GB,en-US;q=0.8,en;q=0.6","Cookie":"[FILTERED]","Version":"HTTP/1.1"},"httpMethod":"GET","params":{},"url":"http://localhost:3000/crash"},"app":{"releaseStage":"development","type":"rack"},"device":{"hostname":"Alexanders-MacBook-Pro.local"},"user":{"id":"127.0.0.1"},"breadcrumbs":[],"context":"GET
|
250
|
+
/crash","severity":"error","unhandled":true,"derived":{"deploy":null}}'
|
251
|
+
http_version:
|
252
|
+
recorded_at: Mon, 09 Oct 2017 14:20:05 GMT
|
253
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,84 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.bugsnag.com/organizations
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"name":"testOrg"}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Bugsnag API Ruby Gem 1.0.3
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
X-Version:
|
15
|
+
- '2'
|
16
|
+
Authorization:
|
17
|
+
- Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
Accept:
|
21
|
+
- "*/*"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx
|
29
|
+
Date:
|
30
|
+
- Mon, 09 Oct 2017 14:20:19 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/json; charset=utf-8
|
33
|
+
Etag:
|
34
|
+
- W/"f6a5e1aba0dca338af03930ea73fc4e7"
|
35
|
+
Cache-Control:
|
36
|
+
- max-age=0, private, must-revalidate
|
37
|
+
Set-Cookie:
|
38
|
+
- _bugsnag_session_2=V3dySUxNQVpBY2ljdmM0WjhZaXlrd0ZOTFJxb05RSXliUFV2Sk91R3lFWG9UOEdWVXFqMHI5cjJCZUh6Rjg3dUdtdU9jejNlRHRTenlyRkxYaVpiczhIL0pQNlczVmg4cy9QMjBrd0g3NkhBRjdwTVZqUG9MckpwNE9wUmJ5N0FtYkJ0RThMaDBIbnVTNGN1TGJwVFJZd25qZGhJdERLZ3RJTFRIZlhJb0pLS2g5dTc1K0ZVVWZFbXlzNUtWNng0MWhUU2JtSGNkY1ZTbzg5MmFkcyt6QT09LS1uL2ZVWWZXRUd0c25wTVRGM1ZaeHJBPT0%3D--f082920eb5d3142c6afcf653f919b10a90334a1e;
|
39
|
+
domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:19 -0000; secure;
|
40
|
+
HttpOnly; SameSite=Lax
|
41
|
+
X-Request-Id:
|
42
|
+
- 3bdd5289-931b-4fb9-b417-45a415dbd6ed
|
43
|
+
X-Runtime:
|
44
|
+
- '1.689303'
|
45
|
+
Vary:
|
46
|
+
- Origin
|
47
|
+
X-Ratelimit-Limit:
|
48
|
+
- '10'
|
49
|
+
X-Ratelimit-Remaining:
|
50
|
+
- '1'
|
51
|
+
Content-Security-Policy:
|
52
|
+
- 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
|
53
|
+
connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
|
54
|
+
https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
|
55
|
+
''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
|
56
|
+
script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
|
57
|
+
https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
|
58
|
+
https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
|
59
|
+
X-Content-Type-Options:
|
60
|
+
- nosniff
|
61
|
+
X-Download-Options:
|
62
|
+
- noopen
|
63
|
+
X-Frame-Options:
|
64
|
+
- DENY
|
65
|
+
X-Permitted-Cross-Domain-Policies:
|
66
|
+
- none
|
67
|
+
X-Xss-Protection:
|
68
|
+
- 1; mode=block
|
69
|
+
X-Robots-Tag:
|
70
|
+
- noindex, nofollow
|
71
|
+
Strict-Transport-Security:
|
72
|
+
- max-age=31536000
|
73
|
+
Via:
|
74
|
+
- 1.1 google
|
75
|
+
Alt-Svc:
|
76
|
+
- clear
|
77
|
+
Transfer-Encoding:
|
78
|
+
- chunked
|
79
|
+
body:
|
80
|
+
encoding: ASCII-8BIT
|
81
|
+
string: '{"id":"59db85a2562ced001d108664","name":"testOrg","slug":"testorg-29","creator":{"id":"59ae67b68a0558001a351bcb","name":"AlexTestsM","email":"BUGSNAG_USER_EMAIL"},"created_at":"2017-10-09T14:20:18.150Z","updated_at":"2017-10-09T14:20:18.315Z","auto_upgrade":true,"upgrade_url":"https://api.bugsnag.com/settings/testorg-29/plans-billing?plansBilling%5Bstep%5D=collaborators-and-events","billing_emails":["BUGSNAG_USER_EMAIL"]}'
|
82
|
+
http_version:
|
83
|
+
recorded_at: Mon, 09 Oct 2017 14:20:18 GMT
|
84
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,159 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.bugsnag.com/organizations
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"name":"testOrg"}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Bugsnag API Ruby Gem 1.0.3
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
X-Version:
|
15
|
+
- '2'
|
16
|
+
Authorization:
|
17
|
+
- Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
Accept:
|
21
|
+
- "*/*"
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx
|
29
|
+
Date:
|
30
|
+
- Mon, 09 Oct 2017 14:20:16 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/json; charset=utf-8
|
33
|
+
Etag:
|
34
|
+
- W/"90306d8a4f8fd3a64a09698514dd967f"
|
35
|
+
Cache-Control:
|
36
|
+
- max-age=0, private, must-revalidate
|
37
|
+
Set-Cookie:
|
38
|
+
- _bugsnag_session_2=OE1XeGR4eWZ4QnYxRFpubVJHa04wTFJJaGxHdllpRnp0YXBWMFQvdGhpK24yb3lqYlZpYmFkcmNRNVVmdFRNVnp1RDU2cHZXYUxZb2RKOHhzRklxb2pjbW9JTVdRcVhaQnVPei9yQ1F5M042dGY1c08wQXZMQ2ljVktTVUtJcm5hYjlaNGlCZitKbGZhbkxxRXpXekU0V0lmVVlDM1RqZ2hSUWpVV0o1YUVvQnlDSDNiM2JHdlY1VlpNb2RQYlpnc2NDdGR1N2VqNGdOY1dENW1MM1k1dz09LS03YTRYM05nUnpUY3lUckU4ZnZuYTR3PT0%3D--3708aa7a4bd61f08076303ea9cff69737a010248;
|
39
|
+
domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:16 -0000; secure;
|
40
|
+
HttpOnly; SameSite=Lax
|
41
|
+
X-Request-Id:
|
42
|
+
- f621f4cc-3d54-4338-b7f4-509858c41f07
|
43
|
+
X-Runtime:
|
44
|
+
- '1.181246'
|
45
|
+
Vary:
|
46
|
+
- Origin
|
47
|
+
X-Ratelimit-Limit:
|
48
|
+
- '10'
|
49
|
+
X-Ratelimit-Remaining:
|
50
|
+
- '3'
|
51
|
+
Content-Security-Policy:
|
52
|
+
- 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
|
53
|
+
connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
|
54
|
+
https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
|
55
|
+
''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
|
56
|
+
script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
|
57
|
+
https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
|
58
|
+
https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
|
59
|
+
X-Content-Type-Options:
|
60
|
+
- nosniff
|
61
|
+
X-Download-Options:
|
62
|
+
- noopen
|
63
|
+
X-Frame-Options:
|
64
|
+
- DENY
|
65
|
+
X-Permitted-Cross-Domain-Policies:
|
66
|
+
- none
|
67
|
+
X-Xss-Protection:
|
68
|
+
- 1; mode=block
|
69
|
+
X-Robots-Tag:
|
70
|
+
- noindex, nofollow
|
71
|
+
Strict-Transport-Security:
|
72
|
+
- max-age=31536000
|
73
|
+
Via:
|
74
|
+
- 1.1 google
|
75
|
+
Alt-Svc:
|
76
|
+
- clear
|
77
|
+
Transfer-Encoding:
|
78
|
+
- chunked
|
79
|
+
body:
|
80
|
+
encoding: ASCII-8BIT
|
81
|
+
string: '{"id":"59db85a0901da000201ed575","name":"testOrg","slug":"testorg-28","creator":{"id":"59ae67b68a0558001a351bcb","name":"AlexTestsM","email":"BUGSNAG_USER_EMAIL"},"created_at":"2017-10-09T14:20:16.064Z","updated_at":"2017-10-09T14:20:16.173Z","auto_upgrade":true,"upgrade_url":"https://api.bugsnag.com/settings/testorg-28/plans-billing?plansBilling%5Bstep%5D=collaborators-and-events","billing_emails":["BUGSNAG_USER_EMAIL"]}'
|
82
|
+
http_version:
|
83
|
+
recorded_at: Mon, 09 Oct 2017 14:20:16 GMT
|
84
|
+
- request:
|
85
|
+
method: delete
|
86
|
+
uri: https://api.bugsnag.com/organizations/59db85a0901da000201ed575
|
87
|
+
body:
|
88
|
+
encoding: UTF-8
|
89
|
+
string: "{}"
|
90
|
+
headers:
|
91
|
+
User-Agent:
|
92
|
+
- Bugsnag API Ruby Gem 1.0.3
|
93
|
+
Content-Type:
|
94
|
+
- application/json
|
95
|
+
X-Version:
|
96
|
+
- '2'
|
97
|
+
Authorization:
|
98
|
+
- Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
|
99
|
+
Accept-Encoding:
|
100
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
101
|
+
Accept:
|
102
|
+
- "*/*"
|
103
|
+
response:
|
104
|
+
status:
|
105
|
+
code: 204
|
106
|
+
message: No Content
|
107
|
+
headers:
|
108
|
+
Server:
|
109
|
+
- nginx
|
110
|
+
Date:
|
111
|
+
- Mon, 09 Oct 2017 14:20:17 GMT
|
112
|
+
Cache-Control:
|
113
|
+
- no-cache
|
114
|
+
Set-Cookie:
|
115
|
+
- _bugsnag_session_2=L1luZCt6S0NtV3Ixb01HNEI1bnozc0pkSk9xK2FpY2RScld2QW1xbmFuR0JXVG1xVlowdkx3eGc3eXJPV05zOWVhK0hnaGxRaSs3TnFXU3RHRDRHVFVDbnMzd0EyTm9HVkRCN00vQ29vYytsak51NG1OcDZ1ckFwSDRURWQzZXR0OHR0Nk1Bd0VuQWpub0duL2Y1ZnZUNExJOThRSHc2dlNvWEpHVWJESGRQd1pKWWd2dHRLMDAwL2hhREdaRkVQOHYrcGh4S0RVeXM0cjVEQi90eHZoZz09LS1zejhiY3pHb1k5eWdqcFV3ekVTSi9BPT0%3D--0ac36e30bf4802a7c3421ca1bd4241b47280095c;
|
116
|
+
domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:17 -0000; secure;
|
117
|
+
HttpOnly; SameSite=Lax
|
118
|
+
X-Request-Id:
|
119
|
+
- 75741f24-0241-4ef1-a428-edb3939612a3
|
120
|
+
X-Runtime:
|
121
|
+
- '0.311295'
|
122
|
+
Vary:
|
123
|
+
- Origin
|
124
|
+
X-Ratelimit-Limit:
|
125
|
+
- '10'
|
126
|
+
X-Ratelimit-Remaining:
|
127
|
+
- '2'
|
128
|
+
Content-Security-Policy:
|
129
|
+
- 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
|
130
|
+
connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
|
131
|
+
https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
|
132
|
+
''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
|
133
|
+
script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
|
134
|
+
https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
|
135
|
+
https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
|
136
|
+
X-Content-Type-Options:
|
137
|
+
- nosniff
|
138
|
+
X-Download-Options:
|
139
|
+
- noopen
|
140
|
+
X-Frame-Options:
|
141
|
+
- DENY
|
142
|
+
X-Permitted-Cross-Domain-Policies:
|
143
|
+
- none
|
144
|
+
X-Xss-Protection:
|
145
|
+
- 1; mode=block
|
146
|
+
X-Robots-Tag:
|
147
|
+
- noindex, nofollow
|
148
|
+
Strict-Transport-Security:
|
149
|
+
- max-age=31536000
|
150
|
+
Via:
|
151
|
+
- 1.1 google
|
152
|
+
Alt-Svc:
|
153
|
+
- clear
|
154
|
+
body:
|
155
|
+
encoding: UTF-8
|
156
|
+
string: ''
|
157
|
+
http_version:
|
158
|
+
recorded_at: Mon, 09 Oct 2017 14:20:16 GMT
|
159
|
+
recorded_with: VCR 2.9.3
|