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 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