toadhopper-sinatra 0.1 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +21 -0
- data/Rakefile +10 -1
- data/Readme.md +22 -4
- data/lib/sinatra/toadhopper.rb +7 -4
- data/test/test_report_error_to_hoptoad.rb +15 -6
- metadata +5 -4
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2009 Tim Lucas
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -10,5 +10,14 @@ begin
|
|
10
10
|
gem "sr-mg", "<= 0.0.5"
|
11
11
|
require "mg"
|
12
12
|
MG.new("toadhopper-sinatra.gemspec")
|
13
|
-
rescue LoadError
|
13
|
+
rescue Gem::LoadError
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
gem "yard"
|
18
|
+
require 'yard'
|
19
|
+
YARD::Rake::YardocTask.new do |t|
|
20
|
+
t.options = ['-r', 'Readme.md', '--files', 'LICENSE'] # optional
|
21
|
+
end
|
22
|
+
rescue Gem::LoadError
|
14
23
|
end
|
data/Readme.md
CHANGED
@@ -1,12 +1,26 @@
|
|
1
|
-
|
1
|
+
[Hoptoad](http://www.hoptoadapp.com/) meets [Sinatra](http://www.sinatrarb.com/).
|
2
2
|
|
3
|
-
|
3
|
+
_____ ,
|
4
|
+
/ \______ |\ __
|
5
|
+
| o | \____ | | |--| __
|
6
|
+
/\_____/ \___ |/ | | |~'
|
7
|
+
/ \ /|_ () () |
|
8
|
+
|_______/ \ //| \ |\ ()
|
9
|
+
\______ _ ___ \ | \|_ | | \
|
10
|
+
/\_// / \ | \_|_/ () |
|
11
|
+
// //______/ /___/ | |
|
12
|
+
/\/\/\ \ / \ \ @' ()
|
13
|
+
\ \ \ \
|
14
|
+
\ \ \ \
|
15
|
+
\ \ \ \
|
16
|
+
\ \ /\/\
|
17
|
+
/\/\
|
4
18
|
|
5
|
-
|
19
|
+
How?
|
6
20
|
|
7
21
|
require 'sinatra/toadhopper'
|
8
22
|
|
9
|
-
set :toadhopper, :api_key => "
|
23
|
+
set :toadhopper, :api_key => "your hoptoad API key", :filters => /password/
|
10
24
|
|
11
25
|
get "/" do
|
12
26
|
raise "Kaboom!"
|
@@ -16,3 +30,7 @@ You configure the Toadhopper gem as-per usual, this plugin simply adds a `report
|
|
16
30
|
post_error_to_hoptoad!
|
17
31
|
"Ouch, that hurt."
|
18
32
|
end
|
33
|
+
|
34
|
+
Install it via rubygems:
|
35
|
+
|
36
|
+
gem install toadhopper-sinatra
|
data/lib/sinatra/toadhopper.rb
CHANGED
@@ -2,14 +2,17 @@ require 'sinatra/base'
|
|
2
2
|
require 'toadhopper'
|
3
3
|
|
4
4
|
module Sinatra
|
5
|
+
# The Toadhopper helper methods
|
5
6
|
module Toadhopper
|
6
|
-
# Reports the current sinatra error to Hoptoad
|
7
|
+
# Reports the current sinatra error to Hoptoad
|
7
8
|
def post_error_to_hoptoad!
|
8
|
-
|
9
|
-
|
9
|
+
if options.respond_to?(:toadhopper)
|
10
|
+
options.toadhopper.each_pair {|k, v| ::Toadhopper.__send__("#{k}=", v)}
|
11
|
+
end
|
12
|
+
unless ::Toadhopper.api_key
|
13
|
+
STDERR.puts "WARNING: Ignoring hoptoad notification - :api_key not set"
|
10
14
|
return
|
11
15
|
end
|
12
|
-
::Toadhopper.api_key = api_key
|
13
16
|
::Toadhopper.post!(
|
14
17
|
env['sinatra.error'],
|
15
18
|
{
|
@@ -8,6 +8,16 @@ require 'toadhopper/test/methods'
|
|
8
8
|
$:.unshift File.dirname(__FILE__) + "/../lib"
|
9
9
|
require 'sinatra/toadhopper'
|
10
10
|
|
11
|
+
# Stub the Toadhopper posting
|
12
|
+
|
13
|
+
def Toadhopper.post!(*args)
|
14
|
+
instance_variable_set(:@last_post_arguments, args)
|
15
|
+
end
|
16
|
+
|
17
|
+
def Toadhopper.last_post_arguments
|
18
|
+
instance_variable_get(:@last_post_arguments)
|
19
|
+
end
|
20
|
+
|
11
21
|
class TestReportErrorToHoptoad < Test::Unit::TestCase
|
12
22
|
|
13
23
|
class AppThatGoesBoom < Sinatra::Base
|
@@ -17,7 +27,7 @@ class TestReportErrorToHoptoad < Test::Unit::TestCase
|
|
17
27
|
set :raise_errors, false
|
18
28
|
set :sessions, true
|
19
29
|
|
20
|
-
set :toadhopper, :api_key => "apikey"
|
30
|
+
set :toadhopper, :api_key => "apikey", :filters => /afilter/
|
21
31
|
|
22
32
|
get "/:id" do
|
23
33
|
session["id"] = "sessionid"
|
@@ -31,19 +41,20 @@ class TestReportErrorToHoptoad < Test::Unit::TestCase
|
|
31
41
|
end
|
32
42
|
|
33
43
|
include Rack::Test::Methods
|
34
|
-
include Toadhopper::Test::Methods
|
35
44
|
|
36
45
|
def app; AppThatGoesBoom end
|
37
46
|
|
38
47
|
def setup
|
39
|
-
stub_toadhopper_post!
|
40
48
|
get "/theid"
|
41
|
-
@error, @options, @header_options =
|
49
|
+
@error, @options, @header_options = Toadhopper.last_post_arguments
|
42
50
|
end
|
43
51
|
|
44
52
|
def test_api_key_set
|
45
53
|
assert_equal "apikey", Toadhopper.api_key
|
46
54
|
end
|
55
|
+
def test_filter_set
|
56
|
+
assert_equal [/afilter/], Toadhopper.filters
|
57
|
+
end
|
47
58
|
|
48
59
|
def test_reported_error
|
49
60
|
assert_equal RuntimeError, @error.class
|
@@ -73,12 +84,10 @@ class TestFailsSilentWithoutApiKey < Test::Unit::TestCase
|
|
73
84
|
end
|
74
85
|
|
75
86
|
include Rack::Test::Methods
|
76
|
-
include Toadhopper::Test::Methods
|
77
87
|
|
78
88
|
def app; AppWithoutApiKey end
|
79
89
|
|
80
90
|
def test_doesnt_raise_an_error
|
81
|
-
stub_toadhopper_post!
|
82
91
|
assert_nothing_raised { get "/" }
|
83
92
|
end
|
84
93
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toadhopper-sinatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.3"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Lucas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-17 00:00:00 +10:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: "0.
|
23
|
+
version: "0.5"
|
24
24
|
version:
|
25
25
|
description: Post Hoptoad notifications from Sinatra
|
26
26
|
email: t.lucas@toolmantim.com
|
@@ -33,6 +33,7 @@ extra_rdoc_files:
|
|
33
33
|
files:
|
34
34
|
- Readme.md
|
35
35
|
- Rakefile
|
36
|
+
- LICENSE
|
36
37
|
- lib/sinatra/toadhopper.rb
|
37
38
|
- test/test_report_error_to_hoptoad.rb
|
38
39
|
has_rdoc: true
|
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
57
|
version:
|
57
58
|
requirements: []
|
58
59
|
|
59
|
-
rubyforge_project:
|
60
|
+
rubyforge_project: th-sinatra
|
60
61
|
rubygems_version: 1.3.1
|
61
62
|
signing_key:
|
62
63
|
specification_version: 2
|