airbrake 3.2.1 → 4.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0cb7869b6211b8a5c7157ae331b8ef74a08a8517
4
- data.tar.gz: d0ca30c369481d71ab97470a4f59936a5cd3ea98
3
+ metadata.gz: 72e1f83cf5342499992360dfde17b8f6bf0561b0
4
+ data.tar.gz: f9ef7c0e8b84e83ce225242db2ac6f344664fe94
5
5
  SHA512:
6
- metadata.gz: 5dd5a7333f1ac94524d0fdf3a11c913a64bc240a61342d6de1109231fb9fc57df82e406f886ca894f190a357a2dabc955390ed429fc5aa5811663cff8116433b
7
- data.tar.gz: 1a032859b51b4b957989239f52b8be83272a1fa38ba566bc55ff5e9d797c03e1ec9199d3755e901f53339db89db070b7c92e660f28cb1a9222ab256a564b0e97
6
+ metadata.gz: 0ce49cf00de6f908dc39b76061926de33500147cb3ac2e91766ed05f22a347c0dcad9704b0bf2535a745b01da96e39d4202dfee8ad46719b9f35e1c5901f64b4
7
+ data.tar.gz: a6cf1b8bf91759e3e5cfdd6cbc5d752720428f48465d87980522c3cab288b6115613b271a8521ba483a646836e98aa69bd86db03102d2dfdaac6dea8f8a13ea3
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ Version 4.0.0 - 2014-05-27 16:32:26 -0700
2
+ ===============================================================================
3
+
4
+ Ali Faiz (2):
5
+ Remove the Airbrake JS notifier for the major release.
6
+
7
+
1
8
  Version 3.2.1 - 2014-05-27 15:58:24 -0700
2
9
  ===============================================================================
3
10
 
@@ -1377,5 +1384,6 @@ Nick Quaranto (3):
1377
1384
 
1378
1385
 
1379
1386
 
1387
+
1380
1388
 
1381
1389
 
data/Rakefile CHANGED
@@ -69,6 +69,10 @@ namespace :changeling do
69
69
  end
70
70
 
71
71
  case args[:part]
72
+ when /major/
73
+ major += 1
74
+ minor = 0
75
+ patch = 0
72
76
  when /minor/
73
77
  minor += 1
74
78
  patch = 0
@@ -114,6 +118,12 @@ EOF
114
118
  "echo '\n\n\033[32mMarked v#{version} /' `git show-ref -s refs/heads/master` 'for release. Run: rake changeling:push\033[0m\n\n'"].join(' && ')
115
119
  end
116
120
 
121
+ desc "Bump by a major version (1.2.3 => 2.0.0)"
122
+ task :major do |t|
123
+ Rake::Task['changeling:bump'].invoke(t.name)
124
+ Rake::Task['changeling:change'].invoke
125
+ end
126
+
117
127
  desc "Bump by a minor version (1.2.3 => 1.3.0)"
118
128
  task :minor do |t|
119
129
  Rake::Task['changeling:bump'].invoke(t.name)
@@ -158,7 +168,7 @@ def cucumber_opts
158
168
 
159
169
  case ENV["BUNDLE_GEMFILE"]
160
170
  when /rails/
161
- opts << "features/rails.feature features/rails_with_js_notifier.feature features/metal.feature features/user_informer.feature"
171
+ opts << "features/rails.feature features/metal.feature features/user_informer.feature"
162
172
  when /rack/
163
173
  opts << "features/rack.feature"
164
174
  when /sinatra/
@@ -192,32 +192,6 @@ 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
-
221
195
  When /^I have set up authentication system in my app that uses "([^\"]*)"$/ do |current_user|
222
196
  application_controller = File.join(rails_root, 'app', 'controllers', "application_controller.rb")
223
197
  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, :js_api_key, :backtrace_filters, :development_environments,
5
+ OPTIONS = [: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,12 +14,6 @@ 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
-
23
17
  # The host to connect to (defaults to airbrake.io).
24
18
  attr_accessor :host
25
19
 
@@ -158,7 +152,6 @@ module Airbrake
158
152
  alias_method :use_system_ssl_cert_chain?, :use_system_ssl_cert_chain
159
153
 
160
154
  def initialize
161
- @js_api_key = nil
162
155
  @secure = false
163
156
  @use_system_ssl_cert_chain= false
164
157
  @host = 'api.airbrake.io'
@@ -311,14 +304,6 @@ module Airbrake
311
304
  @rescue_rake_exceptions = val
312
305
  end
313
306
 
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
-
322
307
  def ca_bundle_path
323
308
  if use_system_ssl_cert_chain? && File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE)
324
309
  OpenSSL::X509::DEFAULT_CERT_FILE
@@ -2,7 +2,6 @@ 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'
6
5
 
7
6
  module Airbrake
8
7
  module Rails
@@ -11,7 +10,6 @@ module Airbrake
11
10
  ActionController::Base.send(:include, Airbrake::Rails::ActionControllerCatcher)
12
11
  ActionController::Base.send(:include, Airbrake::Rails::ErrorLookup)
13
12
  ActionController::Base.send(:include, Airbrake::Rails::ControllerMethods)
14
- ActionController::Base.send(:include, Airbrake::Rails::JavascriptNotifier)
15
13
  end
16
14
 
17
15
  rails_logger = if defined?(::Rails.logger)
@@ -41,12 +41,6 @@ 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
50
44
  end
51
45
  end
52
46
  end
@@ -1,3 +1,3 @@
1
1
  module Airbrake
2
- VERSION = "3.2.1".freeze
2
+ VERSION = "4.0.0".freeze
3
3
  end
@@ -127,14 +127,6 @@ 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
-
138
130
  should "allow ignored user agents to be appended" do
139
131
  assert_appends_value :ignore_user_agent
140
132
  end
@@ -11,5 +11,4 @@ silence_warnings do
11
11
  require "action_view"
12
12
  end
13
13
 
14
- require File.expand_path "../integration/javascript_notifier_test", __FILE__
15
14
  require File.expand_path "../integration/catcher_test", __FILE__
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airbrake
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Airbrake
@@ -311,7 +311,6 @@ files:
311
311
  - features/metal.feature
312
312
  - features/rack.feature
313
313
  - features/rails.feature
314
- - features/rails_with_js_notifier.feature
315
314
  - features/rake.feature
316
315
  - features/sinatra.feature
317
316
  - features/step_definitions/file_steps.rb
@@ -351,7 +350,6 @@ files:
351
350
  - lib/airbrake/rails/action_controller_catcher.rb
352
351
  - lib/airbrake/rails/controller_methods.rb
353
352
  - lib/airbrake/rails/error_lookup.rb
354
- - lib/airbrake/rails/javascript_notifier.rb
355
353
  - lib/airbrake/rails/middleware.rb
356
354
  - lib/airbrake/rails3_tasks.rb
357
355
  - lib/airbrake/railtie.rb
@@ -368,8 +366,6 @@ files:
368
366
  - lib/airbrake/version.rb
369
367
  - lib/airbrake_tasks.rb
370
368
  - lib/rails/generators/airbrake/airbrake_generator.rb
371
- - lib/templates/javascript_notifier_configuration
372
- - lib/templates/javascript_notifier_loader
373
369
  - lib/templates/rescue.erb
374
370
  - rails/init.rb
375
371
  - resources/README.md
@@ -385,7 +381,6 @@ files:
385
381
  - test/helper.rb
386
382
  - test/integration.rb
387
383
  - test/integration/catcher_test.rb
388
- - test/integration/javascript_notifier_test.rb
389
384
  - test/logger_test.rb
390
385
  - test/notice_test.rb
391
386
  - test/notifier_test.rb
@@ -428,7 +423,6 @@ test_files:
428
423
  - test/controller_methods_test.rb
429
424
  - test/helper.rb
430
425
  - test/integration/catcher_test.rb
431
- - test/integration/javascript_notifier_test.rb
432
426
  - test/integration.rb
433
427
  - test/logger_test.rb
434
428
  - test/notice_test.rb
@@ -444,7 +438,6 @@ test_files:
444
438
  - features/metal.feature
445
439
  - features/rack.feature
446
440
  - features/rails.feature
447
- - features/rails_with_js_notifier.feature
448
441
  - features/rake.feature
449
442
  - features/sinatra.feature
450
443
  - features/step_definitions/file_steps.rb
@@ -1,104 +0,0 @@
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 |
@@ -1,85 +0,0 @@
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
@@ -1,12 +0,0 @@
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
- %>
@@ -1,6 +0,0 @@
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
- }%>
@@ -1,56 +0,0 @@
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