petfinder-wrap 1.0.4 → 1.0.4.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.
- checksums.yaml +4 -4
- data/lib/petfinder-wrap.rb +1 -1
- data/lib/petfinder/breed.rb +4 -4
- data/lib/petfinder/client.rb +30 -48
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 422fe5f83754d0ad8cd64a7bf6aa0695d2508da2
|
4
|
+
data.tar.gz: 79e329e40b744b16fd525dc3dc083eb989887bf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fc59bed66043a984c75683e5c04ebbf8b9f5fbd1b145886b78e58735a5bff3f37e07adb6af698a9383131a02212f90da142b85a4fb16f782c4067f8351b1444
|
7
|
+
data.tar.gz: 6619711f9bee04a2b5069e2e13d0ece25731f79913d1f53dc6a19c12d049b2c6e5974ad2fb71c9489831aafaf8af1bdaed622eaf0b711947869221882249dbf7
|
data/lib/petfinder-wrap.rb
CHANGED
data/lib/petfinder/breed.rb
CHANGED
data/lib/petfinder/client.rb
CHANGED
@@ -36,18 +36,7 @@ module Petfinder
|
|
36
36
|
find_pets_request = API_BASE_URI + "pet.find?key=#{@api_key}&animal=#{animal}&location=#{zip_code}&output=basic&format=json"
|
37
37
|
# p find_pets_request
|
38
38
|
response = open(find_pets_request).read
|
39
|
-
|
40
|
-
if resp = JSON.parse(response)
|
41
|
-
begin
|
42
|
-
resp["petfinder"]["pets"].each do |pet|
|
43
|
-
res << Petfinder::Pet.new(pet[1][0])
|
44
|
-
end
|
45
|
-
rescue NoMethodError => e
|
46
|
-
puts e.message
|
47
|
-
puts "Invalid response received from API. Check your query"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
res
|
39
|
+
parse_multiple response, "pet"
|
51
40
|
end
|
52
41
|
|
53
42
|
def get_shelter id
|
@@ -72,52 +61,23 @@ module Petfinder
|
|
72
61
|
def get_shelter_pets shelter
|
73
62
|
get_shelter_pets = API_BASE_URI + "shelter.getPets?key=#{@api_key}&id=#{shelter.id}&output=basic&format=json"
|
74
63
|
response = open(get_shelter_pets).read
|
75
|
-
|
76
|
-
if resp = JSON.parse(response)
|
77
|
-
begin
|
78
|
-
resp["petfinder"]["pets"]["pet"].each do |pet|
|
79
|
-
res << Pet.new(pet)
|
80
|
-
end
|
81
|
-
rescue NoMethodError => e
|
82
|
-
puts e.message
|
83
|
-
puts "Invalid response received from API. Check your query"
|
84
|
-
end
|
85
|
-
res
|
86
|
-
end
|
64
|
+
parse_multiple response, "pet"
|
87
65
|
end
|
88
66
|
|
89
67
|
def find_shelters location
|
90
68
|
find_shelters_request = API_BASE_URI + "shelter.find?key=#{@api_key}&location=#{location}&format=json"
|
91
69
|
response = open(find_shelters_request).read
|
92
|
-
|
93
|
-
if resp = JSON.parse(response)
|
94
|
-
begin
|
95
|
-
resp["petfinder"]["shelters"]["shelter"].each do |shelter|
|
96
|
-
res << Shelter.new(shelter)
|
97
|
-
end
|
98
|
-
rescue NoMethodError => e
|
99
|
-
puts e.message
|
100
|
-
puts "Invalid response received from API. Check your query"
|
101
|
-
end
|
102
|
-
end
|
103
|
-
res
|
70
|
+
parse_multiple response, "shelter"
|
104
71
|
end
|
105
72
|
|
106
73
|
def breeds animal
|
107
74
|
list_breeds_request = API_BASE_URI + "breed.list?key=#{@api_key}&animal=#{animal}&format=json"
|
108
75
|
response = open(list_breeds_request).read
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
end
|
115
|
-
rescue NoMethodError => e
|
116
|
-
puts e.message
|
117
|
-
puts "Invalid response received from API. Check your query."
|
118
|
-
end
|
119
|
-
else
|
120
|
-
raise Petfinder::Error "No valid JSON response from API"
|
76
|
+
resp = JSON.parse(response)
|
77
|
+
animal = (resp)["petfinder"]["breeds"]["@animal"] unless resp
|
78
|
+
res = parse_multiple response, "breed"
|
79
|
+
res.each do |breed|
|
80
|
+
breed.animal = animal
|
121
81
|
end
|
122
82
|
res
|
123
83
|
end
|
@@ -141,5 +101,27 @@ module Petfinder
|
|
141
101
|
end
|
142
102
|
res
|
143
103
|
end
|
104
|
+
|
105
|
+
private
|
106
|
+
|
107
|
+
def parse_multiple response, type
|
108
|
+
res = []
|
109
|
+
types = type.to_s + "s"
|
110
|
+
if resp = JSON.parse(response)
|
111
|
+
begin
|
112
|
+
resp["petfinder"]["#{types}"]["#{type}"].each do |t|
|
113
|
+
ruby = "Petfinder::#{type.capitalize}.new(t)"
|
114
|
+
res << eval(ruby)
|
115
|
+
end
|
116
|
+
rescue NoMethodError => e
|
117
|
+
puts e.message
|
118
|
+
puts "Invalid response received from API. Check your query."
|
119
|
+
end
|
120
|
+
else
|
121
|
+
raise Petfinder::Error "No valid JSON response from API"
|
122
|
+
end
|
123
|
+
res
|
124
|
+
end
|
125
|
+
|
144
126
|
end
|
145
127
|
end
|