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.
@@ -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 &amp; 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