hoptoad_notifier 2.2.2 → 2.2.5
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.
- data/CHANGELOG +66 -0
- data/README.rdoc +30 -4
- data/Rakefile +2 -2
- data/SUPPORTED_RAILS_VERSIONS +1 -0
- data/generators/hoptoad/hoptoad_generator.rb +2 -2
- data/generators/hoptoad/templates/hoptoad_notifier_tasks.rake +14 -1
- data/generators/hoptoad/templates/initializer.rb +1 -1
- data/lib/hoptoad_notifier.rb +2 -0
- data/lib/hoptoad_notifier/notice.rb +20 -7
- data/lib/hoptoad_notifier/rails/controller_methods.rb +1 -2
- data/lib/hoptoad_notifier/rails3_tasks.rb +90 -0
- data/lib/hoptoad_notifier/railtie.rb +23 -0
- data/lib/hoptoad_notifier/version.rb +1 -1
- data/lib/rails/generators/hoptoad/hoptoad_generator.rb +64 -0
- data/test/notice_test.rb +29 -3
- metadata +6 -3
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,66 @@
|
|
|
1
|
+
Version 2.2.5 - 2010-06-02
|
|
2
|
+
===============================================================================
|
|
3
|
+
|
|
4
|
+
Jason Morrison (1):
|
|
5
|
+
Add documentation for Rails 3.x installation
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Version 2.2.4 - 2010-06-02
|
|
9
|
+
===============================================================================
|
|
10
|
+
|
|
11
|
+
Jason Morrison (1):
|
|
12
|
+
Add a note to README about removing the explicit Catcher #include in ApplicationController
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Version 2.2.3 - 2010-06-02
|
|
16
|
+
===============================================================================
|
|
17
|
+
|
|
18
|
+
Summary: Fixed a variety of issues for Rails 3.0.0.beta3,
|
|
19
|
+
Fixed a bug when using Vlad to deploy instead of Capistrano
|
|
20
|
+
Give better error output when gem is not installed
|
|
21
|
+
|
|
22
|
+
Chad Pytel (2):
|
|
23
|
+
revise gem unpack instructions step
|
|
24
|
+
Merge branch 'master' of github.com:thoughtbot/hoptoad_notifier
|
|
25
|
+
|
|
26
|
+
Dan Lawless (1):
|
|
27
|
+
don't append capistrano details to config.deploy.rb when target app uses Vlad
|
|
28
|
+
|
|
29
|
+
Jason Morrison (7):
|
|
30
|
+
LH-556 Clarify sending ENV environment variables
|
|
31
|
+
Starting to add features for Rails 3
|
|
32
|
+
Make rails rake tasks depend on gem-making tasks
|
|
33
|
+
Start to get Rails 3 features to pass
|
|
34
|
+
require fileutils to reflect rubygems 1.3.6 change
|
|
35
|
+
Support ENV['CUCUMBER_FORMAT'] in rails cucumber tasks for testing
|
|
36
|
+
Fix the initializer syntax in the Rails 3 Railtie
|
|
37
|
+
|
|
38
|
+
Joe Ferris (11):
|
|
39
|
+
Got the generator running and a request dispatched to the test endpoint
|
|
40
|
+
Fixed logging in hoptoad:test rake task
|
|
41
|
+
Separated Rails 2 and 3 entry
|
|
42
|
+
Support bundler
|
|
43
|
+
Rails 3 generator works with an existing api key
|
|
44
|
+
Extract request info from rack env
|
|
45
|
+
Detect presence of the plugin
|
|
46
|
+
Added a capistrano hook for Rails 3
|
|
47
|
+
Fixed rack/sinatra being broken without active_support
|
|
48
|
+
Fixes for earlier versions of Rails
|
|
49
|
+
Fixed Rails 3 generator not to append cap hooks for vlad deploys
|
|
50
|
+
|
|
51
|
+
Josh Kalderimis (7):
|
|
52
|
+
updated railtie to work with the new rails 3 middleware api
|
|
53
|
+
railtie_name is deprecated
|
|
54
|
+
updated app_middleware call to use string version as to make sure constant is loaded
|
|
55
|
+
moved generator using the new rails 3 convention
|
|
56
|
+
update path to template for Rails 3 generator
|
|
57
|
+
correction to referencing of the rails application in rails3_tasks
|
|
58
|
+
add environment_name and project_root back to rails 3 railtie
|
|
59
|
+
|
|
60
|
+
Joshua Nichols (1):
|
|
61
|
+
Handle gem not being installed more gracefully.
|
|
62
|
+
|
|
63
|
+
|
|
1
64
|
Version 2.2.2 - 2010-03-10
|
|
2
65
|
===============================================================================
|
|
3
66
|
|
|
@@ -73,3 +136,6 @@ Nick Quaranto (3):
|
|
|
73
136
|
|
|
74
137
|
|
|
75
138
|
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
data/README.rdoc
CHANGED
|
@@ -28,6 +28,19 @@ Remove the vendor/plugins/hoptoad_notifier directory before installing the gem,
|
|
|
28
28
|
|
|
29
29
|
script/plugin remove hoptoad_notifier
|
|
30
30
|
|
|
31
|
+
=== Rails 3.x
|
|
32
|
+
|
|
33
|
+
Add the hoptoad_notifier gem to your Gemfile. In Gemfile:
|
|
34
|
+
|
|
35
|
+
gem 'hoptoad_notifier'
|
|
36
|
+
|
|
37
|
+
Then from your project's RAILS_ROOT, run:
|
|
38
|
+
|
|
39
|
+
bundle install
|
|
40
|
+
script/rails generate hoptoad --api-key your_key_here
|
|
41
|
+
|
|
42
|
+
That's it!
|
|
43
|
+
|
|
31
44
|
=== Rails 2.x
|
|
32
45
|
|
|
33
46
|
Add the hoptoad_notifier gem to your app. In config/environment.rb:
|
|
@@ -37,11 +50,8 @@ Add the hoptoad_notifier gem to your app. In config/environment.rb:
|
|
|
37
50
|
Then from your project's RAILS_ROOT, run:
|
|
38
51
|
|
|
39
52
|
rake gems:install
|
|
40
|
-
script/generate hoptoad --api-key your_key_here
|
|
41
|
-
|
|
42
|
-
Once installed, you should vendor the hoptoad_notifier gem.
|
|
43
|
-
|
|
44
53
|
rake gems:unpack GEM=hoptoad_notifier
|
|
54
|
+
script/generate hoptoad --api-key your_key_here
|
|
45
55
|
|
|
46
56
|
As always, if you choose not to vendor the hoptoad_notifier gem, make sure
|
|
47
57
|
every server you deploy to has the gem installed or your application won't start.
|
|
@@ -94,6 +104,13 @@ Remove the plugin:
|
|
|
94
104
|
|
|
95
105
|
rm -rf vendor/plugins/hoptoad_notifier
|
|
96
106
|
|
|
107
|
+
Make sure the following line DOES NOT appear in your ApplicationController file:
|
|
108
|
+
|
|
109
|
+
include HoptoadNotifier::Catcher
|
|
110
|
+
|
|
111
|
+
If it does, remove it. The new catcher is automatically included by the gem
|
|
112
|
+
version of Hoptoad.
|
|
113
|
+
|
|
97
114
|
Before running the hoptoad generator, you need to find your project's API key.
|
|
98
115
|
Log in to your account at hoptoadapp.com, and click on the "Projects" button.
|
|
99
116
|
Then, find your project in the list, and click on its name. In the left-hand
|
|
@@ -257,6 +274,15 @@ Hoptoad merges the hash you pass with these default options:
|
|
|
257
274
|
|
|
258
275
|
You can override any of those parameters.
|
|
259
276
|
|
|
277
|
+
=== Sending shell environment variables when "Going beyond exceptions"
|
|
278
|
+
|
|
279
|
+
One common request we see is to send shell environment variables along with
|
|
280
|
+
manual exception notification. We recommend sending them along with CGI data
|
|
281
|
+
or Rack environment (:cgi_data or :rack_env keys, respectively.)
|
|
282
|
+
|
|
283
|
+
See HoptoadNotifier::Notice#initialize in lib/hoptoad_notifier/notice.rb for
|
|
284
|
+
more details.
|
|
285
|
+
|
|
260
286
|
== Filtering
|
|
261
287
|
|
|
262
288
|
You can specify a whitelist of errors, that Hoptoad will not report on. Use
|
data/Rakefile
CHANGED
|
@@ -195,10 +195,10 @@ def define_rails_cucumber_tasks(additional_cucumber_args = '')
|
|
|
195
195
|
namespace :rails do
|
|
196
196
|
RAILS_VERSIONS.each do |version|
|
|
197
197
|
desc "Test integration of the gem with Rails #{version}"
|
|
198
|
-
task version do
|
|
198
|
+
task version => [:gemspec, :vendor_test_gems] do
|
|
199
199
|
puts "Testing Rails #{version}"
|
|
200
200
|
ENV['RAILS_VERSION'] = version
|
|
201
|
-
system("cucumber --format progress #{additional_cucumber_args} features/rails.feature")
|
|
201
|
+
system("cucumber --format #{ENV['CUCUMBER_FORMAT'] || 'progress'} #{additional_cucumber_args} features/rails.feature")
|
|
202
202
|
end
|
|
203
203
|
end
|
|
204
204
|
|
data/SUPPORTED_RAILS_VERSIONS
CHANGED
|
@@ -18,7 +18,7 @@ class HoptoadGenerator < Rails::Generator::Base
|
|
|
18
18
|
record do |m|
|
|
19
19
|
m.directory 'lib/tasks'
|
|
20
20
|
m.file 'hoptoad_notifier_tasks.rake', 'lib/tasks/hoptoad_notifier_tasks.rake'
|
|
21
|
-
if
|
|
21
|
+
if ['config/deploy.rb', 'Capfile'].all? { |file| File.exists?(file) }
|
|
22
22
|
m.append_to 'config/deploy.rb', capistrano_hook
|
|
23
23
|
end
|
|
24
24
|
if options[:api_key]
|
|
@@ -47,7 +47,7 @@ class HoptoadGenerator < Rails::Generator::Base
|
|
|
47
47
|
def capistrano_hook
|
|
48
48
|
IO.read(source_path('capistrano_hook.rb'))
|
|
49
49
|
end
|
|
50
|
-
|
|
50
|
+
|
|
51
51
|
def plugin_is_present?
|
|
52
52
|
File.exists?('vendor/plugins/hoptoad_notifier')
|
|
53
53
|
end
|
|
@@ -7,6 +7,19 @@ unless ARGV.any? {|a| a =~ /^gems/}
|
|
|
7
7
|
$: << File.join(vendored_notifier, 'lib')
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
begin
|
|
11
|
+
require 'hoptoad_notifier/tasks'
|
|
12
|
+
rescue LoadError => exception
|
|
13
|
+
namespace :hoptoad do
|
|
14
|
+
%w(deploy test log_stdout).each do |task_name|
|
|
15
|
+
desc "Missing dependency for hoptoad:#{task_name}"
|
|
16
|
+
task task_name do
|
|
17
|
+
$stderr.puts "Failed to run hoptoad:#{task_name} because of missing dependency."
|
|
18
|
+
$stderr.puts "You probably need to run `rake gems:install` to install the hoptoad_notifier gem"
|
|
19
|
+
abort exception.inspect
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
11
24
|
|
|
12
25
|
end
|
data/lib/hoptoad_notifier.rb
CHANGED
|
@@ -9,6 +9,8 @@ require 'hoptoad_notifier/sender'
|
|
|
9
9
|
require 'hoptoad_notifier/backtrace'
|
|
10
10
|
require 'hoptoad_notifier/rack'
|
|
11
11
|
|
|
12
|
+
require 'hoptoad_notifier/railtie' if defined?(Rails::Railtie)
|
|
13
|
+
|
|
12
14
|
# Gem for applications to automatically post errors to the Hoptoad of their choice.
|
|
13
15
|
module HoptoadNotifier
|
|
14
16
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'builder'
|
|
2
|
+
|
|
1
3
|
module HoptoadNotifier
|
|
2
4
|
class Notice
|
|
3
5
|
|
|
@@ -78,9 +80,12 @@ module HoptoadNotifier
|
|
|
78
80
|
self.ignore_by_filters = args[:ignore_by_filters] || []
|
|
79
81
|
self.backtrace_filters = args[:backtrace_filters] || []
|
|
80
82
|
self.params_filters = args[:params_filters] || []
|
|
81
|
-
self.parameters = args[:parameters]
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
self.parameters = args[:parameters] ||
|
|
84
|
+
action_dispatch_params ||
|
|
85
|
+
rack_env(:params) ||
|
|
86
|
+
{}
|
|
87
|
+
self.component = args[:component] || args[:controller] || parameters['controller']
|
|
88
|
+
self.action = args[:action] || parameters['action']
|
|
84
89
|
|
|
85
90
|
self.environment_name = args[:environment_name]
|
|
86
91
|
self.cgi_data = args[:cgi_data] || args[:rack_env]
|
|
@@ -126,17 +131,17 @@ module HoptoadNotifier
|
|
|
126
131
|
request.url(url)
|
|
127
132
|
request.component(controller)
|
|
128
133
|
request.action(action)
|
|
129
|
-
unless parameters.
|
|
134
|
+
unless parameters.nil? || parameters.empty?
|
|
130
135
|
request.params do |params|
|
|
131
136
|
xml_vars_for(params, parameters)
|
|
132
137
|
end
|
|
133
138
|
end
|
|
134
|
-
unless session_data.
|
|
139
|
+
unless session_data.nil? || session_data.empty?
|
|
135
140
|
request.session do |session|
|
|
136
141
|
xml_vars_for(session, session_data)
|
|
137
142
|
end
|
|
138
143
|
end
|
|
139
|
-
unless cgi_data.
|
|
144
|
+
unless cgi_data.nil? || cgi_data.empty?
|
|
140
145
|
request.tag!("cgi-data") do |cgi_datum|
|
|
141
146
|
xml_vars_for(cgi_datum, cgi_data)
|
|
142
147
|
end
|
|
@@ -266,7 +271,7 @@ module HoptoadNotifier
|
|
|
266
271
|
end
|
|
267
272
|
|
|
268
273
|
def find_session_data
|
|
269
|
-
self.session_data = args[:session_data] || args[:session] || {}
|
|
274
|
+
self.session_data = args[:session_data] || args[:session] || rack_session || {}
|
|
270
275
|
self.session_data = session_data[:data] if session_data[:data]
|
|
271
276
|
end
|
|
272
277
|
|
|
@@ -301,5 +306,13 @@ module HoptoadNotifier
|
|
|
301
306
|
::Rack::Request.new(args[:rack_env])
|
|
302
307
|
end
|
|
303
308
|
end
|
|
309
|
+
|
|
310
|
+
def action_dispatch_params
|
|
311
|
+
args[:rack_env]['action_dispatch.request.parameters'] if args[:rack_env]
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
def rack_session
|
|
315
|
+
args[:rack_env]['rack.session'] if args[:rack_env]
|
|
316
|
+
end
|
|
304
317
|
end
|
|
305
318
|
end
|
|
@@ -23,8 +23,7 @@ module HoptoadNotifier
|
|
|
23
23
|
:controller => params[:controller],
|
|
24
24
|
:action => params[:action],
|
|
25
25
|
:url => hoptoad_request_url,
|
|
26
|
-
:cgi_data => hoptoad_filter_if_filtering(request.env)
|
|
27
|
-
:environment_vars => hoptoad_filter_if_filtering(ENV) }
|
|
26
|
+
:cgi_data => hoptoad_filter_if_filtering(request.env) }
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
def hoptoad_filter_if_filtering(hash)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require 'hoptoad_notifier'
|
|
2
|
+
|
|
3
|
+
namespace :hoptoad do
|
|
4
|
+
desc "Notify Hoptoad of a new deploy."
|
|
5
|
+
task :deploy => :environment do
|
|
6
|
+
require 'hoptoad_tasks'
|
|
7
|
+
HoptoadTasks.deploy(:rails_env => ENV['TO'],
|
|
8
|
+
:scm_revision => ENV['REVISION'],
|
|
9
|
+
:scm_repository => ENV['REPO'],
|
|
10
|
+
:local_username => ENV['USER'],
|
|
11
|
+
:api_key => ENV['API_KEY'])
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
desc "Verify your gem installation by sending a test exception to the hoptoad service"
|
|
15
|
+
task :test => [:environment] do
|
|
16
|
+
Rails.logger = Logger.new(STDOUT)
|
|
17
|
+
Rails.logger.level = Logger::DEBUG
|
|
18
|
+
HoptoadNotifier.configure(true) do |config|
|
|
19
|
+
config.logger = Rails.logger
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
require 'app/controllers/application_controller'
|
|
23
|
+
|
|
24
|
+
class HoptoadTestingException < RuntimeError; end
|
|
25
|
+
|
|
26
|
+
unless HoptoadNotifier.configuration.api_key
|
|
27
|
+
puts "Hoptoad needs an API key configured! Check the README to see how to add it."
|
|
28
|
+
exit
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
HoptoadNotifier.configuration.development_environments = []
|
|
32
|
+
|
|
33
|
+
puts "Configuration:"
|
|
34
|
+
HoptoadNotifier.configuration.to_hash.each do |key, value|
|
|
35
|
+
puts sprintf("%25s: %s", key.to_s, value.inspect.slice(0, 55))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
unless defined?(ApplicationController)
|
|
39
|
+
puts "No ApplicationController found"
|
|
40
|
+
exit
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
puts 'Setting up the Controller.'
|
|
44
|
+
class ApplicationController
|
|
45
|
+
# This is to bypass any filters that may prevent access to the action.
|
|
46
|
+
prepend_before_filter :test_hoptoad
|
|
47
|
+
def test_hoptoad
|
|
48
|
+
puts "Raising '#{exception_class.name}' to simulate application failure."
|
|
49
|
+
raise exception_class.new, 'Testing hoptoad via "rake hoptoad:test". If you can see this, it works.'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# def rescue_action(exception)
|
|
53
|
+
# rescue_action_in_public exception
|
|
54
|
+
# end
|
|
55
|
+
|
|
56
|
+
# Ensure we actually have an action to go to.
|
|
57
|
+
def verify; end
|
|
58
|
+
|
|
59
|
+
# def consider_all_requests_local
|
|
60
|
+
# false
|
|
61
|
+
# end
|
|
62
|
+
|
|
63
|
+
# def local_request?
|
|
64
|
+
# false
|
|
65
|
+
# end
|
|
66
|
+
|
|
67
|
+
def exception_class
|
|
68
|
+
exception_name = ENV['EXCEPTION'] || "HoptoadTestingException"
|
|
69
|
+
Object.const_get(exception_name)
|
|
70
|
+
rescue
|
|
71
|
+
Object.const_set(exception_name, Class.new(Exception))
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def logger
|
|
75
|
+
nil
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
class HoptoadVerificationController < ApplicationController; end
|
|
79
|
+
|
|
80
|
+
Rails::Application.routes_reloader.reload_if_changed
|
|
81
|
+
Rails::Application.routes.draw do |map|
|
|
82
|
+
match 'verify' => 'application#verify', :as => 'verify'
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
puts 'Processing request.'
|
|
86
|
+
env = Rack::MockRequest.env_for("/verify")
|
|
87
|
+
Rails::Application.call(env)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'hoptoad_notifier'
|
|
2
|
+
require 'rails'
|
|
3
|
+
|
|
4
|
+
module HoptoadNotifier
|
|
5
|
+
class Railtie < Rails::Railtie
|
|
6
|
+
rake_tasks do
|
|
7
|
+
require "hoptoad_notifier/rails3_tasks"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
initializer "hoptoad.use_rack_middleware" do |app|
|
|
11
|
+
app.config.middleware.insert_after "::ActionDispatch::ShowExceptions", "HoptoadNotifier::Rack"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
config.after_initialize do
|
|
15
|
+
HoptoadNotifier.configure(true) do |config|
|
|
16
|
+
config.logger = Rails.logger
|
|
17
|
+
config.environment_name = Rails.env
|
|
18
|
+
config.project_root = Rails.root
|
|
19
|
+
config.framework = "Rails: #{::Rails::VERSION::STRING}"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
|
|
3
|
+
class HoptoadGenerator < Rails::Generators::Base
|
|
4
|
+
|
|
5
|
+
class_option :api_key, :aliases => "-k", :type => :string, :desc => "Your Hoptoad API key"
|
|
6
|
+
|
|
7
|
+
def self.source_root
|
|
8
|
+
@_hoptoad_source_root ||= File.expand_path("../../../../../generators/hoptoad/templates", __FILE__)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def install
|
|
12
|
+
ensure_api_key_was_configured
|
|
13
|
+
ensure_plugin_is_not_present
|
|
14
|
+
append_capistrano_hook
|
|
15
|
+
generate_initializer unless api_key_configured?
|
|
16
|
+
test_hoptoad
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def ensure_api_key_was_configured
|
|
22
|
+
if !options[:api_key] && !api_key_configured?
|
|
23
|
+
puts "Must pass --api-key or create config/initializers/hoptoad.rb"
|
|
24
|
+
exit
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def ensure_plugin_is_not_present
|
|
29
|
+
if plugin_is_present?
|
|
30
|
+
puts "You must first remove the hoptoad_notifier plugin. Please run: script/plugin remove hoptoad_notifier"
|
|
31
|
+
exit
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def append_capistrano_hook
|
|
36
|
+
if File.exists?('config/deploy.rb') && File.exists?('Capfile')
|
|
37
|
+
append_file('config/deploy.rb', <<-HOOK)
|
|
38
|
+
|
|
39
|
+
require 'config/boot'
|
|
40
|
+
require 'hoptoad_notifier/capistrano'
|
|
41
|
+
HOOK
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def api_key
|
|
46
|
+
options[:api_key]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def generate_initializer
|
|
50
|
+
template 'initializer.rb', 'config/initializers/hoptoad.rb'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def api_key_configured?
|
|
54
|
+
File.exists?('config/initializers/hoptoad.rb')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_hoptoad
|
|
58
|
+
puts run("rake hoptoad:test --trace")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def plugin_is_present?
|
|
62
|
+
File.exists?('vendor/plugins/hoptoad_notifier')
|
|
63
|
+
end
|
|
64
|
+
end
|
data/test/notice_test.rb
CHANGED
|
@@ -339,9 +339,6 @@ class NoticeTest < Test::Unit::TestCase
|
|
|
339
339
|
end
|
|
340
340
|
|
|
341
341
|
should "extract data from a rack environment hash" do
|
|
342
|
-
# TODO: extract session data
|
|
343
|
-
# TODO: extract controller
|
|
344
|
-
# TODO: extract action
|
|
345
342
|
url = "https://subdomain.happylane.com:100/test/file.rb?var=value&var2=value2"
|
|
346
343
|
parameters = { 'var' => 'value', 'var2' => 'value2' }
|
|
347
344
|
env = Rack::MockRequest.env_for(url)
|
|
@@ -353,6 +350,35 @@ class NoticeTest < Test::Unit::TestCase
|
|
|
353
350
|
assert_equal 'GET', notice.cgi_data['REQUEST_METHOD']
|
|
354
351
|
end
|
|
355
352
|
|
|
353
|
+
should "extract data from a rack environment hash with action_dispatch info" do
|
|
354
|
+
params = { 'controller' => 'users', 'action' => 'index', 'id' => '7' }
|
|
355
|
+
env = Rack::MockRequest.env_for('/', { 'action_dispatch.request.parameters' => params })
|
|
356
|
+
|
|
357
|
+
notice = build_notice(:rack_env => env)
|
|
358
|
+
|
|
359
|
+
assert_equal params, notice.parameters
|
|
360
|
+
assert_equal params['controller'], notice.component
|
|
361
|
+
assert_equal params['action'], notice.action
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
should "extract session data from a rack environment" do
|
|
365
|
+
session_data = { 'something' => 'some value' }
|
|
366
|
+
env = Rack::MockRequest.env_for('/', 'rack.session' => session_data)
|
|
367
|
+
|
|
368
|
+
notice = build_notice(:rack_env => env)
|
|
369
|
+
|
|
370
|
+
assert_equal session_data, notice.session_data
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
should "prefer passed session data to rack session data" do
|
|
374
|
+
session_data = { 'something' => 'some value' }
|
|
375
|
+
env = Rack::MockRequest.env_for('/')
|
|
376
|
+
|
|
377
|
+
notice = build_notice(:rack_env => env, :session_data => session_data)
|
|
378
|
+
|
|
379
|
+
assert_equal session_data, notice.session_data
|
|
380
|
+
end
|
|
381
|
+
|
|
356
382
|
def assert_accepts_exception_attribute(attribute, args = {}, &block)
|
|
357
383
|
exception = build_exception
|
|
358
384
|
block ||= lambda { exception.send(attribute) }
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 2
|
|
7
7
|
- 2
|
|
8
|
-
-
|
|
9
|
-
version: 2.2.
|
|
8
|
+
- 5
|
|
9
|
+
version: 2.2.5
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- thoughtbot, inc
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-
|
|
17
|
+
date: 2010-06-02 00:00:00 -04:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -120,11 +120,14 @@ files:
|
|
|
120
120
|
- lib/hoptoad_notifier/rails/controller_methods.rb
|
|
121
121
|
- lib/hoptoad_notifier/rails/error_lookup.rb
|
|
122
122
|
- lib/hoptoad_notifier/rails.rb
|
|
123
|
+
- lib/hoptoad_notifier/rails3_tasks.rb
|
|
124
|
+
- lib/hoptoad_notifier/railtie.rb
|
|
123
125
|
- lib/hoptoad_notifier/sender.rb
|
|
124
126
|
- lib/hoptoad_notifier/tasks.rb
|
|
125
127
|
- lib/hoptoad_notifier/version.rb
|
|
126
128
|
- lib/hoptoad_notifier.rb
|
|
127
129
|
- lib/hoptoad_tasks.rb
|
|
130
|
+
- lib/rails/generators/hoptoad/hoptoad_generator.rb
|
|
128
131
|
- test/backtrace_test.rb
|
|
129
132
|
- test/catcher_test.rb
|
|
130
133
|
- test/configuration_test.rb
|