hoptoad-api 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +4 -3
- data/hoptoad-api.gemspec +3 -3
- data/lib/hoptoad-api.rb +7 -1
- data/lib/hoptoad-api/client.rb +3 -12
- data/lib/hoptoad-api/version.rb +1 -1
- data/test/test_helper.rb +3 -1
- data/test/test_hoptoad-api.rb +18 -1
- metadata +40 -21
data/README.textile
CHANGED
@@ -8,7 +8,8 @@ h2. Usage
|
|
8
8
|
<pre>
|
9
9
|
<code>
|
10
10
|
Hoptoad.account = 'myaccount'
|
11
|
-
Hoptoad.
|
11
|
+
Hoptoad.auth_token = 'abcdeghijklmnopqrstuvwxyz'
|
12
|
+
Hoptoad.secure = true # if your account is SSL enabled
|
12
13
|
|
13
14
|
# find an individual error:
|
14
15
|
Hoptoad::Error.find(12345)
|
@@ -22,8 +23,8 @@ Hoptoad::Error.find(:all, { :page => 2 })
|
|
22
23
|
|
23
24
|
h2. Requirements
|
24
25
|
|
25
|
-
*
|
26
|
-
*
|
26
|
+
* HTTParty
|
27
|
+
* Hashie
|
27
28
|
|
28
29
|
h2. Acknowledgements
|
29
30
|
|
data/hoptoad-api.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{hoptoad-api}
|
8
|
-
s.version = "2.0.
|
8
|
+
s.version = "2.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Steve Agalloco"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-05-17}
|
13
13
|
s.description = %q{An unofficial gem for interacting with the Hoptoad API}
|
14
14
|
s.email = %q{steve.agalloco@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
s.homepage = %q{http://github.com/spagalloco/hoptoad-api}
|
34
34
|
s.rdoc_options = ["--charset=UTF-8"]
|
35
35
|
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = %q{1.3.
|
36
|
+
s.rubygems_version = %q{1.3.6}
|
37
37
|
s.summary = %q{An unofficial gem for interacting with the Hoptoad API}
|
38
38
|
s.test_files = [
|
39
39
|
"test/test_helper.rb",
|
data/lib/hoptoad-api.rb
CHANGED
@@ -3,6 +3,7 @@ require 'httparty'
|
|
3
3
|
|
4
4
|
module Hoptoad
|
5
5
|
extend self
|
6
|
+
attr_accessor :secure
|
6
7
|
|
7
8
|
class HoptoadError < StandardError; end
|
8
9
|
|
@@ -11,7 +12,7 @@ module Hoptoad
|
|
11
12
|
end
|
12
13
|
|
13
14
|
def account
|
14
|
-
"
|
15
|
+
"#{protocol}://#{@account}.hoptoadapp.com"
|
15
16
|
end
|
16
17
|
|
17
18
|
def auth_token=(token)
|
@@ -21,6 +22,11 @@ module Hoptoad
|
|
21
22
|
def auth_token
|
22
23
|
@auth_token
|
23
24
|
end
|
25
|
+
|
26
|
+
def protocol
|
27
|
+
secure ? "https" : "http"
|
28
|
+
end
|
29
|
+
|
24
30
|
end
|
25
31
|
|
26
32
|
require 'hoptoad-api/version'
|
data/lib/hoptoad-api/client.rb
CHANGED
@@ -28,17 +28,8 @@ module Hoptoad
|
|
28
28
|
include HTTParty
|
29
29
|
format :xml
|
30
30
|
|
31
|
-
# cattr_accessor :collection_path, :individual_collection_path
|
32
|
-
|
33
31
|
@@collection_path = '/errors.xml'
|
34
32
|
@@individual_collection_path = '/errors/'
|
35
|
-
|
36
|
-
# def initialize
|
37
|
-
# self.class.base_uri "http://#{account}.hoptoadapp.com"
|
38
|
-
# self.class.default_params :auth_token => token
|
39
|
-
#
|
40
|
-
#
|
41
|
-
# end
|
42
33
|
|
43
34
|
def self.collection_path
|
44
35
|
@@collection_path
|
@@ -58,8 +49,6 @@ module Hoptoad
|
|
58
49
|
else
|
59
50
|
raise HoptoadError.new('Invalid argument')
|
60
51
|
end
|
61
|
-
|
62
|
-
# puts results.inspect
|
63
52
|
|
64
53
|
raise HoptoadError.new('No results found.') if results.nil?
|
65
54
|
raise HoptoadError.new(results.errors.error) if results.errors
|
@@ -88,7 +77,9 @@ module Hoptoad
|
|
88
77
|
def self.find_individual(args)
|
89
78
|
id = args.shift
|
90
79
|
options = args.extract_options!
|
91
|
-
Hashie::Mash.new(get("#{@@individual_collection_path}#{id}.xml", { :query => options }))
|
80
|
+
hash = Hashie::Mash.new(response = get("#{@@individual_collection_path}#{id}.xml", { :query => options }))
|
81
|
+
raise HoptoadError.new('SSL should be enabled - use Hoptoad.secure = true in configuration') if response.code == 403
|
82
|
+
hash
|
92
83
|
end
|
93
84
|
|
94
85
|
end
|
data/lib/hoptoad-api/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -8,4 +8,6 @@ require File.join(File.dirname(__FILE__), "..", "lib", "hoptoad-api")
|
|
8
8
|
FakeWeb.allow_net_connect = false
|
9
9
|
FakeWeb.register_uri(:get, "http://myapp.hoptoadapp.com/errors.xml?auth_token=abcdefg123456", :response => File.join(File.dirname(__FILE__), 'fixtures', 'errors.xml'), :content_type => "application/xml; charset=utf-8", :status => ["200", "OK"])
|
10
10
|
FakeWeb.register_uri(:get, "http://myapp.hoptoadapp.com/errors.xml?auth_token=abcdefg123456&page=2", :response => File.join(File.dirname(__FILE__), 'fixtures', 'paginated_errors.xml'), :content_type => "application/xml; charset=utf-8", :status => ["200", "OK"])
|
11
|
-
FakeWeb.register_uri(:get, "http://myapp.hoptoadapp.com/errors/1696170.xml?auth_token=abcdefg123456", :response => File.join(File.dirname(__FILE__), 'fixtures', 'individual_error.xml'), :content_type => "application/xml; charset=utf-8", :status => ["200", "OK"])
|
11
|
+
FakeWeb.register_uri(:get, "http://myapp.hoptoadapp.com/errors/1696170.xml?auth_token=abcdefg123456", :response => File.join(File.dirname(__FILE__), 'fixtures', 'individual_error.xml'), :content_type => "application/xml; charset=utf-8", :status => ["200", "OK"])
|
12
|
+
FakeWeb.register_uri(:get, "http://sslapp.hoptoadapp.com/errors/1696170.xml?auth_token=abcdefg123456", :body => " ", :content_type => "application/xml; charset=utf-8", :status => ["403", "Forbidden"])
|
13
|
+
FakeWeb.register_uri(:get, "https://sslapp.hoptoadapp.com/errors/1696170.xml?auth_token=abcdefg123456", :response => File.join(File.dirname(__FILE__), 'fixtures', 'individual_error.xml'), :content_type => "application/xml; charset=utf-8", :status => ["200", "OK"])
|
data/test/test_hoptoad-api.rb
CHANGED
@@ -6,12 +6,13 @@ class HoptoadTest < Test::Unit::TestCase
|
|
6
6
|
setup do
|
7
7
|
Hoptoad.account = 'myapp'
|
8
8
|
Hoptoad.auth_token = 'abcdefg123456'
|
9
|
+
Hoptoad.secure = false
|
9
10
|
end
|
10
11
|
|
11
12
|
should "have correct collection path" do
|
12
13
|
assert_equal "/errors.xml", Hoptoad::Error.collection_path
|
13
14
|
end
|
14
|
-
|
15
|
+
|
15
16
|
should "find a page of the 30 most recent errors" do
|
16
17
|
errors = Hoptoad::Error.find(:all)
|
17
18
|
ordered = errors.sort_by(&:most_recent_notice_at).reverse
|
@@ -31,6 +32,22 @@ class HoptoadTest < Test::Unit::TestCase
|
|
31
32
|
assert_equal error.action, 'index'
|
32
33
|
assert_equal error.id, 1696170
|
33
34
|
end
|
35
|
+
|
36
|
+
should "find an error if account is SSL enabled" do
|
37
|
+
Hoptoad.secure = true
|
38
|
+
Hoptoad.account = "sslapp"
|
39
|
+
error = Hoptoad::Error.find(1696170)
|
40
|
+
assert_equal error.id, 1696170
|
41
|
+
end
|
42
|
+
|
43
|
+
should "raise exception if trying to access SSL enabled account with unsecure connection" do
|
44
|
+
Hoptoad.account = "sslapp"
|
45
|
+
Hoptoad.secure = false
|
46
|
+
assert_raise(Hoptoad::HoptoadError) do
|
47
|
+
error = Hoptoad::Error.find(1696170)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
34
51
|
end
|
35
52
|
|
36
53
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoptoad-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 2.0.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Steve Agalloco
|
@@ -9,49 +14,61 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-05-17 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: httparty
|
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
|
29
|
+
- 5
|
30
|
+
- 2
|
23
31
|
version: 0.5.2
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: hashie
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 2
|
44
|
+
- 0
|
33
45
|
version: 0.2.0
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
49
|
name: shoulda
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
52
|
requirements:
|
41
53
|
- - ">="
|
42
54
|
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
43
57
|
version: "0"
|
44
|
-
|
58
|
+
type: :development
|
59
|
+
version_requirements: *id003
|
45
60
|
- !ruby/object:Gem::Dependency
|
46
61
|
name: fakeweb
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
64
|
requirements:
|
51
65
|
- - ">="
|
52
66
|
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
53
69
|
version: "0"
|
54
|
-
|
70
|
+
type: :development
|
71
|
+
version_requirements: *id004
|
55
72
|
description: An unofficial gem for interacting with the Hoptoad API
|
56
73
|
email: steve.agalloco@gmail.com
|
57
74
|
executables: []
|
@@ -87,18 +104,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
104
|
requirements:
|
88
105
|
- - ">="
|
89
106
|
- !ruby/object:Gem::Version
|
107
|
+
segments:
|
108
|
+
- 0
|
90
109
|
version: "0"
|
91
|
-
version:
|
92
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
111
|
requirements:
|
94
112
|
- - ">="
|
95
113
|
- !ruby/object:Gem::Version
|
114
|
+
segments:
|
115
|
+
- 0
|
96
116
|
version: "0"
|
97
|
-
version:
|
98
117
|
requirements: []
|
99
118
|
|
100
119
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.3.
|
120
|
+
rubygems_version: 1.3.6
|
102
121
|
signing_key:
|
103
122
|
specification_version: 3
|
104
123
|
summary: An unofficial gem for interacting with the Hoptoad API
|