yelp 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0fc270d059e44398f9b065a8aa0fb47de7ddba13
4
- data.tar.gz: 8ee3396c67d1f7eeb5f0a7758f8caaab4e748510
3
+ metadata.gz: c1d0b8a50232bec3fb20980bc176371381a8735c
4
+ data.tar.gz: 3fc892f1df95d2380342a4fe31f885d4c84aef96
5
5
  SHA512:
6
- metadata.gz: 096b0d470f94f7ca9233bedf3b32d38a0c23a1df36511ed23bf60d5bd86c0676d3ae0c326902d2684c92159c62ad387f1fca44a3992c98e8a7677ac2068305e4
7
- data.tar.gz: 32d9ef5ce84900b5cd3bc4f61ed8d2a638cc9a28950f5aa3cdda860642d62ca1be7fd9a6621d7ab5141ae32cc1a034486d7ee17133df7df2fafd4f739458291f
6
+ metadata.gz: 92ec51e7ff94f62a2e9ac2b7fa7fa2e6042c516a6f2e2a6e44baaa6927342608a3ac428aeabc23da196e2f0b353adaf1b23804e77c4abb71d80f3f8d95f983b4
7
+ data.tar.gz: 30a2d55c47ff8a3eef8849132426c1459bcce8db2ca6b207e59b202c197c19778eb85b1a8f6424fdad6e39c643942e5db13d9e8747d1e30abb4e3e6d6ee9f4c9
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ spec/reports
16
16
  test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
+ .ruby-env
data/.ruby-env.example ADDED
@@ -0,0 +1,6 @@
1
+ # Replace <THESE_VALUES> with yours from
2
+ # https://www.yelp.com/developers/manage_api_keys (don't include <brackets>).
3
+ YELP_CONSUMER_KEY=<YOUR_YELP_CONSUMER_KEY>
4
+ YELP_CONSUMER_SECRET=<YOUR_YELP_CONSUMER_SECRET>
5
+ YELP_TOKEN=<YOUR_YELP_TOKEN>
6
+ YELP_TOKEN_SECRET=<YOUR_YELP_TOKEN_SECRET>
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ yelp-ruby
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.5
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # yelp-ruby
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/yelp.svg)](http://badge.fury.io/rb/yelp) [![Build Status](https://travis-ci.org/Yelp/yelp-ruby.svg)](https://travis-ci.org/Yelp/yelp-ruby) [![Code Climate](https://codeclimate.com/github/Yelp/yelp-ruby.png)](https://codeclimate.com/github/Yelp/yelp-ruby)
3
+ [![Gem Version](https://badge.fury.io/rb/yelp.svg)](http://badge.fury.io/rb/yelp) [![Build Status](https://travis-ci.org/Yelp/yelp-ruby.svg)](https://travis-ci.org/Yelp/yelp-ruby) [![Code Climate](https://codeclimate.com/github/Yelp/yelp-ruby.svg)](https://codeclimate.com/github/Yelp/yelp-ruby)
4
4
 
5
5
  This is a Ruby Gem for the Yelp API. It'll simplify the process of consuming data from the Yelp API for developers using Ruby. The library encompasses both Search and Business API functions.
6
6
 
@@ -106,6 +106,22 @@ locale = { lang: 'fr' }
106
106
  client.business('yelp-san-francisco', locale)
107
107
  ```
108
108
 
109
+ ### [Phone Search API](http://www.yelp.com/developers/documentation/v2/phone_search)
110
+
111
+ To use the Phone Search API after you have a client you just need to call ``#phone_search`` with a phone number
112
+
113
+ ```
114
+ client.phone_search('+15555555555')
115
+ ```
116
+
117
+ You can pass in country code information as well
118
+
119
+ ```
120
+ options = { cc: 'US', category: 'fashion' }
121
+
122
+ client.phone_search('5555555555', options)
123
+ ```
124
+
109
125
  ## Responses
110
126
 
111
127
  Responses from the API are all parsed and converted into Ruby objects. You're able to access information using dot-notation
@@ -144,6 +160,19 @@ For specific response values check out the docs for the [search api](http://www.
144
160
  4. Push to the branch (`git push origin my-new-feature`)
145
161
  5. Create new Pull Request
146
162
 
163
+ Our rspec test suite expects environment variables to be populated with your Yelp API Access Tokens. If you use RVM, you could create a `.ruby-env` file in the repo root with contents like:
164
+
165
+ ```
166
+ YELP_CONSUMER_KEY=<YOUR_YELP_CONSUMER_KEY>
167
+ YELP_CONSUMER_SECRET=<YOUR_YELP_CONSUMER_SECRET>
168
+ YELP_TOKEN=<YOUR_YELP_TOKEN>
169
+ YELP_TOKEN_SECRET=<YOUR_YELP_TOKEN_SECRET>
170
+ ```
171
+
172
+ You can generate and find your Access Tokens at [https://www.yelp.com/developers/manage_api_keys](https://www.yelp.com/developers/manage_api_keys).
173
+
174
+ (We've included `.ruby-env.example` to get you started. Be careful to remove the `.example`.)
175
+
147
176
  ### Git Workflow
148
177
 
149
178
  We are using the [git flow](http://nvie.com/posts/a-successful-git-branching-model/)
@@ -43,6 +43,10 @@ module BurstStruct
43
43
  !find_key(method_name).nil?
44
44
  end
45
45
 
46
+ def raw_data
47
+ @hash
48
+ end
49
+
46
50
  private
47
51
 
48
52
  def return_or_build_struct(method_name)
data/lib/yelp/client.rb CHANGED
@@ -5,13 +5,15 @@ require 'yelp/burst_struct'
5
5
  require 'yelp/configuration'
6
6
  require 'yelp/error'
7
7
  require 'yelp/endpoint/business'
8
+ require 'yelp/endpoint/phone_search'
8
9
  require 'yelp/endpoint/search'
9
10
 
10
11
  module Yelp
11
12
  class Client
12
13
  API_HOST = 'http://api.yelp.com'
13
14
  REQUEST_CLASSES = [ Yelp::Endpoint::Search,
14
- Yelp::Endpoint::Business ]
15
+ Yelp::Endpoint::Business,
16
+ Yelp::Endpoint::PhoneSearch]
15
17
 
16
18
  attr_reader :configuration
17
19
 
@@ -0,0 +1,50 @@
1
+ require 'json'
2
+
3
+ module Yelp
4
+ module Endpoint
5
+ class PhoneSearch
6
+ PATH = '/v2/phone_search/'
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ # Make a request to the business endpoint on the API
13
+ #
14
+ # @param phone_number [String] the phone number
15
+ # @return [BurstStruct::Burst] a parsed object of the response. For a complete
16
+ # sample response visit:
17
+ # http://www.yelp.com/developers/documentation/v2/phone_search#sampleResponse
18
+ #
19
+ # @example Search for business with params and locale
20
+ # options = { code: 'US',
21
+ # category: 'localflavor' }
22
+ #
23
+ # response = client.phone_search('+14159083801', options)
24
+ # response.businesses # [<Business 1>, <Business 2>, <Business 3>]
25
+ # response.businesses[0].name # 'Yelp'
26
+ #
27
+ def phone_search(phone, options={})
28
+ params = {phone: phone}
29
+ params.merge!(options)
30
+ BurstStruct::Burst.new(JSON.parse(phone_search_request(params).body))
31
+ end
32
+
33
+ private
34
+
35
+ # Make a request to the business endpoint of the API
36
+ # The endpoint requires a format of /v2/business/{business-id}
37
+ # so the primary request parameter is concatenated. After getting
38
+ # the response back it's checked to see if there are any API errors
39
+ # and raises the relevant one if there is.
40
+ #
41
+ # @param params [Hash] a hash of options for phone search
42
+ # @return [Faraday::Response] the raw response back from the connection
43
+ def phone_search_request(params)
44
+ result = @client.connection.get PATH, params
45
+ Error.check_for_error(result)
46
+ result
47
+ end
48
+ end
49
+ end
50
+ end
data/lib/yelp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yelp
2
- VERSION = "2.0.4"
2
+ VERSION = "2.0.5"
3
3
  end
@@ -0,0 +1,70 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.yelp.com/v2/phone_search/?category=localflavor&code=US&phone=%2B14159083801
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Authorization:
13
+ - OAuth oauth_consumer_key="<YELP_CONSUMER_KEY>", oauth_nonce="ea69a813193ba6e5948fe4d6f7b96042",
14
+ oauth_signature="ukchha88%2Bsm6WWpiEAV8VbgIpYQ%3D", oauth_signature_method="HMAC-SHA1",
15
+ oauth_timestamp="1425778113", oauth_token="<YELP_TOKEN>", oauth_version="1.0"
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Sun, 08 Mar 2015 01:28:33 GMT
27
+ Server:
28
+ - Apache
29
+ X-Node:
30
+ - web102-r10-sfo2, api_com
31
+ Cache-Control:
32
+ - private
33
+ Set-Cookie:
34
+ - bse=3b7f48757900b68e51e2bb458656fc4b; Domain=.yelp.com; Path=/; HttpOnly
35
+ - yuv=Qj3YntiY6H9KR_Is0c63LJkIKjm9hzLLtk-_wgcaU2tHsmQutDrD7AVd-znxMnXQZjKafm3v7f6eQjklhSsif2P4XCLNSJHR;
36
+ Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sat, 03-Mar-2035 01:28:33
37
+ GMT
38
+ Content-Length:
39
+ - '1566'
40
+ Vary:
41
+ - User-Agent
42
+ Content-Type:
43
+ - application/json; charset=UTF-8
44
+ X-Mode:
45
+ - ro
46
+ X-Proxied:
47
+ - extlb1-r4-sfo2
48
+ body:
49
+ encoding: UTF-8
50
+ string: '{"region": null, "total": 1, "businesses": [{"is_claimed": true, "rating":
51
+ 2.5, "mobile_url": "http://m.yelp.com/biz/yelp-san-francisco", "rating_img_url":
52
+ "http://s3-media4.fl.yelpcdn.com/assets/2/www/img/c7fb9aff59f9/ico/stars/v1/stars_2_half.png",
53
+ "review_count": 6827, "name": "Yelp", "snippet_image_url": "http://s3-media2.fl.yelpcdn.com/photo/IAgMHI6d24hklODg294Ejw/ms.jpg",
54
+ "rating_img_url_small": "http://s3-media4.fl.yelpcdn.com/assets/2/www/img/8e8633e5f8f0/ico/stars/v1/stars_small_2_half.png",
55
+ "url": "http://www.yelp.com/biz/yelp-san-francisco", "phone": "+14159083801",
56
+ "snippet_text": "I have been called a dumb bitch through business messaging...
57
+ I have been harassed, cussed a blue streak and stalked for telling the truth
58
+ and calling...", "image_url": "http://s3-media2.fl.yelpcdn.com/bphoto/EHCfkEpZraIfPl8gvCo1tg/ms.jpg",
59
+ "categories": [["Local Flavor", "localflavor"], ["Mass Media", "massmedia"]],
60
+ "display_phone": "+1-415-908-3801", "rating_img_url_large": "http://s3-media2.fl.yelpcdn.com/assets/2/www/img/d63e3add9901/ico/stars/v1/stars_large_2_half.png",
61
+ "id": "yelp-san-francisco", "is_closed": false, "location": {"cross_streets":
62
+ "Natoma St \u0026 Minna St", "city": "San Francisco", "display_address": ["140
63
+ New Montgomery St", "Financial District", "San Francisco, CA 94105"], "geo_accuracy":
64
+ 9.5, "neighborhoods": ["Financial District", "SoMa"], "postal_code": "94105",
65
+ "country_code": "US", "address": ["140 New Montgomery St"], "coordinate":
66
+ {"latitude": 37.786770336292903, "longitude": -122.39995837211499}, "state_code":
67
+ "CA"}}]}'
68
+ http_version:
69
+ recorded_at: Sun, 08 Mar 2015 01:28:33 GMT
70
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yelp::Endpoint::PhoneSearch do
4
+ include_context 'shared configuration'
5
+
6
+ let(:api_keys) { real_api_keys }
7
+ let(:phone) { '+14159083801' }
8
+ let(:options) { { code: 'US', category: 'localflavor' } }
9
+ let(:client) { Yelp::Client.new(api_keys) }
10
+
11
+ describe '#phone_search' do
12
+ subject(:results) {
13
+ VCR.use_cassette('phone_search') do
14
+ client.phone_search(phone, options)
15
+ end
16
+ }
17
+
18
+ it { should be_a(BurstStruct::Burst) }
19
+ it 'should get results' do
20
+ expect(results.businesses.size).to be > 0
21
+ end
22
+ end
23
+
24
+ describe 'errors' do
25
+ it_behaves_like 'a request error' do
26
+ let(:request) { client.phone_search(phone) }
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yelp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomer Elmalem
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-10-16 00:00:00.000000000 Z
13
+ date: 2015-03-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -223,6 +223,9 @@ extensions: []
223
223
  extra_rdoc_files: []
224
224
  files:
225
225
  - ".gitignore"
226
+ - ".ruby-env.example"
227
+ - ".ruby-gemset"
228
+ - ".ruby-version"
226
229
  - ".travis.yml"
227
230
  - Gemfile
228
231
  - LICENSE.txt
@@ -233,10 +236,12 @@ files:
233
236
  - lib/yelp/client.rb
234
237
  - lib/yelp/configuration.rb
235
238
  - lib/yelp/endpoint/business.rb
239
+ - lib/yelp/endpoint/phone_search.rb
236
240
  - lib/yelp/endpoint/search.rb
237
241
  - lib/yelp/error.rb
238
242
  - lib/yelp/version.rb
239
243
  - spec/fixtures/vcr_cassettes/business.yml
244
+ - spec/fixtures/vcr_cassettes/phone_search.yml
240
245
  - spec/fixtures/vcr_cassettes/search.yml
241
246
  - spec/fixtures/vcr_cassettes/search_bounding_box.yml
242
247
  - spec/fixtures/vcr_cassettes/search_by_coordinates.yml
@@ -247,6 +252,7 @@ files:
247
252
  - spec/yelp/client_spec.rb
248
253
  - spec/yelp/configuration_spec.rb
249
254
  - spec/yelp/endpoint/business_spec.rb
255
+ - spec/yelp/endpoint/phone_search_spec.rb
250
256
  - spec/yelp/endpoint/search_spec.rb
251
257
  - spec/yelp/error_spec.rb
252
258
  - spec/yelp/yelp_spec.rb
@@ -272,12 +278,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
278
  version: '0'
273
279
  requirements: []
274
280
  rubyforge_project:
275
- rubygems_version: 2.2.2
281
+ rubygems_version: 2.4.5
276
282
  signing_key:
277
283
  specification_version: 4
278
284
  summary: Ruby client library for the Yelp API
279
285
  test_files:
280
286
  - spec/fixtures/vcr_cassettes/business.yml
287
+ - spec/fixtures/vcr_cassettes/phone_search.yml
281
288
  - spec/fixtures/vcr_cassettes/search.yml
282
289
  - spec/fixtures/vcr_cassettes/search_bounding_box.yml
283
290
  - spec/fixtures/vcr_cassettes/search_by_coordinates.yml
@@ -288,7 +295,7 @@ test_files:
288
295
  - spec/yelp/client_spec.rb
289
296
  - spec/yelp/configuration_spec.rb
290
297
  - spec/yelp/endpoint/business_spec.rb
298
+ - spec/yelp/endpoint/phone_search_spec.rb
291
299
  - spec/yelp/endpoint/search_spec.rb
292
300
  - spec/yelp/error_spec.rb
293
301
  - spec/yelp/yelp_spec.rb
294
- has_rdoc: