hoptoad_notifier 2.2.0 → 2.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +34 -0
- data/README.rdoc +77 -16
- data/Rakefile +21 -5
- data/generators/hoptoad/templates/hoptoad_notifier_tasks.rake +11 -4
- data/lib/hoptoad_notifier/version.rb +1 -1
- metadata +48 -29
data/CHANGELOG
CHANGED
@@ -1,3 +1,35 @@
|
|
1
|
+
Version 2.2.2 - 2010-03-10
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
Chad Pytel (1):
|
5
|
+
document proxy support
|
6
|
+
|
7
|
+
Joe Ferris (8):
|
8
|
+
Added upgrade instructions to the README
|
9
|
+
Give a clearer error message when generating a Rails app fails
|
10
|
+
Fail loudly when a gem can't be vendored
|
11
|
+
Debugging rubygems issues
|
12
|
+
Explicitly specify the gem paths
|
13
|
+
Less noisy
|
14
|
+
Restore gem path after vendoring
|
15
|
+
Fixed a typo
|
16
|
+
|
17
|
+
Jon Yurek (1):
|
18
|
+
Added notice about removing hoptoad rake tasks to upgrade gem
|
19
|
+
|
20
|
+
Mike Burns (1):
|
21
|
+
Remove stray file with notes in it
|
22
|
+
|
23
|
+
|
24
|
+
Version 2.2.1 - 2010-03-10
|
25
|
+
===============================================================================
|
26
|
+
|
27
|
+
Jason Morrison (3):
|
28
|
+
LH-629 Ensure notifier is not considered a framework gem
|
29
|
+
Removing things-the-generator-must-do file
|
30
|
+
Add rake cucumber:wip:rails* tasks for work-in-progress features
|
31
|
+
|
32
|
+
|
1
33
|
Version 2.2.0 - 2010-02-18
|
2
34
|
===============================================================================
|
3
35
|
|
@@ -39,3 +71,5 @@ Nick Quaranto (3):
|
|
39
71
|
|
40
72
|
|
41
73
|
|
74
|
+
|
75
|
+
|
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
This is the notifier gem for integrating apps with Hoptoad.
|
4
4
|
|
5
|
-
When an uncaught exception occurs, HoptoadNotifier will POST the relevant data
|
5
|
+
When an uncaught exception occurs, HoptoadNotifier will POST the relevant data
|
6
6
|
to the Hoptoad server specified in your environment.
|
7
7
|
|
8
8
|
== Help
|
@@ -48,7 +48,7 @@ every server you deploy to has the gem installed or your application won't start
|
|
48
48
|
|
49
49
|
=== Rails 1.2.6
|
50
50
|
|
51
|
-
Install the hoptoad_notifier gem:
|
51
|
+
Install the hoptoad_notifier gem:
|
52
52
|
|
53
53
|
gem install hoptoad_notifier
|
54
54
|
|
@@ -75,19 +75,70 @@ Next add something like this at the bottom of your config/environment.rb:
|
|
75
75
|
You will also need to copy the hoptoad_notifier_tasks.rake file into your
|
76
76
|
RAILS_ROOT/lib/tasks directory in order for the rake hoptoad:test task to work:
|
77
77
|
|
78
|
-
cp vendor/gems/hoptoad_notifier
|
78
|
+
cp vendor/gems/hoptoad_notifier-*/generators/hoptoad/templates/hoptoad_notifier_tasks.rake lib/tasks
|
79
79
|
|
80
80
|
As always, if you choose not to vendor the hoptoad_notifier gem, make sure
|
81
81
|
every server you deploy to has the gem installed or your application won't start.
|
82
82
|
|
83
|
+
=== Upgrading From Earlier Versions of Hoptoad
|
84
|
+
|
85
|
+
If you're currently using the plugin version (if you have a
|
86
|
+
vendor/plugins/hoptoad_notifier directory, you are), you'll need to perform a
|
87
|
+
few extra steps when upgrading to the gem version.
|
88
|
+
|
89
|
+
Add the hoptoad_notifier gem to your app. In config/environment.rb:
|
90
|
+
|
91
|
+
config.gem 'hoptoad_notifier'
|
92
|
+
|
93
|
+
Remove the plugin:
|
94
|
+
|
95
|
+
rm -rf vendor/plugins/hoptoad_notifier
|
96
|
+
|
97
|
+
Before running the hoptoad generator, you need to find your project's API key.
|
98
|
+
Log in to your account at hoptoadapp.com, and click on the "Projects" button.
|
99
|
+
Then, find your project in the list, and click on its name. In the left-hand
|
100
|
+
column, you'll see an "Edit this project" button. Click on that to get your
|
101
|
+
project's API. (If you accidentally use your personal API auth_token, you won't
|
102
|
+
be able to install the gem.)
|
103
|
+
|
104
|
+
Then from your project's RAILS_ROOT, run:
|
105
|
+
|
106
|
+
rake gems:install
|
107
|
+
script/generate hoptoad --api-key your_key_here
|
108
|
+
|
109
|
+
Once installed, you should vendor the hoptoad_notifier gem.
|
110
|
+
|
111
|
+
rake gems:unpack GEM=hoptoad_notifier
|
112
|
+
|
113
|
+
As always, if you choose not to vendor the hoptoad_notifier gem, make sure
|
114
|
+
every server you deploy to has the gem installed or your application won't
|
115
|
+
start.
|
116
|
+
|
117
|
+
== Upgrading from Earlier Versions of the Hoptoad Gem (with config.gem)
|
118
|
+
|
119
|
+
If you're currently using the gem version of the hoptoad_notifier and have
|
120
|
+
a version of Rails that uses config.gem (in the 2.x series), there is
|
121
|
+
a step or two that you need to do to upgrade. First, you need to remove
|
122
|
+
the old version of the gem from vendor/gems:
|
123
|
+
|
124
|
+
rm -rf vendor/gems/hoptoad_notifier-X.X.X
|
125
|
+
|
126
|
+
Then you must remove the hoptoad_notifier_tasks.rake file from lib:
|
127
|
+
|
128
|
+
rm lib/tasks/hoptoad_notifier_tasks.rake
|
129
|
+
|
130
|
+
You can them continue to install normally. If you don't remove the rake file,
|
131
|
+
you will be unable to unpack this gem (Rails will think it's part of the
|
132
|
+
framework).
|
133
|
+
|
83
134
|
=== Testing it out
|
84
135
|
|
85
|
-
You can test that Hoptoad is working in your production environment by using
|
136
|
+
You can test that Hoptoad is working in your production environment by using
|
86
137
|
this rake task (from RAILS_ROOT):
|
87
138
|
|
88
139
|
rake hoptoad:test
|
89
140
|
|
90
|
-
If everything is configured properly, that task will send a notice to Hoptoad
|
141
|
+
If everything is configured properly, that task will send a notice to Hoptoad
|
91
142
|
which will be visible immediately.
|
92
143
|
|
93
144
|
== Rack
|
@@ -131,11 +182,11 @@ to disable Sinatra's error rescuing functionality:
|
|
131
182
|
|
132
183
|
== Usage
|
133
184
|
|
134
|
-
For the most part, Hoptoad works for itself. Once you've included the notifier
|
135
|
-
in your ApplicationController (which is now done automatically by the gem),
|
185
|
+
For the most part, Hoptoad works for itself. Once you've included the notifier
|
186
|
+
in your ApplicationController (which is now done automatically by the gem),
|
136
187
|
all errors will be rescued by the #rescue_action_in_public provided by the gem.
|
137
188
|
|
138
|
-
If you want to log arbitrary things which you've rescued yourself from a
|
189
|
+
If you want to log arbitrary things which you've rescued yourself from a
|
139
190
|
controller, you can do something like this:
|
140
191
|
|
141
192
|
...
|
@@ -175,7 +226,7 @@ controllers:
|
|
175
226
|
|
176
227
|
begin
|
177
228
|
params = {
|
178
|
-
# params that you pass to a method that can throw an exception
|
229
|
+
# params that you pass to a method that can throw an exception
|
179
230
|
}
|
180
231
|
my_unpredicable_method(params)
|
181
232
|
rescue => e
|
@@ -208,11 +259,11 @@ You can override any of those parameters.
|
|
208
259
|
|
209
260
|
== Filtering
|
210
261
|
|
211
|
-
You can specify a whitelist of errors, that Hoptoad will not report on. Use
|
212
|
-
this feature when you are so apathetic to certain errors that you don't want
|
262
|
+
You can specify a whitelist of errors, that Hoptoad will not report on. Use
|
263
|
+
this feature when you are so apathetic to certain errors that you don't want
|
213
264
|
them even logged.
|
214
265
|
|
215
|
-
This filter will only be applied to automatic notifications, not manual
|
266
|
+
This filter will only be applied to automatic notifications, not manual
|
216
267
|
notifications (when #notify is called directly).
|
217
268
|
|
218
269
|
Hoptoad ignores the following exceptions by default:
|
@@ -223,7 +274,7 @@ Hoptoad ignores the following exceptions by default:
|
|
223
274
|
ActionController::UnknownAction
|
224
275
|
CGI::Session::CookieStore::TamperedWithCookie
|
225
276
|
|
226
|
-
To ignore errors in addition to those, specify their names in your Hoptoad
|
277
|
+
To ignore errors in addition to those, specify their names in your Hoptoad
|
227
278
|
configuration block.
|
228
279
|
|
229
280
|
HoptoadNotifier.configure do |config|
|
@@ -231,7 +282,7 @@ configuration block.
|
|
231
282
|
config.ignore << ActiveRecord::IgnoreThisError
|
232
283
|
end
|
233
284
|
|
234
|
-
To ignore *only* certain errors (and override the defaults), use the
|
285
|
+
To ignore *only* certain errors (and override the defaults), use the
|
235
286
|
#ignore_only attribute.
|
236
287
|
|
237
288
|
HoptoadNotifier.configure do |config|
|
@@ -270,8 +321,8 @@ hoptoad_notifier will reuse filters specified by #filter_params_logging.
|
|
270
321
|
== Testing
|
271
322
|
|
272
323
|
When you run your tests, you might notice that the Hoptoad service is recording
|
273
|
-
notices generated using #notify when you don't expect it to. You can
|
274
|
-
use code like this in your test_helper.rb to redefine that method so those
|
324
|
+
notices generated using #notify when you don't expect it to. You can
|
325
|
+
use code like this in your test_helper.rb to redefine that method so those
|
275
326
|
errors are not reported while running tests.
|
276
327
|
|
277
328
|
module HoptoadNotifier
|
@@ -280,6 +331,16 @@ errors are not reported while running tests.
|
|
280
331
|
end
|
281
332
|
end
|
282
333
|
|
334
|
+
== Proxy Support
|
335
|
+
|
336
|
+
The notifier supports using a proxy, if your server is not able to directly reach the Hoptoad servers. To configure the proxy settings, added the following information to your Hoptoad configuration block.
|
337
|
+
|
338
|
+
HoptoadNotifier.configure do |config|
|
339
|
+
config.proxy_host = ...
|
340
|
+
config.proxy_port = ...
|
341
|
+
config.proxy_user = ...
|
342
|
+
config.proxy_pass = ...
|
343
|
+
|
283
344
|
== Supported Rails versions
|
284
345
|
|
285
346
|
See SUPPORTED_RAILS_VERSIONS for a list of official supported versions of
|
data/Rakefile
CHANGED
@@ -162,19 +162,26 @@ LOCAL_GEMS = [['sham_rack', nil], ['capistrano', nil], ['sqlite3-ruby', nil], ['
|
|
162
162
|
RAILS_VERSIONS.collect { |version| ['rails', version] }
|
163
163
|
|
164
164
|
task :vendor_test_gems do
|
165
|
+
old_gem_path = ENV['GEM_PATH']
|
166
|
+
old_gem_home = ENV['GEM_HOME']
|
167
|
+
ENV['GEM_PATH'] = LOCAL_GEM_ROOT
|
168
|
+
ENV['GEM_HOME'] = LOCAL_GEM_ROOT
|
165
169
|
LOCAL_GEMS.each do |gem_name, version|
|
166
170
|
gem_file_pattern = [gem_name, version || '*'].compact.join('-')
|
167
171
|
version_option = version ? "-v #{version}" : ''
|
168
172
|
pattern = File.join(LOCAL_GEM_ROOT, 'gems', "#{gem_file_pattern}")
|
169
173
|
existing = Dir.glob(pattern).first
|
170
174
|
unless existing
|
171
|
-
command = "gem install -i #{LOCAL_GEM_ROOT} --no-ri --no-rdoc #{version_option} #{gem_name}"
|
175
|
+
command = "gem install -i #{LOCAL_GEM_ROOT} --no-ri --no-rdoc --backtrace #{version_option} #{gem_name}"
|
172
176
|
puts "Vendoring #{gem_file_pattern}..."
|
173
|
-
unless system(command)
|
174
|
-
|
177
|
+
unless system("#{command} 2>&1")
|
178
|
+
puts "Command failed: #{command}"
|
179
|
+
exit(1)
|
175
180
|
end
|
176
181
|
end
|
177
182
|
end
|
183
|
+
ENV['GEM_PATH'] = old_gem_path
|
184
|
+
ENV['GEM_HOME'] = old_gem_home
|
178
185
|
end
|
179
186
|
|
180
187
|
Cucumber::Rake::Task.new(:cucumber) do |t|
|
@@ -184,14 +191,14 @@ end
|
|
184
191
|
|
185
192
|
task :cucumber => [:gemspec, :vendor_test_gems]
|
186
193
|
|
187
|
-
|
194
|
+
def define_rails_cucumber_tasks(additional_cucumber_args = '')
|
188
195
|
namespace :rails do
|
189
196
|
RAILS_VERSIONS.each do |version|
|
190
197
|
desc "Test integration of the gem with Rails #{version}"
|
191
198
|
task version do
|
192
199
|
puts "Testing Rails #{version}"
|
193
200
|
ENV['RAILS_VERSION'] = version
|
194
|
-
system("cucumber --format progress features/rails.feature")
|
201
|
+
system("cucumber --format progress #{additional_cucumber_args} features/rails.feature")
|
195
202
|
end
|
196
203
|
end
|
197
204
|
|
@@ -199,3 +206,12 @@ namespace :cucumber do
|
|
199
206
|
task :all => RAILS_VERSIONS
|
200
207
|
end
|
201
208
|
end
|
209
|
+
|
210
|
+
namespace :cucumber do
|
211
|
+
namespace :wip do
|
212
|
+
define_rails_cucumber_tasks('--tags @wip')
|
213
|
+
end
|
214
|
+
|
215
|
+
define_rails_cucumber_tasks
|
216
|
+
end
|
217
|
+
|
@@ -1,5 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# Don't load anything when running the gems:* tasks.
|
2
|
+
# Otherwise, hoptoad_notifier will be considered a framework gem.
|
3
|
+
# https://thoughtbot.lighthouseapp.com/projects/14221/tickets/629
|
4
|
+
unless ARGV.any? {|a| a =~ /^gems/}
|
5
|
+
|
6
|
+
Dir[File.join(RAILS_ROOT, 'vendor', 'gems', 'hoptoad_notifier-*')].each do |vendored_notifier|
|
7
|
+
$: << File.join(vendored_notifier, 'lib')
|
8
|
+
end
|
4
9
|
|
5
|
-
require 'hoptoad_notifier/tasks'
|
10
|
+
require 'hoptoad_notifier/tasks'
|
11
|
+
|
12
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoptoad_notifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 2
|
8
|
+
- 2
|
9
|
+
version: 2.2.2
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- thoughtbot, inc
|
@@ -9,69 +14,81 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-03-10 00:00:00 -05:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: activesupport
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: activerecord
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
33
41
|
version: "0"
|
34
|
-
|
42
|
+
type: :development
|
43
|
+
version_requirements: *id002
|
35
44
|
- !ruby/object:Gem::Dependency
|
36
45
|
name: actionpack
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
48
|
requirements:
|
41
49
|
- - ">="
|
42
50
|
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
43
53
|
version: "0"
|
44
|
-
|
54
|
+
type: :development
|
55
|
+
version_requirements: *id003
|
45
56
|
- !ruby/object:Gem::Dependency
|
46
57
|
name: jferris-mocha
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
prerelease: false
|
59
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
60
|
requirements:
|
51
61
|
- - ">="
|
52
62
|
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
53
65
|
version: "0"
|
54
|
-
|
66
|
+
type: :development
|
67
|
+
version_requirements: *id004
|
55
68
|
- !ruby/object:Gem::Dependency
|
56
69
|
name: nokogiri
|
57
|
-
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
60
72
|
requirements:
|
61
73
|
- - ">="
|
62
74
|
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 0
|
63
77
|
version: "0"
|
64
|
-
|
78
|
+
type: :development
|
79
|
+
version_requirements: *id005
|
65
80
|
- !ruby/object:Gem::Dependency
|
66
81
|
name: shoulda
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
prerelease: false
|
83
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
70
84
|
requirements:
|
71
85
|
- - ">="
|
72
86
|
- !ruby/object:Gem::Version
|
87
|
+
segments:
|
88
|
+
- 0
|
73
89
|
version: "0"
|
74
|
-
|
90
|
+
type: :development
|
91
|
+
version_requirements: *id006
|
75
92
|
description:
|
76
93
|
email: support@hoptoadapp.com
|
77
94
|
executables: []
|
@@ -137,18 +154,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
154
|
requirements:
|
138
155
|
- - ">="
|
139
156
|
- !ruby/object:Gem::Version
|
157
|
+
segments:
|
158
|
+
- 0
|
140
159
|
version: "0"
|
141
|
-
version:
|
142
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
161
|
requirements:
|
144
162
|
- - ">="
|
145
163
|
- !ruby/object:Gem::Version
|
164
|
+
segments:
|
165
|
+
- 0
|
146
166
|
version: "0"
|
147
|
-
version:
|
148
167
|
requirements: []
|
149
168
|
|
150
169
|
rubyforge_project:
|
151
|
-
rubygems_version: 1.3.
|
170
|
+
rubygems_version: 1.3.6
|
152
171
|
signing_key:
|
153
172
|
specification_version: 3
|
154
173
|
summary: Send your application errors to our hosted service and reclaim your inbox.
|