airbrake 3.2.0 → 3.2.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 +7 -0
- data/CHANGELOG +9 -0
- data/Rakefile +1 -1
- data/features/rails_with_js_notifier.feature +104 -0
- data/features/step_definitions/rails_application_steps.rb +26 -0
- data/lib/airbrake/configuration.rb +16 -1
- data/lib/airbrake/rails.rb +2 -0
- data/lib/airbrake/rails/javascript_notifier.rb +85 -0
- data/lib/airbrake/railtie.rb +6 -0
- data/lib/airbrake/version.rb +1 -1
- data/lib/templates/javascript_notifier_configuration +12 -0
- data/lib/templates/javascript_notifier_loader +6 -0
- data/test/configuration_test.rb +8 -0
- data/test/integration.rb +1 -0
- data/test/integration/javascript_notifier_test.rb +56 -0
- metadata +66 -102
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 0cb7869b6211b8a5c7157ae331b8ef74a08a8517
|
|
4
|
+
data.tar.gz: d0ca30c369481d71ab97470a4f59936a5cd3ea98
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 5dd5a7333f1ac94524d0fdf3a11c913a64bc240a61342d6de1109231fb9fc57df82e406f886ca894f190a357a2dabc955390ed429fc5aa5811663cff8116433b
|
|
7
|
+
data.tar.gz: 1a032859b51b4b957989239f52b8be83272a1fa38ba566bc55ff5e9d797c03e1ec9199d3755e901f53339db89db070b7c92e660f28cb1a9222ab256a564b0e97
|
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
Version 3.2.1 - 2014-05-27 15:58:24 -0700
|
|
2
|
+
===============================================================================
|
|
3
|
+
|
|
4
|
+
Ali Faiz (3):
|
|
5
|
+
Revert "Merge pull request #297 from airbrake/remove-js-notifier"
|
|
6
|
+
Add deprecation warning when using .
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
Version 3.2.0 - 2014-05-23 17:37:35 -0700
|
|
2
10
|
===============================================================================
|
|
3
11
|
|
|
@@ -1368,5 +1376,6 @@ Nick Quaranto (3):
|
|
|
1368
1376
|
|
|
1369
1377
|
|
|
1370
1378
|
|
|
1379
|
+
|
|
1371
1380
|
|
|
1372
1381
|
|
data/Rakefile
CHANGED
|
@@ -158,7 +158,7 @@ def cucumber_opts
|
|
|
158
158
|
|
|
159
159
|
case ENV["BUNDLE_GEMFILE"]
|
|
160
160
|
when /rails/
|
|
161
|
-
opts << "features/rails.feature features/metal.feature features/user_informer.feature"
|
|
161
|
+
opts << "features/rails.feature features/rails_with_js_notifier.feature features/metal.feature features/user_informer.feature"
|
|
162
162
|
when /rack/
|
|
163
163
|
opts << "features/rack.feature"
|
|
164
164
|
when /sinatra/
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Feature: Install the Gem in a Rails application and enable the JavaScript notifier
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I successfully run `rails new rails_root -O --skip-gemfile`
|
|
5
|
+
And I cd to "rails_root"
|
|
6
|
+
And I configure the Airbrake shim
|
|
7
|
+
|
|
8
|
+
Scenario: Include the Javascript notifier when enabled
|
|
9
|
+
When I configure the notifier to use the following configuration lines:
|
|
10
|
+
"""
|
|
11
|
+
config.api_key = "myapikey"
|
|
12
|
+
"""
|
|
13
|
+
And I define a response for "TestController#index":
|
|
14
|
+
"""
|
|
15
|
+
render :inline => '<html><head profile="http://example.com"><%= airbrake_javascript_notifier %></head><body></body></html>'
|
|
16
|
+
"""
|
|
17
|
+
And I route "/test/index" to "test#index"
|
|
18
|
+
And I perform a request to "http://example.com:123/test/index" in the "production" environment
|
|
19
|
+
Then I should see the notifier JavaScript for the following:
|
|
20
|
+
| api_key | environment | host |
|
|
21
|
+
| myapikey | production | api.airbrake.io |
|
|
22
|
+
And the notifier JavaScript should provide the following errorDefaults:
|
|
23
|
+
| url | component | action |
|
|
24
|
+
| http://example.com:123/test/index | test | index |
|
|
25
|
+
|
|
26
|
+
Scenario: Include the Javascript notifier when enabled using custom configuration settings
|
|
27
|
+
When I configure the notifier to use the following configuration lines:
|
|
28
|
+
"""
|
|
29
|
+
config.development_environments = []
|
|
30
|
+
config.api_key = "myapikey!"
|
|
31
|
+
config.host = "myairbrake.com"
|
|
32
|
+
config.port = 3001
|
|
33
|
+
"""
|
|
34
|
+
And I define a response for "TestController#index":
|
|
35
|
+
"""
|
|
36
|
+
render :inline => '<html><head><%= airbrake_javascript_notifier %></head><body></body></html>'
|
|
37
|
+
"""
|
|
38
|
+
And I route "/test/index" to "test#index"
|
|
39
|
+
And I perform a request to "http://example.com:123/test/index"
|
|
40
|
+
Then I should see the notifier JavaScript for the following:
|
|
41
|
+
| api_key | environment | host |
|
|
42
|
+
| myapikey! | test | myairbrake.com:3001 |
|
|
43
|
+
|
|
44
|
+
Scenario: Don't include the Javascript notifier by default
|
|
45
|
+
When I configure the notifier to use the following configuration lines:
|
|
46
|
+
"""
|
|
47
|
+
config.api_key = "myapikey!"
|
|
48
|
+
"""
|
|
49
|
+
And I define a response for "TestController#index":
|
|
50
|
+
"""
|
|
51
|
+
render :inline => "<html><head></head><body></body></html>"
|
|
52
|
+
"""
|
|
53
|
+
And I route "/test/index" to "test#index"
|
|
54
|
+
And I perform a request to "http://example.com:123/test/index"
|
|
55
|
+
Then I should not see notifier JavaScript
|
|
56
|
+
|
|
57
|
+
Scenario: Don't include the Javascript notifier when enabled in non-public environments
|
|
58
|
+
When I configure the notifier to use the following configuration lines:
|
|
59
|
+
"""
|
|
60
|
+
config.api_key = "myapikey!"
|
|
61
|
+
config.environment_name = 'test'
|
|
62
|
+
"""
|
|
63
|
+
And I define a response for "TestController#index":
|
|
64
|
+
"""
|
|
65
|
+
render :inline => '<html><head><%= airbrake_javascript_notifier %></head><body></body></html>'
|
|
66
|
+
"""
|
|
67
|
+
And I route "/test/index" to "test#index"
|
|
68
|
+
And I perform a request to "http://example.com:123/test/index" in the "test" environment
|
|
69
|
+
Then I should not see notifier JavaScript
|
|
70
|
+
|
|
71
|
+
Scenario: Use the js_api_key if present
|
|
72
|
+
When I configure the notifier to use the following configuration lines:
|
|
73
|
+
"""
|
|
74
|
+
config.api_key = "myapikey!"
|
|
75
|
+
config.js_api_key = "myjsapikey!"
|
|
76
|
+
"""
|
|
77
|
+
And I define a response for "TestController#index":
|
|
78
|
+
"""
|
|
79
|
+
render :inline => '<html><head><%= airbrake_javascript_notifier %></head><body></body></html>'
|
|
80
|
+
"""
|
|
81
|
+
And I route "/test/index" to "test#index"
|
|
82
|
+
And I perform a request to "http://example.com:123/test/index" in the "production" environment
|
|
83
|
+
Then I should see the notifier JavaScript for the following:
|
|
84
|
+
| api_key | environment | host |
|
|
85
|
+
| myjsapikey! | production | api.airbrake.io |
|
|
86
|
+
|
|
87
|
+
Scenario: Being careful with user's instance variables
|
|
88
|
+
When I configure the notifier to use the following configuration lines:
|
|
89
|
+
"""
|
|
90
|
+
config.api_key = "myapikey"
|
|
91
|
+
"""
|
|
92
|
+
And I define a response for "TestController#index":
|
|
93
|
+
"""
|
|
94
|
+
@template = "this is some random instance variable"
|
|
95
|
+
render :inline => '<html><head><%= airbrake_javascript_notifier %></head><body></body></html>'
|
|
96
|
+
"""
|
|
97
|
+
And I route "/test/index" to "test#index"
|
|
98
|
+
And I perform a request to "http://example.com:123/test/index" in the "production" environment
|
|
99
|
+
Then I should see the notifier JavaScript for the following:
|
|
100
|
+
| api_key | environment | host |
|
|
101
|
+
| myapikey | production | api.airbrake.io |
|
|
102
|
+
And the notifier JavaScript should provide the following errorDefaults:
|
|
103
|
+
| url | component | action |
|
|
104
|
+
| http://example.com:123/test/index | test | index |
|
|
@@ -192,6 +192,32 @@ When /^I configure the application to filter parameter "([^\"]*)"$/ do |paramete
|
|
|
192
192
|
end
|
|
193
193
|
end
|
|
194
194
|
|
|
195
|
+
Then /^I should see the notifier JavaScript for the following:$/ do |table|
|
|
196
|
+
hash = table.hashes.first
|
|
197
|
+
host = hash['host'] || 'api.airbrake.io'
|
|
198
|
+
secure = hash['secure'] || false
|
|
199
|
+
api_key = hash['api_key']
|
|
200
|
+
environment = hash['environment'] || 'production'
|
|
201
|
+
|
|
202
|
+
steps %{
|
|
203
|
+
Then the output should contain "#{host}/javascripts/notifier.js"
|
|
204
|
+
And the output should contain "Airbrake.setKey('#{api_key}');"
|
|
205
|
+
And the output should contain "Airbrake.setHost('#{host}');"
|
|
206
|
+
And the output should contain "Airbrake.setEnvironment('#{environment}');"
|
|
207
|
+
}
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
Then /^the notifier JavaScript should provide the following errorDefaults:$/ do |table|
|
|
211
|
+
hash = table.hashes.first
|
|
212
|
+
hash.each do |key, value|
|
|
213
|
+
assert_matching_output("Airbrake\.setErrorDefaults.*#{key}: \"#{value}\"",all_output)
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
Then /^I should not see notifier JavaScript$/ do
|
|
218
|
+
step %{the output should not contain "script[type='text/javascript'][src$='/javascripts/notifier.js']"}
|
|
219
|
+
end
|
|
220
|
+
|
|
195
221
|
When /^I have set up authentication system in my app that uses "([^\"]*)"$/ do |current_user|
|
|
196
222
|
application_controller = File.join(rails_root, 'app', 'controllers', "application_controller.rb")
|
|
197
223
|
definition =
|
|
@@ -2,7 +2,7 @@ module Airbrake
|
|
|
2
2
|
# Used to set up and modify settings for the notifier.
|
|
3
3
|
class Configuration
|
|
4
4
|
|
|
5
|
-
OPTIONS = [:api_key, :backtrace_filters, :development_environments,
|
|
5
|
+
OPTIONS = [:api_key, :js_api_key, :backtrace_filters, :development_environments,
|
|
6
6
|
:development_lookup, :environment_name, :host,
|
|
7
7
|
:http_open_timeout, :http_read_timeout, :ignore, :ignore_by_filters,
|
|
8
8
|
:ignore_user_agent, :notifier_name, :notifier_url, :notifier_version,
|
|
@@ -14,6 +14,12 @@ module Airbrake
|
|
|
14
14
|
# The API key for your project, found on the project edit form.
|
|
15
15
|
attr_accessor :api_key
|
|
16
16
|
|
|
17
|
+
# If you're using the Javascript notifier and would want to separate
|
|
18
|
+
# Javascript notifications into another Airbrake project, specify
|
|
19
|
+
# its APi key here.
|
|
20
|
+
# Defaults to #api_key (of the base project)
|
|
21
|
+
attr_writer :js_api_key
|
|
22
|
+
|
|
17
23
|
# The host to connect to (defaults to airbrake.io).
|
|
18
24
|
attr_accessor :host
|
|
19
25
|
|
|
@@ -152,6 +158,7 @@ module Airbrake
|
|
|
152
158
|
alias_method :use_system_ssl_cert_chain?, :use_system_ssl_cert_chain
|
|
153
159
|
|
|
154
160
|
def initialize
|
|
161
|
+
@js_api_key = nil
|
|
155
162
|
@secure = false
|
|
156
163
|
@use_system_ssl_cert_chain= false
|
|
157
164
|
@host = 'api.airbrake.io'
|
|
@@ -304,6 +311,14 @@ module Airbrake
|
|
|
304
311
|
@rescue_rake_exceptions = val
|
|
305
312
|
end
|
|
306
313
|
|
|
314
|
+
def js_api_key
|
|
315
|
+
@js_api_key || self.api_key
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
def js_notifier=(*args)
|
|
319
|
+
warn '[AIRBRAKE] config.js_notifier has been deprecated and has no effect. You should use <%= airbrake_javascript_notifier %> directly at the top of your layouts. Be sure to place it before all other javascript.'
|
|
320
|
+
end
|
|
321
|
+
|
|
307
322
|
def ca_bundle_path
|
|
308
323
|
if use_system_ssl_cert_chain? && File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE)
|
|
309
324
|
OpenSSL::X509::DEFAULT_CERT_FILE
|
data/lib/airbrake/rails.rb
CHANGED
|
@@ -2,6 +2,7 @@ require 'airbrake'
|
|
|
2
2
|
require 'airbrake/rails/controller_methods'
|
|
3
3
|
require 'airbrake/rails/action_controller_catcher'
|
|
4
4
|
require 'airbrake/rails/error_lookup'
|
|
5
|
+
require 'airbrake/rails/javascript_notifier'
|
|
5
6
|
|
|
6
7
|
module Airbrake
|
|
7
8
|
module Rails
|
|
@@ -10,6 +11,7 @@ module Airbrake
|
|
|
10
11
|
ActionController::Base.send(:include, Airbrake::Rails::ActionControllerCatcher)
|
|
11
12
|
ActionController::Base.send(:include, Airbrake::Rails::ErrorLookup)
|
|
12
13
|
ActionController::Base.send(:include, Airbrake::Rails::ControllerMethods)
|
|
14
|
+
ActionController::Base.send(:include, Airbrake::Rails::JavascriptNotifier)
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
rails_logger = if defined?(::Rails.logger)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
module Airbrake
|
|
2
|
+
module Rails
|
|
3
|
+
module JavascriptNotifier
|
|
4
|
+
def self.included(base) #:nodoc:
|
|
5
|
+
base.send :helper_method, :airbrake_javascript_notifier
|
|
6
|
+
base.send :helper_method, :airbrake_javascript_loader
|
|
7
|
+
base.send :helper_method, :airbrake_javascript_configuration
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def airbrake_javascript_notifier
|
|
13
|
+
warn '[DEPRECATION] `airbrake_javascript_notifier` is deprecated and will no longer be supported in v4.0.0. /
|
|
14
|
+
Please use the official Airbrake JavaScript Notifier - https://github.com/airbrake/airbrake-js'
|
|
15
|
+
if Airbrake.configuration.public?
|
|
16
|
+
airbrake_javascript_loader + airbrake_javascript_configuration
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def airbrake_javascript_loader
|
|
21
|
+
if Airbrake.configuration.public?
|
|
22
|
+
path = File.join File.dirname(__FILE__), '..', '..', 'templates', 'javascript_notifier_loader'
|
|
23
|
+
|
|
24
|
+
_airbrake_render_part path
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def airbrake_javascript_configuration
|
|
29
|
+
if Airbrake.configuration.public?
|
|
30
|
+
path = File.join File.dirname(__FILE__), '..', '..', 'templates', 'javascript_notifier_configuration'
|
|
31
|
+
|
|
32
|
+
options = {
|
|
33
|
+
:api_key => Airbrake.configuration.js_api_key,
|
|
34
|
+
:environment => Airbrake.configuration.environment_name,
|
|
35
|
+
:action_name => action_name,
|
|
36
|
+
:controller_name => controller_name,
|
|
37
|
+
:url => request.url
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_airbrake_render_part path, options
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
protected
|
|
45
|
+
attr_reader :template
|
|
46
|
+
|
|
47
|
+
def _airbrake_render_part(path, locals={})
|
|
48
|
+
locals[:host] = _airbrake_host
|
|
49
|
+
|
|
50
|
+
options = {
|
|
51
|
+
:file => path,
|
|
52
|
+
:layout => false,
|
|
53
|
+
:use_full_path => false,
|
|
54
|
+
:handlers => [:erb],
|
|
55
|
+
:locals => locals
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
result = _airbrake_render_template options
|
|
59
|
+
|
|
60
|
+
if result.respond_to?(:html_safe)
|
|
61
|
+
result.html_safe
|
|
62
|
+
else
|
|
63
|
+
result
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def _airbrake_render_template(options)
|
|
68
|
+
case template
|
|
69
|
+
when ActionView::Template
|
|
70
|
+
template.render options
|
|
71
|
+
else
|
|
72
|
+
render_to_string options
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def _airbrake_host
|
|
77
|
+
host = Airbrake.configuration.host.dup
|
|
78
|
+
port = Airbrake.configuration.port
|
|
79
|
+
host << ":#{port}" unless [80, 443].include?(port)
|
|
80
|
+
|
|
81
|
+
host
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
data/lib/airbrake/railtie.rb
CHANGED
|
@@ -41,6 +41,12 @@ module Airbrake
|
|
|
41
41
|
|
|
42
42
|
include Airbrake::Rails::ControllerMethods
|
|
43
43
|
end
|
|
44
|
+
|
|
45
|
+
if defined?(::ActionController::Base)
|
|
46
|
+
require 'airbrake/rails/javascript_notifier'
|
|
47
|
+
|
|
48
|
+
::ActionController::Base.send(:include, Airbrake::Rails::JavascriptNotifier)
|
|
49
|
+
end
|
|
44
50
|
end
|
|
45
51
|
end
|
|
46
52
|
end
|
data/lib/airbrake/version.rb
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<%= javascript_tag %Q{
|
|
2
|
+
try {
|
|
3
|
+
window.Airbrake = (typeof(Airbrake) == 'undefined' && typeof(Hoptoad) != 'undefined') ? Hoptoad : Airbrake
|
|
4
|
+
Airbrake.setKey('#{api_key}');
|
|
5
|
+
Airbrake.setHost('#{host}');
|
|
6
|
+
Airbrake.setEnvironment('#{environment}');
|
|
7
|
+
Airbrake.setErrorDefaults({ url: "#{escape_javascript url}", component: "#{controller_name}", action: "#{action_name}" });
|
|
8
|
+
} catch (e) {
|
|
9
|
+
window.onerror = null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
%>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<%= javascript_tag %Q{
|
|
2
|
+
(function(){
|
|
3
|
+
var notifierJsScheme = (("https:" == document.location.protocol) ? "https://" : "http://");
|
|
4
|
+
document.write(unescape("%3Cscript src='" + notifierJsScheme + "#{host}/javascripts/notifier.js' type='text/javascript'%3E%3C/script%3E"));
|
|
5
|
+
})();
|
|
6
|
+
}%>
|
data/test/configuration_test.rb
CHANGED
|
@@ -127,6 +127,14 @@ class ConfigurationTest < Test::Unit::TestCase
|
|
|
127
127
|
assert_appends_value :rake_environment_filters
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
+
should "warn when attempting to write js_notifier" do
|
|
131
|
+
config = Airbrake::Configuration.new
|
|
132
|
+
config.
|
|
133
|
+
expects(:warn).
|
|
134
|
+
with(regexp_matches(/deprecated/i))
|
|
135
|
+
config.js_notifier = true
|
|
136
|
+
end
|
|
137
|
+
|
|
130
138
|
should "allow ignored user agents to be appended" do
|
|
131
139
|
assert_appends_value :ignore_user_agent
|
|
132
140
|
end
|
data/test/integration.rb
CHANGED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require 'airbrake/rails/javascript_notifier'
|
|
2
|
+
require 'ostruct'
|
|
3
|
+
|
|
4
|
+
class JavascriptNotifierTest < Test::Unit::TestCase
|
|
5
|
+
module FakeRenderer
|
|
6
|
+
def javascript_tag(text)
|
|
7
|
+
"<script>#{text}</script>"
|
|
8
|
+
end
|
|
9
|
+
def escape_javascript(text)
|
|
10
|
+
"ESC#{text}ESC"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class FakeController
|
|
15
|
+
def self.helper_method(*args)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
include Airbrake::Rails::JavascriptNotifier
|
|
19
|
+
|
|
20
|
+
def action_name
|
|
21
|
+
"action"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def controller_name
|
|
25
|
+
"controller"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def request
|
|
29
|
+
@request ||= OpenStruct.new
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def render_to_string(options)
|
|
33
|
+
context = OpenStruct.new(options[:locals])
|
|
34
|
+
context.extend(FakeRenderer)
|
|
35
|
+
context.instance_eval do
|
|
36
|
+
erb = ERB.new(IO.read(options[:file]))
|
|
37
|
+
erb.result(binding)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
should "make sure escape_javacript is called on the request.url" do
|
|
43
|
+
Airbrake.configure do
|
|
44
|
+
end
|
|
45
|
+
controller = FakeController.new
|
|
46
|
+
controller.request.url = "bad_javascript"
|
|
47
|
+
assert controller.send(:airbrake_javascript_notifier)['"ESCbad_javascriptESC"']
|
|
48
|
+
assert ! controller.send(:airbrake_javascript_notifier)['"bad_javascript"']
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
should "not raise exceptions for the non-public requests" do
|
|
52
|
+
Airbrake::Configuration.any_instance.stubs(:public? => false)
|
|
53
|
+
controller = FakeController.new
|
|
54
|
+
assert_nothing_raised { controller.send(:airbrake_javascript_notifier) }
|
|
55
|
+
end
|
|
56
|
+
end
|
metadata
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: airbrake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.2.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 3.2.1
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Airbrake
|
|
@@ -14,39 +13,34 @@ dependencies:
|
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: builder
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- -
|
|
24
|
+
- - '>='
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
26
|
version: '0'
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: multi_json
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
|
-
- -
|
|
31
|
+
- - '>='
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
37
33
|
version: '0'
|
|
38
34
|
type: :runtime
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
|
-
- -
|
|
38
|
+
- - '>='
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
45
40
|
version: '0'
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: bourne
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ~>
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
@@ -54,7 +48,6 @@ dependencies:
|
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ~>
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
@@ -62,7 +55,6 @@ dependencies:
|
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: cucumber-rails
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
59
|
- - ~>
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
@@ -70,7 +62,6 @@ dependencies:
|
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
66
|
- - ~>
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
@@ -78,7 +69,6 @@ dependencies:
|
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
|
79
70
|
name: fakeweb
|
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
72
|
requirements:
|
|
83
73
|
- - ~>
|
|
84
74
|
- !ruby/object:Gem::Version
|
|
@@ -86,7 +76,6 @@ dependencies:
|
|
|
86
76
|
type: :development
|
|
87
77
|
prerelease: false
|
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
79
|
requirements:
|
|
91
80
|
- - ~>
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
@@ -94,7 +83,6 @@ dependencies:
|
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
|
95
84
|
name: nokogiri
|
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
86
|
requirements:
|
|
99
87
|
- - ~>
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
@@ -102,7 +90,6 @@ dependencies:
|
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
93
|
requirements:
|
|
107
94
|
- - ~>
|
|
108
95
|
- !ruby/object:Gem::Version
|
|
@@ -110,7 +97,6 @@ dependencies:
|
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
98
|
name: rspec
|
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
100
|
requirements:
|
|
115
101
|
- - ~>
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
@@ -118,7 +104,6 @@ dependencies:
|
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
107
|
requirements:
|
|
123
108
|
- - ~>
|
|
124
109
|
- !ruby/object:Gem::Version
|
|
@@ -126,7 +111,6 @@ dependencies:
|
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
|
127
112
|
name: sham_rack
|
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
114
|
requirements:
|
|
131
115
|
- - ~>
|
|
132
116
|
- !ruby/object:Gem::Version
|
|
@@ -134,7 +118,6 @@ dependencies:
|
|
|
134
118
|
type: :development
|
|
135
119
|
prerelease: false
|
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
121
|
requirements:
|
|
139
122
|
- - ~>
|
|
140
123
|
- !ruby/object:Gem::Version
|
|
@@ -142,7 +125,6 @@ dependencies:
|
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
|
143
126
|
name: json-schema
|
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
128
|
requirements:
|
|
147
129
|
- - ~>
|
|
148
130
|
- !ruby/object:Gem::Version
|
|
@@ -150,7 +132,6 @@ dependencies:
|
|
|
150
132
|
type: :development
|
|
151
133
|
prerelease: false
|
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
135
|
requirements:
|
|
155
136
|
- - ~>
|
|
156
137
|
- !ruby/object:Gem::Version
|
|
@@ -158,7 +139,6 @@ dependencies:
|
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
|
159
140
|
name: capistrano
|
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
142
|
requirements:
|
|
163
143
|
- - ~>
|
|
164
144
|
- !ruby/object:Gem::Version
|
|
@@ -166,7 +146,6 @@ dependencies:
|
|
|
166
146
|
type: :development
|
|
167
147
|
prerelease: false
|
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
149
|
requirements:
|
|
171
150
|
- - ~>
|
|
172
151
|
- !ruby/object:Gem::Version
|
|
@@ -174,71 +153,62 @@ dependencies:
|
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
|
175
154
|
name: aruba
|
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
156
|
requirements:
|
|
179
|
-
- -
|
|
157
|
+
- - '>='
|
|
180
158
|
- !ruby/object:Gem::Version
|
|
181
159
|
version: '0'
|
|
182
160
|
type: :development
|
|
183
161
|
prerelease: false
|
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
163
|
requirements:
|
|
187
|
-
- -
|
|
164
|
+
- - '>='
|
|
188
165
|
- !ruby/object:Gem::Version
|
|
189
166
|
version: '0'
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
|
191
168
|
name: appraisal
|
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
|
193
|
-
none: false
|
|
194
170
|
requirements:
|
|
195
|
-
- -
|
|
171
|
+
- - '>='
|
|
196
172
|
- !ruby/object:Gem::Version
|
|
197
173
|
version: '0'
|
|
198
174
|
type: :development
|
|
199
175
|
prerelease: false
|
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
201
|
-
none: false
|
|
202
177
|
requirements:
|
|
203
|
-
- -
|
|
178
|
+
- - '>='
|
|
204
179
|
- !ruby/object:Gem::Version
|
|
205
180
|
version: '0'
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
|
207
182
|
name: rspec-rails
|
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
|
209
|
-
none: false
|
|
210
184
|
requirements:
|
|
211
|
-
- -
|
|
185
|
+
- - '>='
|
|
212
186
|
- !ruby/object:Gem::Version
|
|
213
187
|
version: '0'
|
|
214
188
|
type: :development
|
|
215
189
|
prerelease: false
|
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
217
|
-
none: false
|
|
218
191
|
requirements:
|
|
219
|
-
- -
|
|
192
|
+
- - '>='
|
|
220
193
|
- !ruby/object:Gem::Version
|
|
221
194
|
version: '0'
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
|
223
196
|
name: girl_friday
|
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
|
225
|
-
none: false
|
|
226
198
|
requirements:
|
|
227
|
-
- -
|
|
199
|
+
- - '>='
|
|
228
200
|
- !ruby/object:Gem::Version
|
|
229
201
|
version: '0'
|
|
230
202
|
type: :development
|
|
231
203
|
prerelease: false
|
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
-
none: false
|
|
234
205
|
requirements:
|
|
235
|
-
- -
|
|
206
|
+
- - '>='
|
|
236
207
|
- !ruby/object:Gem::Version
|
|
237
208
|
version: '0'
|
|
238
209
|
- !ruby/object:Gem::Dependency
|
|
239
210
|
name: sucker_punch
|
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
|
241
|
-
none: false
|
|
242
212
|
requirements:
|
|
243
213
|
- - '='
|
|
244
214
|
- !ruby/object:Gem::Version
|
|
@@ -246,7 +216,6 @@ dependencies:
|
|
|
246
216
|
type: :development
|
|
247
217
|
prerelease: false
|
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
|
-
none: false
|
|
250
219
|
requirements:
|
|
251
220
|
- - '='
|
|
252
221
|
- !ruby/object:Gem::Version
|
|
@@ -254,71 +223,62 @@ dependencies:
|
|
|
254
223
|
- !ruby/object:Gem::Dependency
|
|
255
224
|
name: shoulda-matchers
|
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
|
257
|
-
none: false
|
|
258
226
|
requirements:
|
|
259
|
-
- -
|
|
227
|
+
- - '>='
|
|
260
228
|
- !ruby/object:Gem::Version
|
|
261
229
|
version: '0'
|
|
262
230
|
type: :development
|
|
263
231
|
prerelease: false
|
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
265
|
-
none: false
|
|
266
233
|
requirements:
|
|
267
|
-
- -
|
|
234
|
+
- - '>='
|
|
268
235
|
- !ruby/object:Gem::Version
|
|
269
236
|
version: '0'
|
|
270
237
|
- !ruby/object:Gem::Dependency
|
|
271
238
|
name: shoulda-context
|
|
272
239
|
requirement: !ruby/object:Gem::Requirement
|
|
273
|
-
none: false
|
|
274
240
|
requirements:
|
|
275
|
-
- -
|
|
241
|
+
- - '>='
|
|
276
242
|
- !ruby/object:Gem::Version
|
|
277
243
|
version: '0'
|
|
278
244
|
type: :development
|
|
279
245
|
prerelease: false
|
|
280
246
|
version_requirements: !ruby/object:Gem::Requirement
|
|
281
|
-
none: false
|
|
282
247
|
requirements:
|
|
283
|
-
- -
|
|
248
|
+
- - '>='
|
|
284
249
|
- !ruby/object:Gem::Version
|
|
285
250
|
version: '0'
|
|
286
251
|
- !ruby/object:Gem::Dependency
|
|
287
252
|
name: pry
|
|
288
253
|
requirement: !ruby/object:Gem::Requirement
|
|
289
|
-
none: false
|
|
290
254
|
requirements:
|
|
291
|
-
- -
|
|
255
|
+
- - '>='
|
|
292
256
|
- !ruby/object:Gem::Version
|
|
293
257
|
version: '0'
|
|
294
258
|
type: :development
|
|
295
259
|
prerelease: false
|
|
296
260
|
version_requirements: !ruby/object:Gem::Requirement
|
|
297
|
-
none: false
|
|
298
261
|
requirements:
|
|
299
|
-
- -
|
|
262
|
+
- - '>='
|
|
300
263
|
- !ruby/object:Gem::Version
|
|
301
264
|
version: '0'
|
|
302
265
|
- !ruby/object:Gem::Dependency
|
|
303
266
|
name: coveralls
|
|
304
267
|
requirement: !ruby/object:Gem::Requirement
|
|
305
|
-
none: false
|
|
306
268
|
requirements:
|
|
307
|
-
- -
|
|
269
|
+
- - '>='
|
|
308
270
|
- !ruby/object:Gem::Version
|
|
309
271
|
version: '0'
|
|
310
272
|
type: :development
|
|
311
273
|
prerelease: false
|
|
312
274
|
version_requirements: !ruby/object:Gem::Requirement
|
|
313
|
-
none: false
|
|
314
275
|
requirements:
|
|
315
|
-
- -
|
|
276
|
+
- - '>='
|
|
316
277
|
- !ruby/object:Gem::Version
|
|
317
278
|
version: '0'
|
|
318
279
|
- !ruby/object:Gem::Dependency
|
|
319
280
|
name: minitest
|
|
320
281
|
requirement: !ruby/object:Gem::Requirement
|
|
321
|
-
none: false
|
|
322
282
|
requirements:
|
|
323
283
|
- - ~>
|
|
324
284
|
- !ruby/object:Gem::Version
|
|
@@ -326,7 +286,6 @@ dependencies:
|
|
|
326
286
|
type: :development
|
|
327
287
|
prerelease: false
|
|
328
288
|
version_requirements: !ruby/object:Gem::Requirement
|
|
329
|
-
none: false
|
|
330
289
|
requirements:
|
|
331
290
|
- - ~>
|
|
332
291
|
- !ruby/object:Gem::Version
|
|
@@ -338,12 +297,42 @@ executables:
|
|
|
338
297
|
extensions: []
|
|
339
298
|
extra_rdoc_files: []
|
|
340
299
|
files:
|
|
300
|
+
- CHANGELOG
|
|
301
|
+
- Gemfile
|
|
302
|
+
- Guardfile
|
|
303
|
+
- INSTALL
|
|
304
|
+
- LICENSE
|
|
305
|
+
- README.md
|
|
306
|
+
- README_FOR_HEROKU_ADDON.md
|
|
307
|
+
- Rakefile
|
|
308
|
+
- TESTED_AGAINST
|
|
309
|
+
- airbrake.gemspec
|
|
310
|
+
- bin/airbrake
|
|
311
|
+
- features/metal.feature
|
|
312
|
+
- features/rack.feature
|
|
313
|
+
- features/rails.feature
|
|
314
|
+
- features/rails_with_js_notifier.feature
|
|
315
|
+
- features/rake.feature
|
|
316
|
+
- features/sinatra.feature
|
|
317
|
+
- features/step_definitions/file_steps.rb
|
|
318
|
+
- features/step_definitions/rack_steps.rb
|
|
319
|
+
- features/step_definitions/rails_application_steps.rb
|
|
320
|
+
- features/step_definitions/rake_steps.rb
|
|
321
|
+
- features/support/airbrake_shim.rb.template
|
|
322
|
+
- features/support/aruba.rb
|
|
323
|
+
- features/support/env.rb
|
|
324
|
+
- features/support/matchers.rb
|
|
325
|
+
- features/support/rails.rb
|
|
326
|
+
- features/support/rake/Rakefile
|
|
327
|
+
- features/user_informer.feature
|
|
341
328
|
- generators/airbrake/airbrake_generator.rb
|
|
342
329
|
- generators/airbrake/lib/insert_commands.rb
|
|
343
330
|
- generators/airbrake/lib/rake_commands.rb
|
|
344
331
|
- generators/airbrake/templates/airbrake_tasks.rake
|
|
345
332
|
- generators/airbrake/templates/capistrano_hook.rb
|
|
346
333
|
- generators/airbrake/templates/initializer.rb
|
|
334
|
+
- install.rb
|
|
335
|
+
- lib/airbrake.rb
|
|
347
336
|
- lib/airbrake/backtrace.rb
|
|
348
337
|
- lib/airbrake/capistrano.rb
|
|
349
338
|
- lib/airbrake/capistrano3.rb
|
|
@@ -358,11 +347,12 @@ files:
|
|
|
358
347
|
- lib/airbrake/jobs/send_job.rb
|
|
359
348
|
- lib/airbrake/notice.rb
|
|
360
349
|
- lib/airbrake/rack.rb
|
|
350
|
+
- lib/airbrake/rails.rb
|
|
361
351
|
- lib/airbrake/rails/action_controller_catcher.rb
|
|
362
352
|
- lib/airbrake/rails/controller_methods.rb
|
|
363
353
|
- lib/airbrake/rails/error_lookup.rb
|
|
354
|
+
- lib/airbrake/rails/javascript_notifier.rb
|
|
364
355
|
- lib/airbrake/rails/middleware.rb
|
|
365
|
-
- lib/airbrake/rails.rb
|
|
366
356
|
- lib/airbrake/rails3_tasks.rb
|
|
367
357
|
- lib/airbrake/railtie.rb
|
|
368
358
|
- lib/airbrake/rake_handler.rb
|
|
@@ -370,41 +360,32 @@ files:
|
|
|
370
360
|
- lib/airbrake/sender.rb
|
|
371
361
|
- lib/airbrake/shared_tasks.rb
|
|
372
362
|
- lib/airbrake/sinatra.rb
|
|
373
|
-
- lib/airbrake/tasks/airbrake.cap
|
|
374
363
|
- lib/airbrake/tasks.rb
|
|
364
|
+
- lib/airbrake/tasks/airbrake.cap
|
|
375
365
|
- lib/airbrake/user_informer.rb
|
|
376
366
|
- lib/airbrake/utils/params_cleaner.rb
|
|
377
367
|
- lib/airbrake/utils/rack_filters.rb
|
|
378
368
|
- lib/airbrake/version.rb
|
|
379
|
-
- lib/airbrake.rb
|
|
380
369
|
- lib/airbrake_tasks.rb
|
|
381
370
|
- lib/rails/generators/airbrake/airbrake_generator.rb
|
|
371
|
+
- lib/templates/javascript_notifier_configuration
|
|
372
|
+
- lib/templates/javascript_notifier_loader
|
|
382
373
|
- lib/templates/rescue.erb
|
|
383
374
|
- rails/init.rb
|
|
375
|
+
- resources/README.md
|
|
384
376
|
- resources/airbrake_3_0.json
|
|
385
377
|
- resources/ca-bundle.crt
|
|
386
378
|
- resources/notice.xml
|
|
387
|
-
- resources/README.md
|
|
388
379
|
- script/integration_test.rb
|
|
389
|
-
- airbrake.gemspec
|
|
390
|
-
- CHANGELOG
|
|
391
|
-
- Gemfile
|
|
392
|
-
- Guardfile
|
|
393
|
-
- INSTALL
|
|
394
|
-
- LICENSE
|
|
395
|
-
- Rakefile
|
|
396
|
-
- README_FOR_HEROKU_ADDON.md
|
|
397
|
-
- README.md
|
|
398
|
-
- TESTED_AGAINST
|
|
399
|
-
- install.rb
|
|
400
380
|
- test/airbrake_tasks_test.rb
|
|
401
381
|
- test/backtrace_test.rb
|
|
402
382
|
- test/capistrano_test.rb
|
|
403
383
|
- test/configuration_test.rb
|
|
404
384
|
- test/controller_methods_test.rb
|
|
405
385
|
- test/helper.rb
|
|
406
|
-
- test/integration/catcher_test.rb
|
|
407
386
|
- test/integration.rb
|
|
387
|
+
- test/integration/catcher_test.rb
|
|
388
|
+
- test/integration/javascript_notifier_test.rb
|
|
408
389
|
- test/logger_test.rb
|
|
409
390
|
- test/notice_test.rb
|
|
410
391
|
- test/notifier_test.rb
|
|
@@ -416,46 +397,28 @@ files:
|
|
|
416
397
|
- test/sender_test.rb
|
|
417
398
|
- test/support/response_shim.xml
|
|
418
399
|
- test/user_informer_test.rb
|
|
419
|
-
- features/metal.feature
|
|
420
|
-
- features/rack.feature
|
|
421
|
-
- features/rails.feature
|
|
422
|
-
- features/rake.feature
|
|
423
|
-
- features/sinatra.feature
|
|
424
|
-
- features/step_definitions/file_steps.rb
|
|
425
|
-
- features/step_definitions/rack_steps.rb
|
|
426
|
-
- features/step_definitions/rails_application_steps.rb
|
|
427
|
-
- features/step_definitions/rake_steps.rb
|
|
428
|
-
- features/support/airbrake_shim.rb.template
|
|
429
|
-
- features/support/aruba.rb
|
|
430
|
-
- features/support/env.rb
|
|
431
|
-
- features/support/matchers.rb
|
|
432
|
-
- features/support/rails.rb
|
|
433
|
-
- features/support/rake/Rakefile
|
|
434
|
-
- features/user_informer.feature
|
|
435
|
-
- bin/airbrake
|
|
436
400
|
homepage: http://www.airbrake.io
|
|
437
401
|
licenses: []
|
|
402
|
+
metadata: {}
|
|
438
403
|
post_install_message:
|
|
439
404
|
rdoc_options: []
|
|
440
405
|
require_paths:
|
|
441
406
|
- lib
|
|
442
407
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
443
|
-
none: false
|
|
444
408
|
requirements:
|
|
445
|
-
- -
|
|
409
|
+
- - '>='
|
|
446
410
|
- !ruby/object:Gem::Version
|
|
447
411
|
version: '0'
|
|
448
412
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
449
|
-
none: false
|
|
450
413
|
requirements:
|
|
451
|
-
- -
|
|
414
|
+
- - '>='
|
|
452
415
|
- !ruby/object:Gem::Version
|
|
453
416
|
version: '0'
|
|
454
417
|
requirements: []
|
|
455
418
|
rubyforge_project:
|
|
456
|
-
rubygems_version:
|
|
419
|
+
rubygems_version: 2.2.0
|
|
457
420
|
signing_key:
|
|
458
|
-
specification_version:
|
|
421
|
+
specification_version: 4
|
|
459
422
|
summary: Send your application errors to our hosted service and reclaim your inbox.
|
|
460
423
|
test_files:
|
|
461
424
|
- test/airbrake_tasks_test.rb
|
|
@@ -465,6 +428,7 @@ test_files:
|
|
|
465
428
|
- test/controller_methods_test.rb
|
|
466
429
|
- test/helper.rb
|
|
467
430
|
- test/integration/catcher_test.rb
|
|
431
|
+
- test/integration/javascript_notifier_test.rb
|
|
468
432
|
- test/integration.rb
|
|
469
433
|
- test/logger_test.rb
|
|
470
434
|
- test/notice_test.rb
|
|
@@ -480,6 +444,7 @@ test_files:
|
|
|
480
444
|
- features/metal.feature
|
|
481
445
|
- features/rack.feature
|
|
482
446
|
- features/rails.feature
|
|
447
|
+
- features/rails_with_js_notifier.feature
|
|
483
448
|
- features/rake.feature
|
|
484
449
|
- features/sinatra.feature
|
|
485
450
|
- features/step_definitions/file_steps.rb
|
|
@@ -493,4 +458,3 @@ test_files:
|
|
|
493
458
|
- features/support/rails.rb
|
|
494
459
|
- features/support/rake/Rakefile
|
|
495
460
|
- features/user_informer.feature
|
|
496
|
-
has_rdoc:
|