rentjuicer 0.5.1 → 0.6.0
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/README.rdoc +8 -1
- data/VERSION +1 -1
- data/lib/rentjuicer/client.rb +14 -0
- data/lib/rentjuicer/lead.rb +1 -1
- data/lib/rentjuicer/listings.rb +2 -2
- data/lib/rentjuicer/neighborhoods.rb +6 -2
- data/lib/rentjuicer/response.rb +2 -2
- data/rentjuicer.gemspec +2 -2
- data/spec/rentjuicer/error_spec.rb +7 -1
- data/spec/rentjuicer/response_spec.rb +10 -10
- metadata +5 -5
data/README.rdoc
CHANGED
@@ -34,6 +34,9 @@ Rentjuicer::Response also implements some method_missing so any methods on respo
|
|
34
34
|
|
35
35
|
@results.neighborhoods == @results.body.neighborhoods
|
36
36
|
|
37
|
+
Rentjuicer::Response by default does not raise an exception if the API errors, but the success? method will return false.
|
38
|
+
There are some methods that you can call that will trigger exceptions (typically the ! methods, see below).
|
39
|
+
|
37
40
|
In the rest of the README I will be accessing the methods off of response as I think it is cleaner to use and read.
|
38
41
|
|
39
42
|
|
@@ -53,7 +56,11 @@ To get a list of your neighborhoods in rentjuice you can access the neighborhood
|
|
53
56
|
|
54
57
|
@response.neighborhoods contains an array of Rentjuice neighborhood objects in Hashie::Rash format
|
55
58
|
|
56
|
-
|
59
|
+
If the request is invalid a Rentjuicer::Error exception will be not be raised but the @response.success? will return false.
|
60
|
+
To trigger an error to raise if the request is invalid call:
|
61
|
+
|
62
|
+
@response = @neighborhoods.find_all!
|
63
|
+
|
57
64
|
|
58
65
|
|
59
66
|
=== Adding a lead to your account
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/rentjuicer/client.rb
CHANGED
@@ -11,5 +11,19 @@ module Rentjuicer
|
|
11
11
|
self.class.base_uri "api.rentjuice.com/#{self.api_key}"
|
12
12
|
end
|
13
13
|
|
14
|
+
def process_get(resource, params = {})
|
15
|
+
begin
|
16
|
+
unless params.blank?
|
17
|
+
self.class.get(resource, :query => params)
|
18
|
+
else
|
19
|
+
self.class.get(resource)
|
20
|
+
end
|
21
|
+
rescue Timeout::Error
|
22
|
+
{"status" => "timeout", "code" => "0", "message" => "Rentjuice API is timing out."}
|
23
|
+
rescue Exception
|
24
|
+
{"status" => "busted", "code" => "0", "message" => "Rentjuice API is erroring."}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
14
28
|
end
|
15
29
|
end
|
data/lib/rentjuicer/lead.rb
CHANGED
@@ -10,7 +10,7 @@ module Rentjuicer
|
|
10
10
|
|
11
11
|
def create(name, params = {}, raise_error = false)
|
12
12
|
params.merge!(:name => name)
|
13
|
-
Response.new(self.client.
|
13
|
+
Response.new(self.client.process_get(resource, params), raise_error)
|
14
14
|
end
|
15
15
|
|
16
16
|
def create!(name, params = {})
|
data/lib/rentjuicer/listings.rb
CHANGED
@@ -12,7 +12,7 @@ module Rentjuicer
|
|
12
12
|
limit = params[:limit] || 20
|
13
13
|
params[:order_by] ||= "rent"
|
14
14
|
params[:order_direction] ||= "asc"
|
15
|
-
SearchResponse.new(self.client.
|
15
|
+
SearchResponse.new(self.client.process_get(resource, params), limit)
|
16
16
|
end
|
17
17
|
|
18
18
|
def featured(params = {})
|
@@ -21,7 +21,7 @@ module Rentjuicer
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def find_by_id(listing_id)
|
24
|
-
response = SearchResponse.new(self.client.
|
24
|
+
response = SearchResponse.new(self.client.process_get(resource, {:rentjuice_id => listing_id}))
|
25
25
|
(response.success? && response.properties.size > 0) ? response.properties.first : nil
|
26
26
|
end
|
27
27
|
|
@@ -8,8 +8,12 @@ module Rentjuicer
|
|
8
8
|
self.resource = "/neighborhoods.json"
|
9
9
|
end
|
10
10
|
|
11
|
-
def find_all
|
12
|
-
Response.new(self.client.
|
11
|
+
def find_all(raise_error = false)
|
12
|
+
Response.new(self.client.process_get(resource), raise_error)
|
13
|
+
end
|
14
|
+
|
15
|
+
def find_all!
|
16
|
+
find_all(true)
|
13
17
|
end
|
14
18
|
|
15
19
|
end
|
data/lib/rentjuicer/response.rb
CHANGED
@@ -3,13 +3,13 @@ module Rentjuicer
|
|
3
3
|
|
4
4
|
attr_accessor :body
|
5
5
|
|
6
|
-
def initialize(response, raise_error =
|
6
|
+
def initialize(response, raise_error = false)
|
7
7
|
rash_response(response)
|
8
8
|
raise Error.new(self.body.code, self.body.message) if !success? && raise_error
|
9
9
|
end
|
10
10
|
|
11
11
|
def success?
|
12
|
-
self.body.status == "ok"
|
12
|
+
self.body && !self.body.blank? && self.body.respond_to?(:status) && self.body.status == "ok"
|
13
13
|
end
|
14
14
|
|
15
15
|
def method_missing(method_name, *args)
|
data/rentjuicer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rentjuicer}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["tcocca"]
|
12
|
-
s.date = %q{2011-04-
|
12
|
+
s.date = %q{2011-04-21}
|
13
13
|
s.description = %q{Ruby API wrapper for rentjuice.com built with httparty}
|
14
14
|
s.email = %q{tom.cocca@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -8,9 +8,15 @@ describe Rentjuicer::Error do
|
|
8
8
|
mock_get(@neighborhoods.resource, 'error.json')
|
9
9
|
end
|
10
10
|
|
11
|
-
it "should return an error" do
|
11
|
+
it "should not return an error" do
|
12
12
|
lambda {
|
13
13
|
@neighborhoods.find_all
|
14
|
+
}.should_not raise_exception
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return an error" do
|
18
|
+
lambda {
|
19
|
+
@neighborhoods.find_all!
|
14
20
|
}.should raise_exception(Rentjuicer::Error, "Rentjuicer Error: Invalid API key. (code: 1)")
|
15
21
|
end
|
16
22
|
|
@@ -9,26 +9,26 @@ describe Rentjuicer::Response do
|
|
9
9
|
mock_get(@neighborhoods.resource, 'error.json')
|
10
10
|
end
|
11
11
|
|
12
|
-
it "should raise an exception" do
|
12
|
+
it "should not raise an exception" do
|
13
13
|
lambda {
|
14
14
|
@neighborhoods.find_all
|
15
|
-
}.should raise_exception
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context "passing raise_errors = false" do
|
20
|
-
it "should not raise errors when raise_errors is false" do
|
21
|
-
lambda {
|
22
|
-
Rentjuicer::Response.new(httparty_get('/neighborhoods.json', 'error.json'), false)
|
23
15
|
}.should_not raise_exception
|
24
16
|
end
|
25
17
|
|
26
18
|
it "should not be a success" do
|
27
|
-
@response = Rentjuicer::Response.new(httparty_get('/neighborhoods.json', 'error.json')
|
19
|
+
@response = Rentjuicer::Response.new(httparty_get('/neighborhoods.json', 'error.json'))
|
28
20
|
@response.success?.should be_false
|
29
21
|
end
|
30
22
|
end
|
31
23
|
|
24
|
+
context "passing raise_errors = true" do
|
25
|
+
it "should raise errors when raise_errors is false" do
|
26
|
+
lambda {
|
27
|
+
Rentjuicer::Response.new(httparty_get('/neighborhoods.json', 'error.json'), true)
|
28
|
+
}.should raise_exception(Rentjuicer::Error, "Rentjuicer Error: Invalid API key. (code: 1)")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
32
|
context "should return a response" do
|
33
33
|
before do
|
34
34
|
@rentjuicer = new_rentjuicer
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rentjuicer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 0.6.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- tcocca
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-21 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|