petfinder 0.1.2 → 0.1.3
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/Gemfile +1 -7
- data/Gemfile.lock +29 -22
- data/Rakefile +1 -2
- data/lib/petfinder.rb +0 -1
- data/lib/petfinder/client.rb +20 -20
- data/lib/petfinder/version.rb +2 -2
- data/petfinder.gemspec +13 -14
- metadata +90 -87
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,30 +1,37 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
petfinder (0.1.2)
|
5
|
+
happymapper
|
6
|
+
httparty
|
7
|
+
|
1
8
|
GEM
|
2
9
|
remote: http://rubygems.org/
|
3
10
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
libxml-ruby (
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
rspec-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
rspec-
|
20
|
-
|
21
|
-
|
11
|
+
diff-lcs (1.1.3)
|
12
|
+
fakeweb (1.3.0)
|
13
|
+
happymapper (0.4.0)
|
14
|
+
libxml-ruby (~> 2.0)
|
15
|
+
httparty (0.9.0)
|
16
|
+
multi_json (~> 1.0)
|
17
|
+
multi_xml
|
18
|
+
libxml-ruby (2.3.3)
|
19
|
+
multi_json (1.3.6)
|
20
|
+
multi_xml (0.5.1)
|
21
|
+
rspec (2.11.0)
|
22
|
+
rspec-core (~> 2.11.0)
|
23
|
+
rspec-expectations (~> 2.11.0)
|
24
|
+
rspec-mocks (~> 2.11.0)
|
25
|
+
rspec-core (2.11.1)
|
26
|
+
rspec-expectations (2.11.3)
|
27
|
+
diff-lcs (~> 1.1.3)
|
28
|
+
rspec-mocks (2.11.2)
|
22
29
|
|
23
30
|
PLATFORMS
|
24
31
|
ruby
|
25
32
|
|
26
33
|
DEPENDENCIES
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
rspec
|
34
|
+
bundler
|
35
|
+
fakeweb
|
36
|
+
petfinder!
|
37
|
+
rspec
|
data/Rakefile
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
require 'rake'
|
2
|
-
require 'rake/rdoctask'
|
3
2
|
require 'rspec'
|
4
3
|
require 'rspec/core/rake_task'
|
5
4
|
require 'bundler'
|
6
5
|
|
7
6
|
Bundler::GemHelper.install_tasks
|
8
7
|
|
9
|
-
|
8
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
10
9
|
spec.pattern = "spec/**/*_spec.rb"
|
11
10
|
end
|
12
11
|
|
data/lib/petfinder.rb
CHANGED
data/lib/petfinder/client.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
module Petfinder
|
2
|
-
|
2
|
+
|
3
3
|
class Client
|
4
4
|
include HTTParty
|
5
5
|
format :xml
|
6
6
|
base_uri "http://api.petfinder.com"
|
7
|
-
|
7
|
+
|
8
8
|
def initialize(api_key = Petfinder.api_key, api_secret = Petfinder.api_secret)
|
9
9
|
@api_key, @api_secret = api_key, api_secret
|
10
|
-
raise "API key is required"
|
10
|
+
raise "API key is required" unless @api_key
|
11
11
|
|
12
12
|
self.class.default_params :key => api_key
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
# Valid animal types: barnyard, bird, cat, dog, horse, pig, reptile, smallfurry
|
16
16
|
def breeds(animal_type)
|
17
17
|
response = perform_get("/breed.list", :query => {:animal => animal_type})
|
18
18
|
Breeds.parse(response, :single => true).breeds
|
19
|
-
end
|
19
|
+
end
|
20
20
|
|
21
21
|
def pet(id)
|
22
22
|
response = perform_get("/pet.get", :query => {:id => id})
|
23
23
|
Pet.parse(response, :single => true)
|
24
24
|
end
|
25
|
-
|
26
|
-
# Options available: animal, breed, size, sex, location, shelterid
|
25
|
+
|
26
|
+
# Options available: animal, breed, size, sex, location, shelterid
|
27
27
|
def random_pet(options = {})
|
28
28
|
query = options.merge(:output => 'full')
|
29
29
|
response = perform_get("/pet.getRandom", :query => query)
|
30
30
|
Pet.parse(response, :single => true)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
# Options available: breed, size, sex, age, offset, count
|
34
34
|
def find_pets(animal_type, location, options = {})
|
35
35
|
query = options.merge(:animal => animal_type, :location => location)
|
@@ -41,7 +41,7 @@ module Petfinder
|
|
41
41
|
response = perform_get("/shelter.get", :query => {:id => id})
|
42
42
|
Shelter.parse(response, :single => true)
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
# Options available: name, offset, count
|
46
46
|
def find_shelters(location, options = {})
|
47
47
|
query = options.merge(:location => location)
|
@@ -49,29 +49,29 @@ module Petfinder
|
|
49
49
|
Shelter.parse(response)
|
50
50
|
end
|
51
51
|
|
52
|
-
# Options available: offset, count
|
52
|
+
# Options available: offset, count
|
53
53
|
def find_shelters_by_breed(animal_type, breed, options = {})
|
54
54
|
query = options.merge(:animal => animal_type, :breed => breed)
|
55
55
|
response = perform_get("/shelter.listByBreed", :query => query)
|
56
56
|
Shelter.parse(response)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
# Options available: status, offset, count
|
60
60
|
def shelter_pets(id, options = {})
|
61
61
|
query = options.merge(:id => id)
|
62
62
|
response = perform_get("/shelter.getPets", :query => query)
|
63
63
|
Pet.parse(response)
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
def token
|
67
67
|
response = perform_get("/auth.getToken", :query => {:sig => digest_key_and_secret})
|
68
68
|
Auth.parse(response, :single => true).token
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
private
|
72
|
-
|
73
|
-
def digest_key_and_secret
|
74
|
-
raise "API secret is required"
|
72
|
+
|
73
|
+
def digest_key_and_secret
|
74
|
+
raise "API secret is required" unless @api_secret
|
75
75
|
Digest::MD5.hexdigest(@api_secret + "key=#{@api_key}")
|
76
76
|
end
|
77
77
|
|
@@ -80,7 +80,7 @@ module Petfinder
|
|
80
80
|
raise_errors(response)
|
81
81
|
response.body
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
def raise_errors(response)
|
85
85
|
if response.code.to_i == 200
|
86
86
|
status = response['petfinder']['header']['status']
|
@@ -89,7 +89,7 @@ module Petfinder
|
|
89
89
|
raise RuntimeError.new("Invalid response from server: #{response.code}")
|
90
90
|
end
|
91
91
|
end
|
92
|
-
|
92
|
+
|
93
93
|
end
|
94
|
-
|
95
|
-
end
|
94
|
+
|
95
|
+
end
|
data/lib/petfinder/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Petfinder
|
2
|
-
VERSION = "0.1.
|
3
|
-
end
|
2
|
+
VERSION = "0.1.3"
|
3
|
+
end
|
data/petfinder.gemspec
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
$:.unshift lib unless $:.include?(lib)
|
4
|
-
|
5
|
-
require 'petfinder/version'
|
2
|
+
require File.expand_path("../lib/petfinder/version", __FILE__)
|
6
3
|
|
7
4
|
Gem::Specification.new do |s|
|
8
5
|
s.name = "petfinder"
|
@@ -14,18 +11,20 @@ Gem::Specification.new do |s|
|
|
14
11
|
s.summary = "Ruby gem wrapper for the Petfinder API."
|
15
12
|
s.description = "REST client for the Petfinder published API."
|
16
13
|
|
17
|
-
|
18
|
-
s.add_dependency
|
19
|
-
s.
|
20
|
-
s.add_development_dependency
|
14
|
+
# Dependencies (pullled into Gemfile with "gemspec")
|
15
|
+
s.add_dependency "happymapper"
|
16
|
+
s.add_dependency "httparty"
|
17
|
+
s.add_development_dependency "rspec"
|
18
|
+
s.add_development_dependency "fakeweb"
|
19
|
+
s.add_development_dependency "bundler"
|
21
20
|
|
22
|
-
# Standard
|
21
|
+
# Standard setup that should not need modification
|
23
22
|
s.required_rubygems_version = ">= 1.3.6"
|
24
|
-
s.platform
|
25
|
-
s.
|
26
|
-
s.files
|
27
|
-
s.test_files
|
28
|
-
s.executables
|
23
|
+
s.platform = Gem::Platform::RUBY
|
24
|
+
s.require_path = 'lib'
|
25
|
+
s.files = `git ls-files`.split("\n")
|
26
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
27
|
+
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
29
28
|
|
30
29
|
s.extra_rdoc_files = %w[README.rdoc LICENSE]
|
31
30
|
s.rdoc_options = ["--charset=UTF-8"]
|
metadata
CHANGED
@@ -1,93 +1,105 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: petfinder
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
version: 0.1.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Eric Hutzelman
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-09-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: happymapper
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
- 3
|
31
|
-
- 2
|
32
|
-
version: 0.3.2
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: httparty
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: httparty
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
- 0
|
45
|
-
- 5
|
46
|
-
- 0
|
47
|
-
version: 0.5.0
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
48
38
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rspec
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
54
49
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
- 2
|
60
|
-
- 0
|
61
|
-
- pre
|
62
|
-
version: 2.0.pre
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
63
54
|
type: :development
|
64
|
-
|
65
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
66
63
|
name: fakeweb
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
67
71
|
prerelease: false
|
68
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
73
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: bundler
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
78
86
|
type: :development
|
79
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
80
94
|
description: REST client for the Petfinder published API.
|
81
|
-
email:
|
95
|
+
email:
|
82
96
|
- ehutzelman@gmail.com
|
83
97
|
executables: []
|
84
|
-
|
85
98
|
extensions: []
|
86
|
-
|
87
|
-
extra_rdoc_files:
|
99
|
+
extra_rdoc_files:
|
88
100
|
- README.rdoc
|
89
101
|
- LICENSE
|
90
|
-
files:
|
102
|
+
files:
|
91
103
|
- .gitignore
|
92
104
|
- .rspec
|
93
105
|
- Gemfile
|
@@ -111,41 +123,32 @@ files:
|
|
111
123
|
- spec/fixtures/shelter_list.xml
|
112
124
|
- spec/petfinder_spec.rb
|
113
125
|
- spec/spec_helper.rb
|
114
|
-
has_rdoc: true
|
115
126
|
homepage: http://github.com/ehutzelman/petfinder
|
116
127
|
licenses: []
|
117
|
-
|
118
128
|
post_install_message:
|
119
|
-
rdoc_options:
|
129
|
+
rdoc_options:
|
120
130
|
- --charset=UTF-8
|
121
|
-
require_paths:
|
131
|
+
require_paths:
|
122
132
|
- lib
|
123
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
124
134
|
none: false
|
125
|
-
requirements:
|
126
|
-
- -
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
129
|
-
|
130
|
-
version: "0"
|
131
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
140
|
none: false
|
133
|
-
requirements:
|
134
|
-
- -
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
segments:
|
137
|
-
- 1
|
138
|
-
- 3
|
139
|
-
- 6
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
140
144
|
version: 1.3.6
|
141
145
|
requirements: []
|
142
|
-
|
143
146
|
rubyforge_project: petfinder
|
144
|
-
rubygems_version: 1.
|
147
|
+
rubygems_version: 1.8.24
|
145
148
|
signing_key:
|
146
149
|
specification_version: 3
|
147
150
|
summary: Ruby gem wrapper for the Petfinder API.
|
148
|
-
test_files:
|
151
|
+
test_files:
|
149
152
|
- spec/fixtures/auth.xml
|
150
153
|
- spec/fixtures/breed_list.xml
|
151
154
|
- spec/fixtures/pet.xml
|