petfinder 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|