user_reviews 0.0.9 → 0.0.10
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.
- checksums.yaml +7 -0
- data/Gemfile.lock +5 -5
- data/lib/providers/citysearch/api.rb +2 -2
- data/lib/providers/citysearch/business.rb +13 -4
- data/lib/providers/yelp/api.rb +1 -4
- data/lib/providers/yelp/business.rb +12 -9
- data/lib/user_reviews/version.rb +1 -1
- data/spec/providers/citysearch/business_spec.rb +21 -10
- data/spec/providers/yelp/business_spec.rb +19 -9
- metadata +15 -54
- data/.pairs +0 -8
- data/lib/providers/citysearch_reviews/business.rb +0 -23
- data/lib/providers/citysearch_reviews/review.rb +0 -16
- data/lib/providers/citysearch_reviews_api.rb +0 -72
- data/lib/providers/google_reviews/business.rb +0 -21
- data/lib/providers/google_reviews/review.rb +0 -24
- data/lib/providers/google_reviews_api.rb +0 -73
- data/lib/providers/yelp_reviews/business.rb +0 -29
- data/lib/providers/yelp_reviews/review.rb +0 -14
- data/lib/providers/yelp_reviews_api.rb +0 -81
- data/scripts/uploadgem.sh +0 -7
- data/spec/providers/citysearch_reviews/business_spec.rb +0 -31
- data/spec/providers/citysearch_reviews_api_spec.rb +0 -44
- data/spec/providers/google_reviews/business_spec.rb +0 -30
- data/spec/providers/google_reviews_api_spec.rb +0 -56
- data/spec/providers/yelp_reviews/business_spec.rb +0 -28
- data/spec/providers/yelp_reviews_api_spec.rb +0 -68
- data/user_reviews-0.0.1.gem +0 -0
- data/user_reviews-0.0.2.gem +0 -0
- data/user_reviews-0.0.3.gem +0 -0
- data/user_reviews-0.0.4.gem +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ff626384a6cb904aa7c49f45af2b1ae4cc342923
|
4
|
+
data.tar.gz: 46304c6ec33cabbf82c818da12da07aa99276728
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2234932b7f9db9beb2a9c3df359d6060326a4a5d0a54fb7a0a757c2832c9f814be2f51a5e31bcb7ddc5e6942c28f9ee1d0bb4090f4ae08ca97dd30fff5dff2e9
|
7
|
+
data.tar.gz: a499b86c787fc89871dc0803ec8402ab5c5fb3ac9d897f5f22fc6033ca1de51ddb7fcf58db5bef39b6dedfd23f156e9510e6ed036c51984d7308a83853fbf56b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
user_reviews (0.0.
|
4
|
+
user_reviews (0.0.10)
|
5
5
|
activesupport (~> 3.2.11)
|
6
6
|
httparty
|
7
7
|
json
|
@@ -16,14 +16,14 @@ GEM
|
|
16
16
|
multi_json (~> 1.0)
|
17
17
|
coderay (1.0.8)
|
18
18
|
diff-lcs (1.1.3)
|
19
|
-
httparty (0.
|
19
|
+
httparty (0.11.0)
|
20
20
|
multi_json (~> 1.0)
|
21
21
|
multi_xml (>= 0.5.2)
|
22
|
-
i18n (0.6.
|
22
|
+
i18n (0.6.1)
|
23
23
|
json (1.7.7)
|
24
24
|
method_source (0.8.1)
|
25
|
-
multi_json (1.
|
26
|
-
multi_xml (0.5.
|
25
|
+
multi_json (1.8.0)
|
26
|
+
multi_xml (0.5.5)
|
27
27
|
oauth (0.4.7)
|
28
28
|
pry (0.9.11.4)
|
29
29
|
coderay (~> 1.0.5)
|
@@ -46,9 +46,9 @@ module Providers
|
|
46
46
|
|
47
47
|
def parse_business_results(json)
|
48
48
|
result = []
|
49
|
-
return result if json.nil? || json["results"].nil?
|
49
|
+
return result if json.nil? || json.parsed_response.nil? || json.parsed_response["results"].nil?
|
50
50
|
|
51
|
-
json = json["results"]
|
51
|
+
json = json.parsed_response["results"]
|
52
52
|
json["locations"].each do |e|
|
53
53
|
result.push(Providers::Citysearch::Business.build_business(e))
|
54
54
|
end
|
@@ -1,22 +1,31 @@
|
|
1
1
|
module Providers
|
2
2
|
module Citysearch
|
3
3
|
class Business
|
4
|
-
attr_accessor :name, :address, :reference, :average_rating, :total_reviews
|
4
|
+
attr_accessor :name, :address, :reference, :average_rating, :total_reviews, :url
|
5
5
|
|
6
6
|
def self.build_business(node)
|
7
|
-
return nil if
|
7
|
+
return nil if node.nil? ||
|
8
|
+
node["name"].nil? ||
|
9
|
+
node["address"].nil? ||
|
10
|
+
node["user_review_count"].nil? ||
|
11
|
+
node["id"].nil? ||
|
12
|
+
node["rating"].nil? ||
|
13
|
+
node["profile"].nil?
|
14
|
+
|
8
15
|
new(node)
|
9
16
|
end
|
10
17
|
|
11
18
|
private
|
12
19
|
|
13
20
|
def initialize(node)
|
21
|
+
|
14
22
|
@name = node["name"]
|
15
23
|
full_address = node["address"]
|
16
24
|
@address = [full_address["street"], full_address["city"], full_address["state"], full_address["postal_code"]].join(" ")
|
17
25
|
@reference = node["id"]
|
18
|
-
@total_reviews = node[
|
19
|
-
@
|
26
|
+
@total_reviews = node["user_review_count"]
|
27
|
+
@url = node["profile"]
|
28
|
+
@average_rating = node["rating"]
|
20
29
|
end
|
21
30
|
end
|
22
31
|
end
|
data/lib/providers/yelp/api.rb
CHANGED
@@ -52,10 +52,7 @@ module Providers
|
|
52
52
|
|
53
53
|
def parse_businesses(business_list)
|
54
54
|
result = []
|
55
|
-
return result if business_list.nil? ||
|
56
|
-
business_list.empty? ||
|
57
|
-
business_list["location"].nil? ||
|
58
|
-
business_list["location"]["display_address"].nil?
|
55
|
+
return result if business_list.nil? || business_list.empty?
|
59
56
|
|
60
57
|
business_list.each do |business|
|
61
58
|
result.push(Providers::Yelp::Business.build_business(business))
|
@@ -1,28 +1,31 @@
|
|
1
1
|
module Providers
|
2
2
|
module Yelp
|
3
3
|
class Business
|
4
|
-
attr_accessor :name, :address, :yelp_id, :average_rating, :total_reviews
|
4
|
+
attr_accessor :name, :address, :yelp_id, :average_rating, :total_reviews, :url
|
5
5
|
|
6
6
|
def self.build_business(node)
|
7
|
-
return nil if
|
7
|
+
return nil if node.nil? ||
|
8
|
+
node["location"].nil? ||
|
9
|
+
node["location"].empty? ||
|
10
|
+
node["location"]["display_address"].nil? ||
|
11
|
+
node["rating"].nil? ||
|
12
|
+
node["url"].nil? ||
|
13
|
+
node["name"].nil? ||
|
14
|
+
node["review_count"].nil? ||
|
15
|
+
node["id"].nil?
|
16
|
+
|
8
17
|
new(node)
|
9
18
|
end
|
10
19
|
|
11
20
|
private
|
12
21
|
|
13
22
|
def initialize(node)
|
14
|
-
return if [node,
|
15
|
-
node["location"],
|
16
|
-
node["location"]["display_address"],
|
17
|
-
node["rating"],
|
18
|
-
node["review_count"],
|
19
|
-
node["id"]].include?(nil)
|
20
|
-
|
21
23
|
@address = node["location"]["display_address"].join(" ")
|
22
24
|
@name = node["name"]
|
23
25
|
@average_rating = node["rating"]
|
24
26
|
@total_reviews = node["review_count"]
|
25
27
|
@yelp_id = node["id"]
|
28
|
+
@url = node["url"]
|
26
29
|
end
|
27
30
|
end
|
28
31
|
end
|
data/lib/user_reviews/version.rb
CHANGED
@@ -3,18 +3,18 @@ require 'spec_helper'
|
|
3
3
|
describe Providers::Citysearch::Business do
|
4
4
|
describe "#initialize" do
|
5
5
|
let(:address) { {"street" => '', "city" => '', "state" => '', "postal_code" => '' } }
|
6
|
-
let(:node) do
|
7
|
-
{
|
8
|
-
"name" => '',
|
9
|
-
"address" => address,
|
10
|
-
"id" => stub,
|
11
|
-
"rating" => stub,
|
12
|
-
"review_info" => {}
|
13
|
-
}
|
14
|
-
end
|
15
6
|
|
16
7
|
context "when required fields are not present" do
|
17
|
-
let(:node)
|
8
|
+
let(:node) do
|
9
|
+
{
|
10
|
+
"name" => '',
|
11
|
+
"address" => address,
|
12
|
+
"id" => stub,
|
13
|
+
"rating" => stub,
|
14
|
+
"review_info" => {}
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
18
|
it "returns nil" do
|
19
19
|
biz = Providers::Citysearch::Business.build_business(node)
|
20
20
|
biz.should be_nil
|
@@ -22,6 +22,17 @@ describe Providers::Citysearch::Business do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
context "when required fields are present" do
|
25
|
+
let(:node) do
|
26
|
+
{
|
27
|
+
"name" => '',
|
28
|
+
"address" => address,
|
29
|
+
"id" => stub,
|
30
|
+
"rating" => stub,
|
31
|
+
"user_review_count" => stub,
|
32
|
+
"profile" => stub
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
25
36
|
it "returns an Bussiness object" do
|
26
37
|
Providers::Citysearch::Business.build_business(node).should be
|
27
38
|
end
|
@@ -2,16 +2,15 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Providers::Yelp::Business do
|
4
4
|
describe "#initialize" do
|
5
|
-
let(:node) do
|
6
|
-
{
|
7
|
-
"location" => '',
|
8
|
-
"rating" => '',
|
9
|
-
"id" => stub,
|
10
|
-
}
|
11
|
-
end
|
12
|
-
|
13
5
|
context "when required fields are not present" do
|
14
|
-
let(:node)
|
6
|
+
let(:node) do
|
7
|
+
{
|
8
|
+
"location" => {},
|
9
|
+
"rating" => '',
|
10
|
+
"id" => stub,
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
15
14
|
it "returns nil" do
|
16
15
|
biz = Providers::Yelp::Business.build_business(node)
|
17
16
|
biz.should be_nil
|
@@ -19,6 +18,17 @@ describe Providers::Yelp::Business do
|
|
19
18
|
end
|
20
19
|
|
21
20
|
context "when required fields are present" do
|
21
|
+
let(:node) do
|
22
|
+
{
|
23
|
+
"location" => { "display_address" => ["City", "Zip"] },
|
24
|
+
"rating" => stub,
|
25
|
+
"name" => stub,
|
26
|
+
"url" => stub,
|
27
|
+
"review_count" => stub,
|
28
|
+
"id" => stub,
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
22
32
|
it "returns an Bussiness object" do
|
23
33
|
Providers::Yelp::Business.build_business(node).should be
|
24
34
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: user_reviews
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.10
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Unpakt LLC
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,65 +27,57 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: httparty
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: oauth
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: json
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
description: Wrapper for mulitple user review APIs
|
@@ -99,7 +88,6 @@ extensions: []
|
|
99
88
|
extra_rdoc_files: []
|
100
89
|
files:
|
101
90
|
- .gitignore
|
102
|
-
- .pairs
|
103
91
|
- .rspec
|
104
92
|
- Gemfile
|
105
93
|
- Gemfile.lock
|
@@ -110,79 +98,52 @@ files:
|
|
110
98
|
- lib/providers/citysearch/api.rb
|
111
99
|
- lib/providers/citysearch/business.rb
|
112
100
|
- lib/providers/citysearch/review.rb
|
113
|
-
- lib/providers/citysearch_reviews/business.rb
|
114
|
-
- lib/providers/citysearch_reviews/review.rb
|
115
|
-
- lib/providers/citysearch_reviews_api.rb
|
116
101
|
- lib/providers/google/api.rb
|
117
102
|
- lib/providers/google/business.rb
|
118
103
|
- lib/providers/google/review.rb
|
119
|
-
- lib/providers/google_reviews/business.rb
|
120
|
-
- lib/providers/google_reviews/review.rb
|
121
|
-
- lib/providers/google_reviews_api.rb
|
122
104
|
- lib/providers/yelp/api.rb
|
123
105
|
- lib/providers/yelp/business.rb
|
124
106
|
- lib/providers/yelp/review.rb
|
125
|
-
- lib/providers/yelp_reviews/business.rb
|
126
|
-
- lib/providers/yelp_reviews/review.rb
|
127
|
-
- lib/providers/yelp_reviews_api.rb
|
128
107
|
- lib/user_reviews.rb
|
129
108
|
- lib/user_reviews/version.rb
|
130
|
-
- scripts/uploadgem.sh
|
131
109
|
- spec/providers/citysearch/api_spec.rb
|
132
110
|
- spec/providers/citysearch/business_spec.rb
|
133
|
-
- spec/providers/citysearch_reviews/business_spec.rb
|
134
|
-
- spec/providers/citysearch_reviews_api_spec.rb
|
135
111
|
- spec/providers/google/api_spec.rb
|
136
112
|
- spec/providers/google/business_spec.rb
|
137
|
-
- spec/providers/google_reviews/business_spec.rb
|
138
|
-
- spec/providers/google_reviews_api_spec.rb
|
139
113
|
- spec/providers/yelp/api_spec.rb
|
140
114
|
- spec/providers/yelp/business_spec.rb
|
141
|
-
- spec/providers/yelp_reviews/business_spec.rb
|
142
|
-
- spec/providers/yelp_reviews_api_spec.rb
|
143
115
|
- spec/spec_helper.rb
|
144
116
|
- spec/user_reviews_spec.rb
|
145
|
-
- user_reviews-0.0.1.gem
|
146
|
-
- user_reviews-0.0.2.gem
|
147
|
-
- user_reviews-0.0.3.gem
|
148
|
-
- user_reviews-0.0.4.gem
|
149
117
|
- user_reviews.gemspec
|
150
118
|
homepage: http://www.unpakt.com
|
151
119
|
licenses: []
|
120
|
+
metadata: {}
|
152
121
|
post_install_message:
|
153
122
|
rdoc_options: []
|
154
123
|
require_paths:
|
155
124
|
- lib
|
156
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
-
none: false
|
158
126
|
requirements:
|
159
|
-
- -
|
127
|
+
- - '>='
|
160
128
|
- !ruby/object:Gem::Version
|
161
129
|
version: '0'
|
162
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
131
|
requirements:
|
165
|
-
- -
|
132
|
+
- - '>='
|
166
133
|
- !ruby/object:Gem::Version
|
167
134
|
version: '0'
|
168
135
|
requirements: []
|
169
136
|
rubyforge_project:
|
170
|
-
rubygems_version:
|
137
|
+
rubygems_version: 2.0.3
|
171
138
|
signing_key:
|
172
|
-
specification_version:
|
139
|
+
specification_version: 4
|
173
140
|
summary: Wrapper for mulitple user review APIs
|
174
141
|
test_files:
|
175
142
|
- spec/providers/citysearch/api_spec.rb
|
176
143
|
- spec/providers/citysearch/business_spec.rb
|
177
|
-
- spec/providers/citysearch_reviews/business_spec.rb
|
178
|
-
- spec/providers/citysearch_reviews_api_spec.rb
|
179
144
|
- spec/providers/google/api_spec.rb
|
180
145
|
- spec/providers/google/business_spec.rb
|
181
|
-
- spec/providers/google_reviews/business_spec.rb
|
182
|
-
- spec/providers/google_reviews_api_spec.rb
|
183
146
|
- spec/providers/yelp/api_spec.rb
|
184
147
|
- spec/providers/yelp/business_spec.rb
|
185
|
-
- spec/providers/yelp_reviews/business_spec.rb
|
186
|
-
- spec/providers/yelp_reviews_api_spec.rb
|
187
148
|
- spec/spec_helper.rb
|
188
149
|
- spec/user_reviews_spec.rb
|
data/.pairs
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Providers
|
2
|
-
module CitysearchReviews
|
3
|
-
class Business
|
4
|
-
attr_accessor :name, :address, :reference, :average_rating, :total_reviews
|
5
|
-
|
6
|
-
def self.build_business(node)
|
7
|
-
return nil if [node["name"], node["address"], node["review_info"], node["id"]].include?(nil)
|
8
|
-
new(node)
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def initialize(node)
|
14
|
-
@name = node["name"]
|
15
|
-
full_address = node["address"]
|
16
|
-
@address = [full_address["street"], full_address["city"], full_address["state"], full_address["postal_code"]].join(" ")
|
17
|
-
@reference = node["id"]
|
18
|
-
@total_reviews = node['review_info']['total_user_reviews']
|
19
|
-
@average_rating = node['review_info']['overall_review_rating']
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
|
3
|
-
module Providers
|
4
|
-
module CitysearchReviews
|
5
|
-
class Review
|
6
|
-
attr_accessor :rating, :author_name, :reviewed_at, :comment
|
7
|
-
|
8
|
-
def initialize(node)
|
9
|
-
@rating = node["review_rating"]
|
10
|
-
@author_name = node["review_author"]
|
11
|
-
@reviewed_at = DateTime.parse(node["review_date"]).to_time
|
12
|
-
@comment = node["review_text"]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'httparty'
|
2
|
-
require 'open-uri'
|
3
|
-
|
4
|
-
|
5
|
-
module Providers
|
6
|
-
class CitysearchReviewsApi
|
7
|
-
LOCALHOST_IP = "127.0.0.1"
|
8
|
-
def initialize(options)
|
9
|
-
@key = options[:publisher_key]
|
10
|
-
@ip = options[:client_ip] || LOCALHOST_IP
|
11
|
-
end
|
12
|
-
|
13
|
-
def find_business_by_name(name, business_type, city_state)
|
14
|
-
request_url = business_search_url(name, business_type, city_state)
|
15
|
-
json_results = HTTParty.get(request_url)
|
16
|
-
parse_business_results(json_results)
|
17
|
-
end
|
18
|
-
|
19
|
-
def find_business_by_id(citysearch_id)
|
20
|
-
request_url = business_url(citysearch_id)
|
21
|
-
json_results = HTTParty.get(request_url)
|
22
|
-
json = json_results["locations"] || []
|
23
|
-
|
24
|
-
return json if json.empty?
|
25
|
-
Providers::CitysearchReviews::Business.build_business(json.first)
|
26
|
-
end
|
27
|
-
|
28
|
-
def find_reviews_for_business(citysearch_id)
|
29
|
-
request_url = reviews_url(citysearch_id)
|
30
|
-
json_results = HTTParty.get(request_url)
|
31
|
-
parse_reviews_results(json_results)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def business_url(citysearch_id)
|
37
|
-
"http://api.citygridmedia.com/content/places/v2/detail?publisher=#{@key}&id=#{citysearch_id}&id_type=cs&client_ip=127.0.0.1&format=json"
|
38
|
-
end
|
39
|
-
|
40
|
-
def business_search_url(name, business_type = "", city_state)
|
41
|
-
"http://api.citygridmedia.com/content/places/v2/search/where?where=#{URI::encode(city_state)}&what=#{URI::encode(name)}&publisher=#{@key}&format=json"
|
42
|
-
end
|
43
|
-
|
44
|
-
def reviews_url(citysearch_id)
|
45
|
-
"http://api.citygridmedia.com/content/reviews/v2/search/where?listing_id=#{citysearch_id}&publisher=#{@key}&format=json"
|
46
|
-
end
|
47
|
-
|
48
|
-
def parse_business_results(json)
|
49
|
-
result = []
|
50
|
-
return result if json.nil? || json["results"].nil?
|
51
|
-
|
52
|
-
json = json["results"] || []
|
53
|
-
json["locations"].each do |e|
|
54
|
-
result.push(Providers::CitysearchReviews::Business.build_business(e))
|
55
|
-
end
|
56
|
-
|
57
|
-
result
|
58
|
-
end
|
59
|
-
|
60
|
-
def parse_reviews_results(json)
|
61
|
-
result = []
|
62
|
-
return result if json.nil? || json["results"].nil?
|
63
|
-
|
64
|
-
json = json["results"] || []
|
65
|
-
json["reviews"].each do |e|
|
66
|
-
result.push(Providers::CitysearchReviews::Review.new(e))
|
67
|
-
end
|
68
|
-
|
69
|
-
result
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Providers
|
2
|
-
module GoogleReviews
|
3
|
-
class Business
|
4
|
-
attr_accessor :name, :address, :reference, :average_rating, :url
|
5
|
-
|
6
|
-
def self.build_business(node)
|
7
|
-
return nil if [node["name"], node["formatted_address"], node["reference"]].include?(nil)
|
8
|
-
new(node)
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
def initialize(node)
|
13
|
-
@name = node["name"]
|
14
|
-
@address = node["formatted_address"]
|
15
|
-
@reference = node["reference"]
|
16
|
-
@average_rating = node["rating"]
|
17
|
-
@url = node["url"]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Providers
|
2
|
-
module GoogleReviews
|
3
|
-
class Review
|
4
|
-
attr_accessor :rating, :author_name, :reviewed_at, :comment
|
5
|
-
|
6
|
-
def initialize(node)
|
7
|
-
@rating = average_rating(node["aspects"])
|
8
|
-
@author_name = node["author_name"]
|
9
|
-
@reviewed_at = Time.at(node["time"].to_i)
|
10
|
-
@comment = node["text"]
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def average_rating(arr)
|
16
|
-
return 0 if arr.nil? || arr.size < 1
|
17
|
-
|
18
|
-
sum = 0
|
19
|
-
arr.each { |el| sum += el["rating"].to_f }
|
20
|
-
sum.to_f / arr.size
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'httparty'
|
2
|
-
require 'open-uri'
|
3
|
-
|
4
|
-
module Providers
|
5
|
-
class GoogleReviewsApi
|
6
|
-
class ExceededQueryLimitError < StandardError; end
|
7
|
-
|
8
|
-
def initialize(options)
|
9
|
-
@key = options[:key]
|
10
|
-
end
|
11
|
-
|
12
|
-
def find_business_by_name(name, business_type, city_state = "")
|
13
|
-
request_url = business_url(name, business_type)
|
14
|
-
@json_results = HTTParty.get(request_url)
|
15
|
-
parse_business_results(@json_results)
|
16
|
-
end
|
17
|
-
|
18
|
-
def find_reviews_for_business(ref)
|
19
|
-
request_url = reviews_url(ref)
|
20
|
-
@json_results = HTTParty.get(request_url)
|
21
|
-
parse_reviews_results(@json_results)
|
22
|
-
end
|
23
|
-
|
24
|
-
def find_business_by_id(google_id)
|
25
|
-
request_url = reviews_url(google_id)
|
26
|
-
@json_results = HTTParty.get(request_url)
|
27
|
-
return @json_results if @json_results.nil?
|
28
|
-
|
29
|
-
json = @json_results["result"]
|
30
|
-
return json if json.nil?
|
31
|
-
|
32
|
-
Providers::GoogleReviews::Business.build_business(json)
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def query_limit_has_been_reached?
|
38
|
-
@json_results["status"] == 'OVER_QUERY_LIMIT'
|
39
|
-
end
|
40
|
-
|
41
|
-
def business_url(business_name, business_type)
|
42
|
-
"https://maps.googleapis.com/maps/api/place/textsearch/json?key=#{@key}&query=#{URI::encode(business_name)}=&sensor=false&type=#{URI::encode(business_type)}"
|
43
|
-
end
|
44
|
-
|
45
|
-
def reviews_url(reference)
|
46
|
-
"https://maps.googleapis.com/maps/api/place/details/json?key=#{@key}&reference=#{reference}&sensor=false"
|
47
|
-
end
|
48
|
-
|
49
|
-
def parse_business_results(json)
|
50
|
-
raise ExceededQueryLimitError if query_limit_has_been_reached?
|
51
|
-
|
52
|
-
result = []
|
53
|
-
return result if json.nil? || json["results"].nil?
|
54
|
-
|
55
|
-
json["results"].each do |e|
|
56
|
-
result.push(Providers::GoogleReviews::Business.build_business(e))
|
57
|
-
end
|
58
|
-
|
59
|
-
result
|
60
|
-
end
|
61
|
-
|
62
|
-
def parse_reviews_results(json)
|
63
|
-
result = []
|
64
|
-
return result if json.nil? || json["result"].nil? || json["result"]["reviews"].nil?
|
65
|
-
|
66
|
-
json["result"]["reviews"].each do |e|
|
67
|
-
result.push(Providers::GoogleReviews::Review.new(e))
|
68
|
-
end
|
69
|
-
|
70
|
-
result
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Providers
|
2
|
-
module YelpReviews
|
3
|
-
class Business
|
4
|
-
attr_accessor :name, :address, :yelp_id, :average_rating, :total_reviews
|
5
|
-
|
6
|
-
def self.build_business(node)
|
7
|
-
return nil if [node["location"], node["rating"], node["id"]].include?(nil)
|
8
|
-
new(node)
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def initialize(node)
|
14
|
-
return if [node,
|
15
|
-
node["location"],
|
16
|
-
node["location"]["display_address"],
|
17
|
-
node["rating"],
|
18
|
-
node["review_count"],
|
19
|
-
node["id"]].include?(nil)
|
20
|
-
|
21
|
-
@address = node["location"]["display_address"].join(" ")
|
22
|
-
@name = node["name"]
|
23
|
-
@average_rating = node["rating"]
|
24
|
-
@total_reviews = node["review_count"]
|
25
|
-
@yelp_id = node["id"]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Providers
|
2
|
-
module YelpReviews
|
3
|
-
class Review
|
4
|
-
attr_accessor :rating, :author_name, :reviewed_at, :comment
|
5
|
-
|
6
|
-
def initialize(node)
|
7
|
-
@rating = node["rating"]
|
8
|
-
@author_name = node["name"]
|
9
|
-
@reviewed_at = Time.at(node["time_created"].to_i)
|
10
|
-
@comment = node["excerpt"]
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'oauth'
|
2
|
-
require 'json'
|
3
|
-
require 'open-uri'
|
4
|
-
|
5
|
-
module Providers
|
6
|
-
class YelpReviewsApi
|
7
|
-
|
8
|
-
def initialize(options)
|
9
|
-
@consumer_key = options[:consumer_key]
|
10
|
-
@consumer_secret = options[:consumer_secret]
|
11
|
-
@token = options[:token]
|
12
|
-
@token_secret = options[:token_secret]
|
13
|
-
end
|
14
|
-
|
15
|
-
def find_business_by_name(name, business_type, city_state)
|
16
|
-
access_token = create_oauth_token
|
17
|
-
response = JSON.parse(access_token.get(business_path(name, business_type, city_state)).body)
|
18
|
-
parse_businesses(response["businesses"])
|
19
|
-
end
|
20
|
-
|
21
|
-
def find_reviews_for_business(yelp_id)
|
22
|
-
access_token = create_oauth_token
|
23
|
-
response = JSON.parse(access_token.get(review_path(yelp_id)).body)
|
24
|
-
parse_reviews(response["reviews"])
|
25
|
-
end
|
26
|
-
|
27
|
-
def find_business_by_id(yelp_id)
|
28
|
-
access_token = create_oauth_token
|
29
|
-
response = JSON.parse(access_token.get(review_path(yelp_id)).body)
|
30
|
-
Providers::YelpReviews::Business.build_business(response) if response &&
|
31
|
-
response["location"] &&
|
32
|
-
response["location"]["display_address"]
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def create_oauth_token
|
39
|
-
consumer_key = @consumer_key
|
40
|
-
consumer_secret = @consumer_secret
|
41
|
-
token = @token
|
42
|
-
token_secret = @token_secret
|
43
|
-
|
44
|
-
consumer = OAuth::Consumer.new(consumer_key, consumer_secret, site: "http://api.yelp.com")
|
45
|
-
OAuth::AccessToken.new(consumer, token, token_secret)
|
46
|
-
end
|
47
|
-
|
48
|
-
def business_path(name, business_type, city_state)
|
49
|
-
"/v2/search?term=#{URI::encode(name)}&category_filter=#{URI::encode(business_type)}&location=#{URI::encode(city_state)}"
|
50
|
-
end
|
51
|
-
|
52
|
-
def review_path(yelp_id)
|
53
|
-
"/v2/business/#{yelp_id}"
|
54
|
-
end
|
55
|
-
|
56
|
-
def parse_businesses(business_list)
|
57
|
-
result = []
|
58
|
-
return result if business_list.nil? ||
|
59
|
-
business_list.empty? ||
|
60
|
-
business_list["location"].nil? ||
|
61
|
-
business_list["location"]["display_address"].nil?
|
62
|
-
|
63
|
-
business_list.each do |business|
|
64
|
-
result.push(Providers::YelpReviews::Business.build_business(business))
|
65
|
-
end
|
66
|
-
|
67
|
-
result
|
68
|
-
end
|
69
|
-
|
70
|
-
def parse_reviews(review_list)
|
71
|
-
result = []
|
72
|
-
return result if review_list.nil?
|
73
|
-
|
74
|
-
review_list.each do |review|
|
75
|
-
result.push(Providers::YelpReviews::Review.new(review))
|
76
|
-
end
|
77
|
-
|
78
|
-
result
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
data/scripts/uploadgem.sh
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::CitysearchReviews::Business do
|
4
|
-
describe "#initialize" do
|
5
|
-
let(:address) { {"street" => '', "city" => '', "state" => '', "postal_code" => '' } }
|
6
|
-
let(:node) do
|
7
|
-
{
|
8
|
-
"name" => '',
|
9
|
-
"address" => address,
|
10
|
-
"id" => stub,
|
11
|
-
"rating" => stub,
|
12
|
-
"review_info" => {}
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
context "when required fields are not present" do
|
17
|
-
let(:node) { Hash.new(nil) }
|
18
|
-
it "returns nil" do
|
19
|
-
biz = Providers::CitysearchReviews::Business.build_business(node)
|
20
|
-
biz.should be_nil
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
context "when required fields are present" do
|
25
|
-
it "returns an Bussiness object" do
|
26
|
-
Providers::CitysearchReviews::Business.build_business(node).should be
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::CitysearchReviewsApi do
|
4
|
-
before do
|
5
|
-
end
|
6
|
-
|
7
|
-
describe "#initialize" do
|
8
|
-
it "initializes a new CitySearch provider" do
|
9
|
-
Providers::CitysearchReviewsApi.new(publisher_key: "").should be
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#find_business_by_name" do
|
14
|
-
let(:json_result) { { "address" => {} } }
|
15
|
-
let(:business_url) { "http://www.example.com" }
|
16
|
-
let(:citysearch_wrapper) { Providers::CitysearchReviewsApi.new(key: "") }
|
17
|
-
let(:query_result) { [Providers::CitysearchReviews::Business.build_business(json_result)] }
|
18
|
-
|
19
|
-
it "returns an array of possible businesses" do
|
20
|
-
citysearch_wrapper.should_receive(:business_search_url).with("Unpakt", "moving company", "NY,NY") { business_url }
|
21
|
-
HTTParty.should_receive(:get).with(business_url) { json_result }
|
22
|
-
citysearch_wrapper.should_receive(:parse_business_results).with(json_result) { query_result }
|
23
|
-
|
24
|
-
citysearch_wrapper.find_business_by_name("Unpakt", "moving company", "NY,NY").should eq query_result
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
|
29
|
-
describe "#find_reviews_for_business" do
|
30
|
-
let(:citysearch_id) { stub }
|
31
|
-
let(:json_result) { {"review_date" => "2007-03-07T21:53:41.000Z"} }
|
32
|
-
let(:reviews_url) { "http://www.example.com" }
|
33
|
-
let(:citysearch_wrapper) { Providers::CitysearchReviewsApi.new(key: "") }
|
34
|
-
let(:query_result) { [Providers::CitysearchReviews::Review.new(json_result)] }
|
35
|
-
|
36
|
-
it "returns the rating for a given entity" do
|
37
|
-
citysearch_wrapper.should_receive(:reviews_url).with(citysearch_id) { reviews_url }
|
38
|
-
HTTParty.should_receive(:get).with(reviews_url) { json_result }
|
39
|
-
citysearch_wrapper.should_receive(:parse_reviews_results).with(json_result) { query_result }
|
40
|
-
|
41
|
-
citysearch_wrapper.find_reviews_for_business(citysearch_id).should eq query_result
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::GoogleReviews::Business do
|
4
|
-
describe "#initialize" do
|
5
|
-
let(:node) do
|
6
|
-
{
|
7
|
-
"name" => '',
|
8
|
-
"formatted_address" => '',
|
9
|
-
"reference" => stub,
|
10
|
-
"url" => stub,
|
11
|
-
"rating" => stub
|
12
|
-
}
|
13
|
-
end
|
14
|
-
|
15
|
-
context "when required fields are not present" do
|
16
|
-
let(:node) { Hash.new(nil) }
|
17
|
-
it "returns nil" do
|
18
|
-
biz = Providers::GoogleReviews::Business.build_business(node)
|
19
|
-
biz.should be_nil
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "when required fields are present" do
|
24
|
-
it "returns an Bussiness object" do
|
25
|
-
Providers::GoogleReviews::Business.build_business(node).should be
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::GoogleReviewsApi do
|
4
|
-
before do
|
5
|
-
end
|
6
|
-
|
7
|
-
describe "#initialize" do
|
8
|
-
it "initializes a new GoogleReviews provider" do
|
9
|
-
Providers::GoogleReviewsApi.new(key: "").should be
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#find_business_by_name" do
|
14
|
-
let(:json_result) { "{}" }
|
15
|
-
let(:business_url) { "http://www.example.com" }
|
16
|
-
let(:google_wrapper) { Providers::GoogleReviewsApi.new(key: "") }
|
17
|
-
let(:query_result) { [Providers::GoogleReviews::Business.build_business(json_result)] }
|
18
|
-
|
19
|
-
context "when the api is valid" do
|
20
|
-
it "returns an array of possible businesses" do
|
21
|
-
google_wrapper.should_receive(:business_url).with("Unpakt", "moving_company") { business_url }
|
22
|
-
HTTParty.should_receive(:get).with(business_url) { json_result }
|
23
|
-
google_wrapper.should_receive(:parse_business_results).with(json_result) { query_result }
|
24
|
-
|
25
|
-
google_wrapper.find_business_by_name("Unpakt", "moving_company").should eq query_result
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
context "when the api query limit is reached" do
|
30
|
-
let(:json_result) { {'status' => 'OVER_QUERY_LIMIT'} }
|
31
|
-
|
32
|
-
it "raises an error" do
|
33
|
-
google_wrapper.should_receive(:business_url).with("Unpakt", "moving_company") { business_url }
|
34
|
-
HTTParty.should_receive(:get).with(business_url) { json_result }
|
35
|
-
lambda { google_wrapper.find_business_by_name("Unpakt", "moving_company") }.should raise_error Providers::GoogleReviewsApi::ExceededQueryLimitError
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#find_reviews_for_business" do
|
41
|
-
let(:reference) { stub }
|
42
|
-
let(:json_result) { "{}" }
|
43
|
-
let(:reviews_url) { "http://www.example.com" }
|
44
|
-
let(:google_wrapper) { Providers::GoogleReviewsApi.new(key: "") }
|
45
|
-
let(:query_result) { [Providers::GoogleReviews::Review.new(json_result)] }
|
46
|
-
|
47
|
-
it "returns the rating for a given entity" do
|
48
|
-
google_wrapper.should_receive(:reviews_url).with(reference) { reviews_url }
|
49
|
-
HTTParty.should_receive(:get).with(reviews_url) { json_result }
|
50
|
-
google_wrapper.should_receive(:parse_reviews_results).with(json_result) { query_result }
|
51
|
-
|
52
|
-
google_wrapper.find_reviews_for_business(reference).should eq query_result
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::YelpReviews::Business do
|
4
|
-
describe "#initialize" do
|
5
|
-
let(:node) do
|
6
|
-
{
|
7
|
-
"location" => '',
|
8
|
-
"rating" => '',
|
9
|
-
"id" => stub,
|
10
|
-
}
|
11
|
-
end
|
12
|
-
|
13
|
-
context "when required fields are not present" do
|
14
|
-
let(:node) { Hash.new(nil) }
|
15
|
-
it "returns nil" do
|
16
|
-
biz = Providers::YelpReviews::Business.build_business(node)
|
17
|
-
biz.should be_nil
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context "when required fields are present" do
|
22
|
-
it "returns an Bussiness object" do
|
23
|
-
Providers::YelpReviews::Business.build_business(node).should be
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Providers::YelpReviewsApi do
|
4
|
-
before do
|
5
|
-
end
|
6
|
-
|
7
|
-
describe "#initialize" do
|
8
|
-
it "initializes a new GoogleReviews provider" do
|
9
|
-
Providers::YelpReviewsApi.new(consumer_key: "",
|
10
|
-
consumer_secret: "",
|
11
|
-
token: "",
|
12
|
-
token_secret: "").should be
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "#find_business_by_name" do
|
17
|
-
let(:token) { stub }
|
18
|
-
let(:api_result) { stub }
|
19
|
-
let(:response_body) { stub }
|
20
|
-
let(:business_path) { "super_path" }
|
21
|
-
let(:business_place) do
|
22
|
-
{"location" => {"display_address" => ["1 Place", "NY"]}}
|
23
|
-
end
|
24
|
-
let(:json_result) {{"businesses" => business_places }}
|
25
|
-
let(:business_places) { [business_place] }
|
26
|
-
let(:yelp_wrapper) { Providers::YelpReviewsApi.new({}) }
|
27
|
-
let(:query_result) { [Providers::YelpReviews::Business.build_business(business_place)] }
|
28
|
-
|
29
|
-
it "returns an array of possible businesses" do
|
30
|
-
yelp_wrapper.should_receive(:create_oauth_token) { token }
|
31
|
-
yelp_wrapper.should_receive(:business_path).with("Unpakt", "movers", "NY,NY") { business_path }
|
32
|
-
token.should_receive(:get).with(business_path) { api_result }
|
33
|
-
api_result.should_receive(:body) { response_body }
|
34
|
-
|
35
|
-
|
36
|
-
JSON.should_receive(:parse).with(response_body) { json_result }
|
37
|
-
yelp_wrapper.should_receive(:parse_businesses).with(business_places) { query_result }
|
38
|
-
|
39
|
-
yelp_wrapper.find_business_by_name("Unpakt", "movers", "NY,NY").should eq query_result
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
describe "#find_reviews_for_business" do
|
45
|
-
let(:token) { stub }
|
46
|
-
let(:api_result) { stub }
|
47
|
-
let(:response_body) { stub }
|
48
|
-
let(:review_path) { "super_path" }
|
49
|
-
let(:review) {{"rating" => 1}}
|
50
|
-
let(:reviews) { [review] }
|
51
|
-
let(:json_result) {{"reviews" => reviews }}
|
52
|
-
let(:yelp_wrapper) { Providers::YelpReviewsApi.new({}) }
|
53
|
-
let(:query_result) { [Providers::YelpReviews::Review.new(review)] }
|
54
|
-
|
55
|
-
it "returns an array of possible businesses" do
|
56
|
-
yelp_wrapper.should_receive(:create_oauth_token) { token }
|
57
|
-
yelp_wrapper.should_receive(:review_path).with("yelp-Unpakt") { review_path }
|
58
|
-
token.should_receive(:get).with(review_path) { api_result }
|
59
|
-
api_result.should_receive(:body) { response_body }
|
60
|
-
|
61
|
-
|
62
|
-
JSON.should_receive(:parse).with(response_body) { json_result }
|
63
|
-
yelp_wrapper.should_receive(:parse_reviews).with(reviews) { query_result }
|
64
|
-
|
65
|
-
yelp_wrapper.find_reviews_for_business("yelp-Unpakt").should eq query_result
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
data/user_reviews-0.0.1.gem
DELETED
Binary file
|
data/user_reviews-0.0.2.gem
DELETED
Binary file
|
data/user_reviews-0.0.3.gem
DELETED
Binary file
|
data/user_reviews-0.0.4.gem
DELETED
Binary file
|