petfinder-wrap 1.0.3.5 → 1.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc00dae7ebf51c9d7599d4b0b0686f1715b4aab9
4
- data.tar.gz: 8c4aee16fc7b2c0637312d32451fd0ce7576e7e3
3
+ metadata.gz: b729279226d673ca9c35950e91229ada36f12144
4
+ data.tar.gz: 842bc9e61d2313d8e854113a7303302eaaf6c497
5
5
  SHA512:
6
- metadata.gz: 0ca4a8657817948e9eaad99022115de9cf2581f263120476b2ad296e9752cd27310257d0fd116f6d8ed584e27fd2e4a745262097753c0cfd38b3fd55aaeb7372
7
- data.tar.gz: 616219478f3ebe3791e836fb5ee7739621540c3893e1396b2b282a8f19b8901e6acb8b87fd2cfa0c27828e5e2edb02d59170a2b6c57ecb0335108d11644a7315
6
+ metadata.gz: ac01f2a16a6a1c322e7532b4d66009f404fac52ef8977e7a976e90fee1fdc42ba2e167eaea1b4f9c4722effd75bc136c069685ff9e0efa7c43454e6b6ce6b189
7
+ data.tar.gz: 9514469cc125426604f98511d41eeb216ccaffde63b261037947e1105a830639c0f0e5ac2d8c528ada27d0592c940075b006ac3544fa097a3adf76328b095932
data/Gemfile CHANGED
@@ -4,3 +4,6 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in petfinder-wrap.gemspec
6
6
  gemspec
7
+
8
+ # Added at 2017-09-27 10:30:09 -0400 by pdeona:
9
+ gem "safe_yaml", "~> 1.0"
data/README.md CHANGED
@@ -2,10 +2,15 @@
2
2
 
3
3
  A simple gem for the Petfinder API using JSON responses and a traversal method.
4
4
 
5
+ Added in 1.0.4:
6
+ * `<#Client>.list_shelters_by_breed` => returns a list of shelter objects matching the passed in `Breed` object.
7
+
8
+ * All API endpoints have now been built out. Please submit issues or bugs to the link at the bottom of the page.
9
+
5
10
  Coming in the next release:
6
11
 
7
- * Options hashes (you rubes love options hashes)
8
- * <#Breed>.search_by instance method
12
+ * Options hashes (you rubes love options hashes) for sending in the optional parameters each API method allows
13
+
9
14
 
10
15
  ## Installation
11
16
 
@@ -7,7 +7,7 @@ require_relative 'petfinder/breed'
7
7
  require 'open-uri'
8
8
 
9
9
  module Petfinder
10
- VERSION = "1.0.3.5"
10
+ VERSION = "1.0.4"
11
11
 
12
12
  class Error < StandardError; end
13
13
 
@@ -1,6 +1,6 @@
1
1
  module Petfinder
2
2
  class Breed
3
-
3
+ attr_reader :animal, :name
4
4
  def initialize breed, animal
5
5
  @animal = animal
6
6
  @name = breed
@@ -110,7 +110,7 @@ module Petfinder
110
110
  if resp = JSON.parse(response)
111
111
  begin
112
112
  resp["petfinder"]["breeds"]["breed"].each do |breed|
113
- res << Petfinder::Breed.new(breed, resp["petfinder"]["breeds"]["@animal"])
113
+ res << Petfinder::Breed.new(breed["$t"], resp["petfinder"]["breeds"]["@animal"])
114
114
  end
115
115
  rescue NoMethodError => e
116
116
  puts e.message
@@ -121,5 +121,25 @@ module Petfinder
121
121
  end
122
122
  res
123
123
  end
124
+
125
+ def list_shelters_by_breed breed
126
+ list_shelters_by_breed_request = API_BASE_URI + \
127
+ "shelter.listByBreed?key=#{@api_key}&animal=#{breed.animal}&breed=#{breed.name}&format=json"
128
+ response = open(list_shelters_by_breed_request).read
129
+ res = []
130
+ if resp = JSON.parse(response)
131
+ begin
132
+ resp["petfinder"]["shelters"]["shelter"].each do |shelter|
133
+ res << Petfinder::Shelter.new(shelter)
134
+ end
135
+ rescue NoMethodError => e
136
+ puts e.message
137
+ puts "Invalid response received from API. Check your query."
138
+ end
139
+ else
140
+ raise Petfinder::Error "No valid JSON response received from API"
141
+ end
142
+ res
143
+ end
124
144
  end
125
145
  end
@@ -12,8 +12,6 @@ module Petfinder
12
12
 
13
13
  def get_pets
14
14
  res = Client.new.get_shelter_pets self
15
- res
16
15
  end
17
-
18
16
  end
19
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: petfinder-wrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3.5
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro De Ona
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-26 00:00:00.000000000 Z
11
+ date: 2017-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  version: '0'
136
136
  requirements: []
137
137
  rubyforge_project:
138
- rubygems_version: 2.6.11
138
+ rubygems_version: 2.6.12
139
139
  signing_key:
140
140
  specification_version: 4
141
141
  summary: A Ruby wrapper for the Petfinder RESTful API.