petfinder 0.0.1
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/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +31 -0
- data/Rakefile +58 -0
- data/VERSION +1 -0
- data/lib/petfinder/client.rb +98 -0
- data/lib/petfinder.rb +22 -0
- data/test/fixtures/auth.xml +17 -0
- data/test/fixtures/breed_list.xml +40 -0
- data/test/fixtures/pet.xml +48 -0
- data/test/fixtures/pet_list.xml +966 -0
- data/test/fixtures/shelter.xml +26 -0
- data/test/fixtures/shelter_list.xml +189 -0
- data/test/helper.rb +25 -0
- data/test/test_petfinder.rb +67 -0
- metadata +134 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<petfinder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://api.petfinder.com/schemas/0.9/petfinder.xsd">
|
3
|
+
<header>
|
4
|
+
<version>0.1</version>
|
5
|
+
<timestamp>2010-04-12T04:51:40Z</timestamp>
|
6
|
+
<status>
|
7
|
+
<code>100</code>
|
8
|
+
<message/>
|
9
|
+
</status>
|
10
|
+
</header>
|
11
|
+
<shelter>
|
12
|
+
<id>TX1356</id>
|
13
|
+
<name>Lucky Dog Rescue</name>
|
14
|
+
<address1>P.O. Box 56512</address1>
|
15
|
+
<address2/>
|
16
|
+
<city>Houston</city>
|
17
|
+
<state>TX</state>
|
18
|
+
<zip>77019</zip>
|
19
|
+
<country/>
|
20
|
+
<latitude>29.75239944</latitude>
|
21
|
+
<longitude>-95.40170288</longitude>
|
22
|
+
<phone/>
|
23
|
+
<fax/>
|
24
|
+
<email>millicentgerdes@gmail.com</email>
|
25
|
+
</shelter>
|
26
|
+
</petfinder>
|
@@ -0,0 +1,189 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<petfinder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://api.petfinder.com/schemas/0.9/petfinder.xsd">
|
3
|
+
<header>
|
4
|
+
<version>0.1</version>
|
5
|
+
<timestamp>2010-04-12T04:46:40Z</timestamp>
|
6
|
+
<status>
|
7
|
+
<code>100</code>
|
8
|
+
<message/>
|
9
|
+
</status>
|
10
|
+
</header>
|
11
|
+
<lastOffset>25</lastOffset>
|
12
|
+
<shelters>
|
13
|
+
<shelter>
|
14
|
+
<id>TX1261</id>
|
15
|
+
<name>Pup Squad Animal Rescue</name>
|
16
|
+
<city>Houston</city>
|
17
|
+
<state>TX</state>
|
18
|
+
<phone/>
|
19
|
+
</shelter>
|
20
|
+
<shelter>
|
21
|
+
<id>TX1372</id>
|
22
|
+
<name>Frisky Paws Rescue, Inc.</name>
|
23
|
+
<city>Houston</city>
|
24
|
+
<state>TX</state>
|
25
|
+
<phone/>
|
26
|
+
</shelter>
|
27
|
+
<shelter>
|
28
|
+
<id>TX920</id>
|
29
|
+
<name>Great Pyrenees Rescue Society</name>
|
30
|
+
<city>Houston</city>
|
31
|
+
<state>TX</state>
|
32
|
+
<phone>Please email!</phone>
|
33
|
+
</shelter>
|
34
|
+
<shelter>
|
35
|
+
<id>TX1356</id>
|
36
|
+
<name>Lucky Dog Rescue</name>
|
37
|
+
<city>Houston</city>
|
38
|
+
<state>TX</state>
|
39
|
+
<phone/>
|
40
|
+
</shelter>
|
41
|
+
<shelter>
|
42
|
+
<id>TX946</id>
|
43
|
+
<name>Scouts Honor Rescue Inc.</name>
|
44
|
+
<city>Houston</city>
|
45
|
+
<state>TX</state>
|
46
|
+
<phone/>
|
47
|
+
</shelter>
|
48
|
+
<shelter>
|
49
|
+
<id>TX1215</id>
|
50
|
+
<name>Treat Them Right </name>
|
51
|
+
<city>Houston</city>
|
52
|
+
<state>TX</state>
|
53
|
+
<phone/>
|
54
|
+
</shelter>
|
55
|
+
<shelter>
|
56
|
+
<id>TX1257</id>
|
57
|
+
<name>Shaggy Dog Rescue</name>
|
58
|
+
<city>Houston</city>
|
59
|
+
<state>TX</state>
|
60
|
+
<phone/>
|
61
|
+
</shelter>
|
62
|
+
<shelter>
|
63
|
+
<id>TX617</id>
|
64
|
+
<name>American Fox Terrier Rescue - Southwest</name>
|
65
|
+
<city>Houston</city>
|
66
|
+
<state>TX</state>
|
67
|
+
<phone/>
|
68
|
+
</shelter>
|
69
|
+
<shelter>
|
70
|
+
<id>TX1086</id>
|
71
|
+
<name>Red Collar Rescue</name>
|
72
|
+
<city>Houston</city>
|
73
|
+
<state>TX</state>
|
74
|
+
<phone/>
|
75
|
+
</shelter>
|
76
|
+
<shelter>
|
77
|
+
<id>TX1248</id>
|
78
|
+
<name>Lucky Leash Rescue, Inc</name>
|
79
|
+
<city>Houston</city>
|
80
|
+
<state>TX</state>
|
81
|
+
<phone/>
|
82
|
+
</shelter>
|
83
|
+
<shelter>
|
84
|
+
<id>TX1283</id>
|
85
|
+
<name>Texas Collie Rescue</name>
|
86
|
+
<city>Houston</city>
|
87
|
+
<state>TX</state>
|
88
|
+
<phone>713-545-7408</phone>
|
89
|
+
</shelter>
|
90
|
+
<shelter>
|
91
|
+
<id>TX190</id>
|
92
|
+
<name>**Texas Great Pyrenees Rescue, Inc.**</name>
|
93
|
+
<city>Houston</city>
|
94
|
+
<state>TX</state>
|
95
|
+
<phone>877-746-9508 Free</phone>
|
96
|
+
</shelter>
|
97
|
+
<shelter>
|
98
|
+
<id>TX1121</id>
|
99
|
+
<name>CANINE COMPASSION</name>
|
100
|
+
<city>Houston</city>
|
101
|
+
<state>TX</state>
|
102
|
+
<phone>caninecompassion@yahoo.co</phone>
|
103
|
+
</shelter>
|
104
|
+
<shelter>
|
105
|
+
<id>TX1051</id>
|
106
|
+
<name>Basset Buddies Rescue of Texas</name>
|
107
|
+
<city>Houston</city>
|
108
|
+
<state>TX</state>
|
109
|
+
<phone>(281)-303-5496</phone>
|
110
|
+
</shelter>
|
111
|
+
<shelter>
|
112
|
+
<id>TX154</id>
|
113
|
+
<name>Homeless Pet Placement League</name>
|
114
|
+
<city>Houston</city>
|
115
|
+
<state>TX</state>
|
116
|
+
<phone>(713) 862-7387</phone>
|
117
|
+
</shelter>
|
118
|
+
<shelter>
|
119
|
+
<id>TX826</id>
|
120
|
+
<name>Bunny Buddies</name>
|
121
|
+
<city>Houston</city>
|
122
|
+
<state>TX</state>
|
123
|
+
<phone>713-822-8256</phone>
|
124
|
+
</shelter>
|
125
|
+
<shelter>
|
126
|
+
<id>TX170</id>
|
127
|
+
<name>HOPE (Homeless & Orphaned Pets Endeavor)</name>
|
128
|
+
<city>Houston</city>
|
129
|
+
<state>TX</state>
|
130
|
+
<phone>713-622-4673</phone>
|
131
|
+
</shelter>
|
132
|
+
<shelter>
|
133
|
+
<id>TX1219</id>
|
134
|
+
<name>Houston Boxer Rescue</name>
|
135
|
+
<city>Houston</city>
|
136
|
+
<state>TX</state>
|
137
|
+
<phone>832-582-2166</phone>
|
138
|
+
</shelter>
|
139
|
+
<shelter>
|
140
|
+
<id>TX169</id>
|
141
|
+
<name>Lone Star Shih Tzu and Lhasa Apso Rescue</name>
|
142
|
+
<city>Houston</city>
|
143
|
+
<state>TX</state>
|
144
|
+
<phone>www.shihtzu-rescue.com</phone>
|
145
|
+
</shelter>
|
146
|
+
<shelter>
|
147
|
+
<id>TX379</id>
|
148
|
+
<name>Lone Star Boxer Rescue</name>
|
149
|
+
<city>Houston</city>
|
150
|
+
<state>TX</state>
|
151
|
+
<phone>713-464-1381</phone>
|
152
|
+
</shelter>
|
153
|
+
<shelter>
|
154
|
+
<id>TX1352</id>
|
155
|
+
<name>Paws Haven Rescue, Inc.</name>
|
156
|
+
<city>Houston</city>
|
157
|
+
<state>TX</state>
|
158
|
+
<phone/>
|
159
|
+
</shelter>
|
160
|
+
<shelter>
|
161
|
+
<id>TX1410</id>
|
162
|
+
<name>Sisyphus Rescue</name>
|
163
|
+
<city>Houston</city>
|
164
|
+
<state>TX</state>
|
165
|
+
<phone/>
|
166
|
+
</shelter>
|
167
|
+
<shelter>
|
168
|
+
<id>TX1359</id>
|
169
|
+
<name>Adopt A Rescued Friend</name>
|
170
|
+
<city>Houston</city>
|
171
|
+
<state>TX</state>
|
172
|
+
<phone>713-854-1216</phone>
|
173
|
+
</shelter>
|
174
|
+
<shelter>
|
175
|
+
<id>TX1259</id>
|
176
|
+
<name>Dakota Rescue</name>
|
177
|
+
<city>Houston</city>
|
178
|
+
<state>TX</state>
|
179
|
+
<phone/>
|
180
|
+
</shelter>
|
181
|
+
<shelter>
|
182
|
+
<id>TX917</id>
|
183
|
+
<name>Texas Old English Sheepdog Rescue, Inc.</name>
|
184
|
+
<city>Houston</city>
|
185
|
+
<state>TX</state>
|
186
|
+
<phone/>
|
187
|
+
</shelter>
|
188
|
+
</shelters>
|
189
|
+
</petfinder>
|
data/test/helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'shoulda'
|
4
|
+
require 'fakeweb'
|
5
|
+
|
6
|
+
begin require 'redgreen'; rescue LoadError; end
|
7
|
+
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
+
require 'petfinder'
|
11
|
+
|
12
|
+
class Test::Unit::TestCase
|
13
|
+
end
|
14
|
+
|
15
|
+
def fixture_file(filename)
|
16
|
+
return '' if filename == ''
|
17
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
18
|
+
File.read(file_path)
|
19
|
+
end
|
20
|
+
|
21
|
+
def stub_get(url, filename, options={})
|
22
|
+
opts = {:body => fixture_file(filename)}.merge(options)
|
23
|
+
|
24
|
+
FakeWeb.register_uri(:get, url, opts)
|
25
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestPetfinder < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "When working with the Petfinder API" do
|
6
|
+
setup do
|
7
|
+
@client = Petfinder::Client.new('1234567', 'mysekrit')
|
8
|
+
end
|
9
|
+
|
10
|
+
should "get a random pet" do
|
11
|
+
stub_get("http://api.petfinder.com/pet.getRandom?key=1234567&output=full", "pet.xml")
|
12
|
+
pet = @client.random_pet
|
13
|
+
assert_equal 'Charlie', pet.name
|
14
|
+
end
|
15
|
+
|
16
|
+
should "get a specific pet by id" do
|
17
|
+
stub_get("http://api.petfinder.com/pet.get?key=1234567&id=123", "pet.xml")
|
18
|
+
pet = @client.pet(123)
|
19
|
+
assert_equal 'Charlie', pet.name
|
20
|
+
end
|
21
|
+
|
22
|
+
should "find pets matching a query" do
|
23
|
+
stub_get("http://api.petfinder.com/pet.find?key=1234567&animal=dog&location=77007", "pet_list.xml")
|
24
|
+
pets = @client.find_pets('dog', '77007')
|
25
|
+
assert_equal 'Petey', pets.first.name
|
26
|
+
end
|
27
|
+
|
28
|
+
should "get the list of breeds for the given animal type" do
|
29
|
+
stub_get("http://api.petfinder.com/breed.list?key=1234567&animal=horse", "breed_list.xml")
|
30
|
+
breeds = @client.breeds('horse')
|
31
|
+
assert_equal 'Appaloosa', breeds.first
|
32
|
+
end
|
33
|
+
|
34
|
+
should "get a specific shelter by id" do
|
35
|
+
stub_get("http://api.petfinder.com/shelter.get?key=1234567&id=123", "shelter.xml")
|
36
|
+
shelter = @client.shelter(123)
|
37
|
+
assert_equal 'Lucky Dog Rescue', shelter.name
|
38
|
+
end
|
39
|
+
|
40
|
+
should "find shelters matching a query" do
|
41
|
+
stub_get("http://api.petfinder.com/shelter.find?key=1234567&location=77007", "shelter_list.xml")
|
42
|
+
shelters = @client.find_shelters('77007')
|
43
|
+
assert_equal 'Pup Squad Animal Rescue', shelters.first.name
|
44
|
+
end
|
45
|
+
|
46
|
+
should "find shelters matching a breed" do
|
47
|
+
stub_get("http://api.petfinder.com/shelter.listByBreed?key=1234567&animal=horse&breed=arabian", "shelter_list.xml")
|
48
|
+
shelters = @client.find_shelters_by_breed('horse', 'arabian')
|
49
|
+
assert_equal 'Pup Squad Animal Rescue', shelters.first.name
|
50
|
+
end
|
51
|
+
|
52
|
+
should "get the list of pets available for the given shelter" do
|
53
|
+
stub_get("http://api.petfinder.com/shelter.getPets?key=1234567&id=123", "pet_list.xml")
|
54
|
+
pets = @client.shelter_pets(123)
|
55
|
+
assert_equal 'Petey', pets.first.name
|
56
|
+
end
|
57
|
+
|
58
|
+
should "get an authorization token" do
|
59
|
+
digest = @client.send(:digest_key_and_secret)
|
60
|
+
stub_get("http://api.petfinder.com/auth.getToken?key=1234567&sig=#{digest}", "auth.xml")
|
61
|
+
assert_equal '39038a000f404335d90bab019c0c7e2d', @client.token
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
end
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: petfinder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Eric Hutzelman
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-04-12 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: hashie
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 1
|
30
|
+
- 3
|
31
|
+
version: 0.1.3
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: httparty
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 5
|
44
|
+
- 0
|
45
|
+
version: 0.5.0
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: shoulda
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 2
|
57
|
+
- 10
|
58
|
+
- 1
|
59
|
+
version: 2.10.1
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: fakeweb
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 1
|
71
|
+
- 2
|
72
|
+
- 5
|
73
|
+
version: 1.2.5
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
description: Ruby gem wrapper for the Petfinder API
|
77
|
+
email: ehutzelman@gmail.com
|
78
|
+
executables: []
|
79
|
+
|
80
|
+
extensions: []
|
81
|
+
|
82
|
+
extra_rdoc_files:
|
83
|
+
- LICENSE
|
84
|
+
- README.rdoc
|
85
|
+
files:
|
86
|
+
- .document
|
87
|
+
- .gitignore
|
88
|
+
- LICENSE
|
89
|
+
- README.rdoc
|
90
|
+
- Rakefile
|
91
|
+
- VERSION
|
92
|
+
- lib/petfinder.rb
|
93
|
+
- lib/petfinder/client.rb
|
94
|
+
- test/fixtures/auth.xml
|
95
|
+
- test/fixtures/breed_list.xml
|
96
|
+
- test/fixtures/pet.xml
|
97
|
+
- test/fixtures/pet_list.xml
|
98
|
+
- test/fixtures/shelter.xml
|
99
|
+
- test/fixtures/shelter_list.xml
|
100
|
+
- test/helper.rb
|
101
|
+
- test/test_petfinder.rb
|
102
|
+
has_rdoc: true
|
103
|
+
homepage: http://github.com/ehutzelman/petfinder
|
104
|
+
licenses: []
|
105
|
+
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options:
|
108
|
+
- --charset=UTF-8
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
version: "0"
|
125
|
+
requirements: []
|
126
|
+
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 1.3.6
|
129
|
+
signing_key:
|
130
|
+
specification_version: 3
|
131
|
+
summary: Ruby gem wrapper for the Petfinder API
|
132
|
+
test_files:
|
133
|
+
- test/helper.rb
|
134
|
+
- test/test_petfinder.rb
|