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 CHANGED
@@ -1,9 +1,3 @@
1
1
  source :rubygems
2
2
 
3
- gem 'httparty', '~>0.5.0'
4
- gem 'happymapper', '~>0.3.2'
5
-
6
- group :development do
7
- gem 'fakeweb', '~>1.2.5'
8
- gem 'rspec', '~>2.0.pre'
9
- end
3
+ gemspec
@@ -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
- crack (0.1.6)
5
- diff-lcs (1.1.2)
6
- fakeweb (1.2.8)
7
- happymapper (0.3.2)
8
- libxml-ruby (~> 1.1.3)
9
- httparty (0.5.2)
10
- crack (= 0.1.6)
11
- libxml-ruby (1.1.4)
12
- rspec (2.0.0.beta.22)
13
- rspec-core (= 2.0.0.beta.22)
14
- rspec-expectations (= 2.0.0.beta.22)
15
- rspec-mocks (= 2.0.0.beta.22)
16
- rspec-core (2.0.0.beta.22)
17
- rspec-expectations (2.0.0.beta.22)
18
- diff-lcs (>= 1.1.2)
19
- rspec-mocks (2.0.0.beta.22)
20
- rspec-core (= 2.0.0.beta.22)
21
- rspec-expectations (= 2.0.0.beta.22)
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
- fakeweb (~> 1.2.5)
28
- happymapper (~> 0.3.2)
29
- httparty (~> 0.5.0)
30
- rspec (~> 2.0.pre)
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
- Rspec::Core::RakeTask.new(:spec) do |spec|
8
+ RSpec::Core::RakeTask.new(:spec) do |spec|
10
9
  spec.pattern = "spec/**/*_spec.rb"
11
10
  end
12
11
 
@@ -9,7 +9,6 @@ require 'petfinder/shelter'
9
9
  require 'petfinder/auth'
10
10
 
11
11
  module Petfinder
12
- VERSION = '0.1.1'
13
12
 
14
13
  class PetfinderError < StandardError; end
15
14
 
@@ -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" if @api_key.blank?
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" if @api_secret.blank?
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
@@ -1,3 +1,3 @@
1
1
  module Petfinder
2
- VERSION = "0.1.2"
3
- end
2
+ VERSION = "0.1.3"
3
+ end
@@ -1,8 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib/', __FILE__)
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
- s.add_dependency('happymapper', ["~> 0.3.2"])
18
- s.add_dependency('httparty', ["~> 0.5.0"])
19
- s.add_development_dependency('rspec', ["~> 2.0.pre"])
20
- s.add_development_dependency('fakeweb', ["~> 1.2.5"])
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 = Gem::Platform::RUBY
25
- s.require_paths = ["lib"]
26
- s.files = `git ls-files`.split("\n")
27
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
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
- prerelease: false
5
- segments:
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
- date: 2010-09-24 00:00:00 -05:00
18
- default_executable:
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
- prerelease: false
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
- segments:
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- segments:
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- segments:
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
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
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
- requirement: &id004 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
69
73
  none: false
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- segments:
74
- - 1
75
- - 2
76
- - 5
77
- version: 1.2.5
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
- version_requirements: *id004
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
- segments:
129
- - 0
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.3.7
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