yelpster 1.1.2 → 1.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.
- checksums.yaml +8 -8
- data/CHANGELOG.rdoc +5 -0
- data/{README.rdoc → README.md} +35 -27
- data/lib/yelpster.rb +1 -1
- data/lib/yelpster/client.rb +31 -33
- data/lib/yelpster/v1/neighborhood/request/base.rb +7 -7
- data/lib/yelpster/v1/neighborhood/request/geo_point.rb +15 -15
- data/lib/yelpster/v1/neighborhood/request/location.rb +46 -46
- data/lib/yelpster/v1/phone/request/number.rb +16 -16
- data/lib/yelpster/v1/request.rb +48 -48
- data/lib/yelpster/v1/review/request/base.rb +21 -21
- data/lib/yelpster/v1/review/request/bounding_box.rb +30 -30
- data/lib/yelpster/v1/review/request/geo_point.rb +19 -19
- data/lib/yelpster/v1/review/request/location.rb +51 -51
- data/lib/yelpster/v2/business/request/id.rb +19 -19
- data/lib/yelpster/v2/request.rb +50 -50
- data/lib/yelpster/v2/search/request/base.rb +51 -51
- data/lib/yelpster/v2/search/request/bounding_box.rb +21 -21
- data/lib/yelpster/v2/search/request/geo_point.rb +46 -46
- data/lib/yelpster/v2/search/request/location.rb +1 -1
- metadata +3 -3
data/lib/yelpster/v1/request.rb
CHANGED
@@ -4,52 +4,52 @@ require 'zlib'
|
|
4
4
|
|
5
5
|
class Yelp
|
6
6
|
module V1
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
7
|
+
class Request < Yelp::Record
|
8
|
+
# specifies whether the response content should be transmitted
|
9
|
+
# over the wire compressed, defaulting to true.
|
10
|
+
attr_reader :compress_response
|
11
|
+
|
12
|
+
# one of the Yelp::ResponseFormat format specifiers detailing the
|
13
|
+
# desired format of the search results, defaulting to
|
14
|
+
# Yelp::ResponseFormat::JSON_TO_RUBY.
|
15
|
+
attr_reader :response_format
|
16
|
+
|
17
|
+
# the Yelp Web Services ID to be passed with the request for
|
18
|
+
# authentication purposes. See http://www.yelp.com/developers/getting_started/api_access
|
19
|
+
# to get your own.
|
20
|
+
attr_reader :yws_id
|
21
|
+
|
22
|
+
alias :compress_response? :compress_response
|
23
|
+
|
24
|
+
def initialize (params)
|
25
|
+
default_params = {
|
26
|
+
:compress_response => true,
|
27
|
+
:response_format => Yelp::ResponseFormat::JSON_TO_RUBY
|
28
|
+
}
|
29
|
+
super(default_params.merge(params))
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_yelp_params
|
33
|
+
params = {
|
34
|
+
:ywsid => yws_id
|
35
|
+
}
|
36
|
+
|
37
|
+
# if they specified anything other than a json variant, we
|
38
|
+
# need to tell yelp what we're looking for
|
39
|
+
case @response_format
|
40
|
+
when Yelp::ResponseFormat::PICKLE
|
41
|
+
params[:output] = 'pickle'
|
42
|
+
when Yelp::ResponseFormat::PHP
|
43
|
+
params[:output] = 'php'
|
44
|
+
end
|
45
|
+
|
46
|
+
params
|
47
|
+
end
|
48
|
+
|
49
|
+
def pull_results (url, http_params)
|
50
|
+
source = open(url, http_params)
|
51
|
+
content = (compress_response?) ? Zlib::GzipReader.new(source).read : source.read
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
55
|
end
|
@@ -2,31 +2,31 @@ require 'yelpster/v1/request'
|
|
2
2
|
|
3
3
|
class Yelp
|
4
4
|
module V1
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
module Review
|
6
|
+
module Request
|
7
|
+
class Base < Yelp::V1::Request
|
8
|
+
# specifies the number of businesses to return in the result set.
|
9
|
+
# default is 10. minimum value is 1 and maximum value is 20.
|
10
|
+
attr_reader :business_count
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
# string representing the name of business or search term being
|
13
|
+
# requested.
|
14
|
+
attr_reader :term
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
# optionally narrow the results by one or more categories.
|
17
|
+
# may be a single string value, or an Array of multiple values.
|
18
|
+
attr_reader :category
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
def base_url
|
21
|
+
'http://api.yelp.com/business_review_search'
|
22
|
+
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
def to_yelp_params
|
25
|
+
super.merge(:term => term,
|
26
|
+
:num_biz_requested => business_count,
|
27
|
+
:category => category)
|
28
|
+
end
|
29
|
+
end
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -2,37 +2,37 @@ require 'yelpster/v1/review/request/base'
|
|
2
2
|
|
3
3
|
class Yelp
|
4
4
|
module V1
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
# bottom right longitude of bounding box
|
16
|
-
attr_reader :bottom_right_longitude
|
17
|
-
|
18
|
-
# radius to use while searching around specified geo-point.
|
19
|
-
# default value is 1, maximum value is 25.
|
20
|
-
attr_reader :radius
|
21
|
-
|
22
|
-
# top left latitude of bounding box
|
23
|
-
attr_reader :top_left_latitude
|
24
|
-
|
25
|
-
# top left longitude of bounding box
|
26
|
-
attr_reader :top_left_longitude
|
5
|
+
module Review
|
6
|
+
module Request
|
7
|
+
# Describes a request to search for business reviews for businesses
|
8
|
+
# within a geo-point-specific bounding box and radius around
|
9
|
+
# that box.
|
10
|
+
#
|
11
|
+
class BoundingBox < Yelp::V1::Review::Request::Base
|
12
|
+
# bottom right latitude of bounding box
|
13
|
+
attr_reader :bottom_right_latitude
|
27
14
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
15
|
+
# bottom right longitude of bounding box
|
16
|
+
attr_reader :bottom_right_longitude
|
17
|
+
|
18
|
+
# radius to use while searching around specified geo-point.
|
19
|
+
# default value is 1, maximum value is 25.
|
20
|
+
attr_reader :radius
|
21
|
+
|
22
|
+
# top left latitude of bounding box
|
23
|
+
attr_reader :top_left_latitude
|
24
|
+
|
25
|
+
# top left longitude of bounding box
|
26
|
+
attr_reader :top_left_longitude
|
27
|
+
|
28
|
+
def to_yelp_params
|
29
|
+
super.merge(:tl_lat => top_left_latitude,
|
30
|
+
:tl_long => top_left_longitude,
|
31
|
+
:br_lat => bottom_right_latitude,
|
32
|
+
:br_long => bottom_right_longitude,
|
33
|
+
:radius => radius)
|
34
|
+
end
|
35
|
+
end
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -2,28 +2,28 @@ require 'yelpster/v1/review/request/base'
|
|
2
2
|
|
3
3
|
class Yelp
|
4
4
|
module V1
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
module Review
|
6
|
+
module Request
|
7
|
+
# Describes a request to search for business reviews for businesses near
|
8
|
+
# a specific geo-point and radius around that point.
|
9
|
+
#
|
10
|
+
class GeoPoint < Yelp::V1::Review::Request::Base
|
11
|
+
# latitude of geo-point to search near
|
12
|
+
attr_reader :latitude
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
# longitude of geo-point to search near
|
15
|
+
attr_reader :longitude
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
# radius to use while searching around specified geo-point.
|
18
|
+
# default value is 1, maximum value is 25.
|
19
|
+
attr_reader :radius
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
def to_yelp_params
|
22
|
+
super.merge(:lat => latitude,
|
23
|
+
:long => longitude,
|
24
|
+
:radius => radius)
|
25
|
+
end
|
26
|
+
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -2,63 +2,63 @@ require 'yelpster/v1/review/request/base'
|
|
2
2
|
|
3
3
|
class Yelp
|
4
4
|
module V1
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
5
|
+
module Review
|
6
|
+
module Request
|
7
|
+
# Describes a request to search for business reviews near a specific
|
8
|
+
# address/location. You do not need to specify all of the address
|
9
|
+
# attributes -- some subset of the core +address+, +city+,
|
10
|
+
# +neighborhood+, +state+ and +zipcode+ will suffice.
|
11
|
+
#
|
12
|
+
class Location < Yelp::V1::Review::Request::Base
|
13
|
+
# the street address of the location sought
|
14
|
+
attr_reader :address
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
# the city of the location sought
|
17
|
+
attr_reader :city
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
# radius to use while searching around specified geo-point.
|
23
|
-
# default value is 1, maximum value is 25.
|
24
|
-
attr_reader :radius
|
19
|
+
# the neighborhood of the location sought
|
20
|
+
attr_reader :neighborhood
|
25
21
|
|
26
|
-
|
27
|
-
|
22
|
+
# radius to use while searching around specified geo-point.
|
23
|
+
# default value is 1, maximum value is 25.
|
24
|
+
attr_reader :radius
|
28
25
|
|
29
|
-
|
30
|
-
|
26
|
+
# the state of the location sought
|
27
|
+
attr_reader :state
|
31
28
|
|
32
|
-
|
33
|
-
|
34
|
-
# them later when building a full location string and we want
|
35
|
-
# to know they were initialized properly (and avoid warnings)
|
36
|
-
super({
|
37
|
-
:address => nil,
|
38
|
-
:city => nil,
|
39
|
-
:neighborhood => nil,
|
40
|
-
:state => nil,
|
41
|
-
:zipcode => nil
|
42
|
-
}.merge(params))
|
43
|
-
end
|
29
|
+
# the zipcode of the location sought
|
30
|
+
attr_reader :zipcode
|
44
31
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
32
|
+
def initialize (params)
|
33
|
+
# we explicitly initialize the location fields since we reference
|
34
|
+
# them later when building a full location string and we want
|
35
|
+
# to know they were initialized properly (and avoid warnings)
|
36
|
+
super({
|
37
|
+
:address => nil,
|
38
|
+
:city => nil,
|
39
|
+
:neighborhood => nil,
|
40
|
+
:state => nil,
|
41
|
+
:zipcode => nil
|
42
|
+
}.merge(params))
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_yelp_params
|
46
|
+
super.merge(:location => build_location_string,
|
47
|
+
:radius => radius)
|
48
|
+
end
|
49
|
+
|
50
|
+
protected
|
51
|
+
|
52
|
+
# Returns the Yelp-compatible concatenated string with the various
|
53
|
+
# possible bits of an address-oriented location.
|
54
|
+
#
|
55
|
+
def build_location_string
|
56
|
+
# per the Yelp documentation, the location string is to be built
|
57
|
+
# as some combination of "address, neighborhood, city, state, or
|
58
|
+
# zip".
|
59
|
+
[ @address, @neighborhood, @city, @state, @zipcode ].compact.join(',')
|
60
|
+
end
|
61
|
+
end
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -1,19 +1,19 @@
|
|
1
|
-
require 'yelpster/v2/request'
|
2
|
-
|
3
|
-
class Yelp
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# the alphanumeric id of the business to search for as provided by yelp,
|
9
|
-
# eg: 'pjb2WMwa0AfK3L-dWimO8w'
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
1
|
+
require 'yelpster/v2/request'
|
2
|
+
|
3
|
+
class Yelp
|
4
|
+
module V2
|
5
|
+
module Business
|
6
|
+
module Request
|
7
|
+
class Id < Yelp::V2::Request
|
8
|
+
# the alphanumeric id of the business to search for as provided by yelp,
|
9
|
+
# eg: 'pjb2WMwa0AfK3L-dWimO8w'
|
10
|
+
attr_reader :yelp_business_id
|
11
|
+
|
12
|
+
def base_url
|
13
|
+
'http://api.yelp.com/v2/business/'+yelp_business_id
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/yelpster/v2/request.rb
CHANGED
@@ -3,54 +3,54 @@ require 'oauth'
|
|
3
3
|
|
4
4
|
class Yelp
|
5
5
|
module V2
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
6
|
+
class Request < Yelp::Record
|
7
|
+
# specifies whether the response content should be transmitted
|
8
|
+
# over the wire compressed, defaulting to true.
|
9
|
+
attr_reader :compress_response
|
10
|
+
|
11
|
+
# one of the Yelp::ResponseFormat format specifiers detailing the
|
12
|
+
# desired format of the search results, defaulting to
|
13
|
+
# Yelp::ResponseFormat::JSON_TO_RUBY.
|
14
|
+
attr_reader :response_format
|
15
|
+
|
16
|
+
# the Yelp consumer_key, consumer_secret, token, token_secret to be passed with the request for
|
17
|
+
# authentication purposes. See http://www.yelp.com/developers/getting_started/api_access
|
18
|
+
# to get your own.
|
19
|
+
attr_reader :consumer_key
|
20
|
+
attr_reader :consumer_secret
|
21
|
+
attr_reader :token
|
22
|
+
attr_reader :token_secret
|
23
|
+
|
24
|
+
alias :compress_response? :compress_response
|
25
|
+
|
26
|
+
def initialize (params)
|
27
|
+
default_params = {
|
28
|
+
:compress_response => true,
|
29
|
+
:response_format => Yelp::ResponseFormat::JSON_TO_RUBY
|
30
|
+
}
|
31
|
+
super(default_params.merge(params))
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_yelp_params
|
35
|
+
params = {}
|
36
|
+
|
37
|
+
# if they specified anything other than a json variant, we
|
38
|
+
# need to tell yelp what we're looking for
|
39
|
+
case @response_format
|
40
|
+
when Yelp::ResponseFormat::PICKLE
|
41
|
+
params[:output] = 'pickle'
|
42
|
+
when Yelp::ResponseFormat::PHP
|
43
|
+
params[:output] = 'php'
|
44
|
+
end
|
45
|
+
|
46
|
+
params
|
47
|
+
end
|
48
|
+
|
49
|
+
def pull_results (url, http_params)
|
50
|
+
consumer = OAuth::Consumer.new(consumer_key, consumer_secret, {:site => "http://api.yelp.com"})
|
51
|
+
access_token = OAuth::AccessToken.new(consumer, token, token_secret)
|
52
|
+
access_token.get(url).body
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
56
|
end
|