yelp-fusion 0.3.pre.beta → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5437582e9eab689df423b49eb43b5ced2095721b47259bae3b020ddf9c7a1957
4
- data.tar.gz: f4bf9851941bb4aeac86e2c0c0767842c568e9a7d84e45b8c6bcba90ff8ccfb8
3
+ metadata.gz: 15dcadbe7c95d940ded727d65c43248f3487d7437b4aa3cfa0b3fd229a880d26
4
+ data.tar.gz: 2bc14dec923d118e853513c6fcc044fcacdfcd0ea79af9f9899db0d1b899731a
5
5
  SHA512:
6
- metadata.gz: '0828a9f1e896785adf2559390abea8effd80dc8bf2bd7a8a46d8d4012b1b6521702f832bffcb5a4f3adfefdfddb921317aa976d224cf0a5e1686c9986518f06b'
7
- data.tar.gz: 9534d9266d817e5602dd25a2572d0a92d2b73e44f0e33b2182b2b4c2e3be26b81e85e733114b25667afd3cac064b3c78406261c3ceba474f9130ecbb97df2866
6
+ metadata.gz: 6ebdf227d9c0de147b3b058baae15e36ee198e526e61c430a20e33e6c1127ce369efd4b0028c28f6bdaa645060bd2c5ce5f163cc5c899230c12bb0ad22f82df4
7
+ data.tar.gz: 0c0989eb79de260f877ed2d8f18369092286614d8ecc3af17ffc764c07b3d7f0d163eb1fdb26d55ee4cfc4dfd0637ca56e59e03046e485d7a2d200ce992fda0a
data/README.md CHANGED
@@ -12,7 +12,7 @@ Please remember to read and follow the [Terms of Use](https://www.yelp.com/devel
12
12
  Add this line to your Rails application's Gemfile:
13
13
 
14
14
  ```ruby
15
- gem 'yelp-fusion', '0.3-beta'
15
+ gem 'yelp-fusion'
16
16
  ```
17
17
 
18
18
  Add this line to your Ruby appliation's Gemfile:
@@ -21,8 +21,6 @@ Add this line to your Ruby appliation's Gemfile:
21
21
  gem 'yelp-fusion', require: 'yelp/fusion'
22
22
  ```
23
23
 
24
-
25
-
26
24
  And then execute:
27
25
 
28
26
  $ bundle
@@ -50,7 +48,7 @@ use the gem with Rails, the client should be configured in an initializer.
50
48
  ```ruby
51
49
  require 'yelp/fusion'
52
50
 
53
- configuration = Yelp.client.configure do |config|
51
+ configuration = Yelp::Fusion.client.configure do |config|
54
52
  config.api_key = YOUR_API_KEY
55
53
  end
56
54
 
@@ -66,18 +64,44 @@ Once you have a client you can use ``#search`` to make a request to the Search A
66
64
  client.search('San Francisco')
67
65
  ```
68
66
 
69
- You can also pass in general params and locale options to the method as hashes
67
+ You can pass options to filter your search. `client.search` expects two
68
+ arguments:
69
+
70
+ * location
71
+ * params
72
+
73
+ The location arguments match the location option in search endpoint.[Seach API](https://www.yelp.com/developers/documentation/v3/business_search)
74
+ This attribute is attached to options send to the serch endpoint.
75
+
76
+ The params are convert to a hash and send to endpoint as verbatim options.
77
+
78
+ * term: Search for term eg: 'food', 'restaurants', or the business name.
79
+ * categories: A list of comma limited categories to filter the business search
80
+ * locale: Specify the locale to return the business information in.
81
+
82
+ Form more info and the completed list of options, please go to [Search API](https://www.yelp.com/developers/documentation/v3/business_search)
83
+
84
+ You can call search method using ruby arguments. The lisf or arguments will be
85
+ parsed as hash for the second parameter.
70
86
 
71
87
  ```ruby
72
- params = { term: 'food',
73
- limit: 3,
74
- category_filter: 'discgolf'
75
- }
88
+ # ruby arguments
89
+ client.search('San Francisco', term: 'restaurants')
90
+ ```
76
91
 
77
- locale = { lang: 'fr' }
92
+ You can also pass a hash as second argument.
78
93
 
79
- client.search('San Francisco', params, locale)
94
+ ```ruby
95
+ # hash params
96
+ params = {
97
+ term: 'food',
98
+ limit: 3,
99
+ category_filter: 'discgolf'
100
+ }
101
+
102
+ client.search('San Francisco', params)
80
103
  ```
104
+
81
105
  Key names and options for params and locale match the documented names on the [Yelp Search API](https://www.yelp.com/developers/documentation/v3/business_search)
82
106
 
83
107
  Additionally there is one more search methods for searching by [geographical coordinates](https://www.yelp.com/developers/documentation/v3/business_search):
@@ -182,7 +206,6 @@ You can generate and find your Access Tokens at [https://www.yelp.com/developers
182
206
 
183
207
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT), Copyright (c) 2018 Jobcase, Inc
184
208
 
185
-
186
209
  ## Code of Conduct
187
210
 
188
211
  Everyone interacting in the Yelp::Fusion project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/yelp-fusion/blob/master/CODE_OF_CONDUCT.md).
data/lib/yelp/fusion.rb CHANGED
@@ -20,7 +20,10 @@
20
20
 
21
21
  require 'yelp/fusion/client'
22
22
 
23
+ # Yelp::Fusion
24
+ #
23
25
  module Yelp
26
+ # Entry module for application
24
27
  module Fusion
25
28
  # Returns an initially-unconfigured instance of the client.
26
29
  # @return [Client] an instance of the client
@@ -33,4 +36,4 @@ module Yelp
33
36
  @client ||= Yelp::Fusion::Client.new
34
37
  end
35
38
  end
36
- end
39
+ end
@@ -17,6 +17,7 @@
17
17
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
+
20
21
  require 'faraday'
21
22
  require 'faraday_middleware'
22
23
  require 'yelp/fusion/configuration'
@@ -29,8 +30,11 @@ require 'yelp/fusion/endpoint/match'
29
30
  require 'yelp/fusion/endpoint/transaction'
30
31
  require 'yelp/fusion/singleton'
31
32
 
33
+ # Yelp::Fusion::Client
34
+ #
32
35
  module Yelp
33
36
  module Fusion
37
+ # Base class for the Yelp Client
34
38
  class Client
35
39
  include Fusion::Singleton
36
40
  API_HOST = 'https://api.yelp.com'.freeze
@@ -40,18 +44,21 @@ module Yelp
40
44
  # Creates an instance of the fusion client
41
45
  # @param options [String, nil] a consumer key
42
46
  # @return [Client] a new client initialized with the keys
43
-
47
+ #
44
48
  def initialize(option = nil)
45
49
  @configuration = nil
46
50
  define_request_methods
47
51
  return if option.nil?
52
+
48
53
  @configuration = Configuration.new(option)
49
54
  end
50
55
 
51
56
  # Creates a configuration with API keys
52
57
  # @return [@configuration] a frozen configuration
58
+ #
53
59
  def configure
54
60
  raise Error::AlreadyConfigured unless @configuration.nil?
61
+
55
62
  @configuration = Configuration.new
56
63
  yield(@configuration)
57
64
  check_api_keys
@@ -63,12 +70,12 @@ module Yelp
63
70
  if @configuration.nil? ||
64
71
  @configuration.api_key.nil? ||
65
72
  defined?(@configuration.api_key).nil?
73
+
66
74
  @configuration = nil
67
75
  raise Error::MissingAPIKeys
68
76
  else
69
77
  # Freeze the configuration so it cannot be modified once the gem is
70
- # configured. This prevents the configuration changing while the gem
71
- # is operating, which would necessitate invalidating various caches
78
+ # configured.
72
79
  @configuration.freeze
73
80
  end
74
81
  end
@@ -79,7 +86,6 @@ module Yelp
79
86
 
80
87
  check_api_keys
81
88
  @connection = Faraday.new(API_HOST) do |conn|
82
- # this guy uses oauth2 and bearer? maybe? to authorize the key
83
89
  conn.request :oauth2, @configuration.api_key, token_type: :bearer
84
90
  # Using default http library
85
91
  conn.adapter :net_http
@@ -18,8 +18,11 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Configuration
22
+ #
21
23
  module Yelp
22
24
  module Fusion
25
+ # Store configuration values for api.
23
26
  class Configuration
24
27
  attr_accessor :api_key
25
28
 
@@ -30,6 +33,7 @@ module Yelp
30
33
  # config_api String
31
34
  def initialize(config_api = nil)
32
35
  return unless !config_api.nil? && config_api.is_a?(String)
36
+
33
37
  self.api_key = config_api
34
38
  end
35
39
  end
@@ -23,9 +23,12 @@ require 'json'
23
23
 
24
24
  require 'yelp/fusion/responses/business'
25
25
 
26
+ # Yelp::Fusion::Endpoint::Business
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Endpoint
31
+ # Endpoint to make client requests to the Businesses API
29
32
  class Business
30
33
  PATH = '/v3/businesses/'.freeze
31
34
 
@@ -23,9 +23,12 @@ require 'json'
23
23
 
24
24
  require 'yelp/fusion/responses/business'
25
25
 
26
+ # Yelp::Fusion::Endpoint::Match
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Endpoint
31
+ # Class for requests to find matching businesses
29
32
  class Match
30
33
  PATH = '/v3/businesses/matches'.freeze
31
34
 
@@ -33,7 +36,7 @@ module Yelp
33
36
  @client = client
34
37
  end
35
38
 
36
- # Make a request to the business endpoint on the API
39
+ # Make a request to the business endpoint
37
40
  #
38
41
  # @param params [Hash] a hash of the required location parameters
39
42
  # @return [Response::Match] a parsed object of the response.
@@ -54,7 +57,7 @@ module Yelp
54
57
  private
55
58
 
56
59
  def match_request(params = {})
57
- result = @client.connection.get PATH, params
60
+ result = @client.connection.get(PATH, params)
58
61
  Error.check_for_error(result)
59
62
  result
60
63
  end
@@ -23,9 +23,12 @@ require 'json'
23
23
 
24
24
  require 'yelp/fusion/responses/phone'
25
25
 
26
+ # Yelp::Fusion::Endpoint::Phone
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Endpoint
31
+ # Class to search businesses by phone
29
32
  class Phone
30
33
  PATH = '/v3/businesses/search/phone'.freeze
31
34
 
@@ -61,7 +64,7 @@ module Yelp
61
64
  # @param phone [String] the phone number
62
65
  # @return [Faraday::Response] the raw response back from the connection
63
66
  def phone_request(phone)
64
- result = @client.connection.get PATH, phone
67
+ result = @client.connection.get(PATH, phone)
65
68
  Error.check_for_error(result)
66
69
  result
67
70
  end
@@ -23,9 +23,12 @@ require 'json'
23
23
 
24
24
  require 'yelp/fusion/responses/review'
25
25
 
26
+ # Yelp::Fusion::Endpoint::Review
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Endpoint
31
+ # Class to search for business reviews
29
32
  class Review
30
33
  PATH = '/v3/businesses/'.freeze
31
34
 
@@ -21,9 +21,12 @@
21
21
  require 'json'
22
22
  require 'yelp/fusion/responses/search'
23
23
 
24
+ # Yelp::Fusion::Endpoint::Search
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Endpoint
29
+ # Class to search for businesses
27
30
  class Search
28
31
  PATH = '/v3/businesses/search'.freeze
29
32
  def initialize(client)
@@ -81,6 +84,7 @@ module Yelp
81
84
  def search_by_coordinates(coordinates, params = {})
82
85
  raise Error::MissingLatLng if coordinates[:latitude].nil? ||
83
86
  coordinates[:longitude].nil?
87
+
84
88
  coordinates.merge!(params)
85
89
  Responses::Search.new(JSON.parse(search_request(coordinates).body))
86
90
  end
@@ -94,7 +98,7 @@ module Yelp
94
98
  # @param params [Hash] a hash of parameters for the search request
95
99
  # @return [Faraday::Response] the raw response back from the connection
96
100
  def search_request(params)
97
- result = @client.connection.get PATH, params
101
+ result = @client.connection.get(PATH, params)
98
102
  Yelp::Fusion::Error.check_for_error(result)
99
103
  result
100
104
  end
@@ -23,9 +23,12 @@ require 'json'
23
23
 
24
24
  require 'yelp/fusion/responses/business'
25
25
 
26
+ # Yelp::Fusion::Endpoint::Transaction
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Endpoint
31
+ # Endpoint to search for Yelp transactions
29
32
  class Transaction
30
33
  PATH = '/v3/transactions/'.freeze
31
34
 
@@ -33,11 +36,9 @@ module Yelp
33
36
  @client = client
34
37
  end
35
38
 
36
- # Make a request to the business endpoint on the API
37
- #
38
- # @param id [String] the business id
39
- # @param locale [Hash] a hash of supported locale-related parameters
40
- # @return [Response::Review] the parsed response object from the API
39
+ # Make a request to the transaction search endpoint of the API
40
+ # @param transaction_type [String] it has to be delivery
41
+ # @param location [Hash] a hash of supported locatio
41
42
  #
42
43
  # @example Get Transaction
43
44
  # review = client.transaction('delivery', 'San Francisco')
@@ -70,6 +71,7 @@ module Yelp
70
71
  def transaction_by_coordinates(transaction_type, coordinates)
71
72
  raise Error::MissingLatLng if coordinates[:latitude].nil? ||
72
73
  coordinates[:longitude].nil?
74
+
73
75
  result = transaction_request(transaction_type, coordinates)
74
76
  Responses::Transaction.new(JSON.parse(result.body))
75
77
  end
@@ -20,15 +20,19 @@
20
20
 
21
21
  require 'json'
22
22
 
23
+ # Yelp::Fusion::Error::ResponseValidator
23
24
  module Yelp
24
25
  module Fusion
26
+ # Module to handle errors in Gem
25
27
  module Error
28
+ # Class to handle error responses
26
29
  class ResponseValidator
27
30
  # If the request is not successful, raise an appropriate Yelp::Error
28
31
  # exception with the error text from the request response.
29
32
  # @param response from the Yelp API
30
33
  def validate(response)
31
34
  return if successful_response?(response)
35
+
32
36
  raise error_from_response(response)
33
37
  end
34
38
 
@@ -64,12 +68,14 @@ module Yelp
64
68
  @response_validator.validate(response)
65
69
  end
66
70
 
71
+ # Standard error response class
67
72
  class Base < StandardError
68
73
  def initialize(msg, _error = nil)
69
74
  super(msg)
70
75
  end
71
76
  end
72
77
 
78
+ # Class to handle an already configure Yelp Client
73
79
  class AlreadyConfigured < Base
74
80
  def initialize(msg = 'Gem cannot be reconfigured. Initialize a new ' \
75
81
  'instance of Yelp::Client.', error = nil)
@@ -77,12 +83,14 @@ module Yelp
77
83
  end
78
84
  end
79
85
 
86
+ # Class for missing Yelp API Keys
80
87
  class MissingAPIKeys < Base
81
88
  def initialize(msg = "You're missing an API key", error = nil)
82
89
  super
83
90
  end
84
91
  end
85
92
 
93
+ # Class for missing Latitude or longitude
86
94
  class MissingLatLng < Base
87
95
  def initialize(msg = 'Missing required latitude '\
88
96
  'or longitude parameters', error = nil)
@@ -90,17 +98,29 @@ module Yelp
90
98
  end
91
99
  end
92
100
 
101
+ # Class for invalid Auth Token
93
102
  class TokenInvalid < Base; end
103
+ # Class if no Yelp Location is found
94
104
  class LocationNotFound < Base; end
105
+ # Class if the rate limit is exceeded
95
106
  class TooManyRequestsPerSecond < Base; end
107
+ # Class if Yelp experiences a internal error
96
108
  class InternalError < Base; end
109
+ # Class if a Validation Error occurs
97
110
  class ValidationError < Base; end
111
+ # Class if an auth token is missing
98
112
  class TokenMissing < Base; end
113
+ # Class for timed out requests
99
114
  class RequestTimedOut < Base; end
115
+ # Class if the access limit for requests
116
+ # is reached
100
117
  class AccessLimitReached < Base; end
118
+ # Class for resources not found
101
119
  class NotFound < Base; end
120
+ # Class for client erro
102
121
  class ClientError < Base; end
122
+ # Class if businesses are not found
103
123
  class BusinessNotFound < Base; end
104
124
  end
105
125
  end
106
- end
126
+ end
@@ -18,13 +18,16 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Responses::Base
21
22
  module Yelp
22
23
  module Fusion
23
24
  module Responses
25
+ # Base instance variables sent back from JSON response
24
26
  class Base
25
- # yelp returns its data in JSON form/language
27
+ # yelp returns its data in JSON format.
26
28
  def initialize(json)
27
29
  return if json.nil?
30
+
28
31
  json.each do |key, value|
29
32
  instance_variable_set("@#{key}", value)
30
33
  end
@@ -35,6 +38,7 @@ module Yelp
35
38
  def parse(json, klass)
36
39
  return json.collect { |j| klass.new(j) } if json.is_a?(Array)
37
40
  return klass.new(json) if json
41
+
38
42
  nil
39
43
  end
40
44
  end
@@ -21,9 +21,12 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/business'
23
23
 
24
+ # Yelp::Fusion::Responses::Business
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
29
+ # Base class to parse responses from the Business API
27
30
  class Business < Base
28
31
  attr_reader :business
29
32
  def initialize(json)
@@ -21,9 +21,12 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/business'
23
23
 
24
+ # Yelp::Fusion::Responses
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
29
+ # Base class to parse json from the Business Match endpoint
27
30
  class Match < Base
28
31
  attr_reader :total, :businesses
29
32
  def initialize(json)
@@ -23,10 +23,13 @@ require 'yelp/fusion/responses/models/categories'
23
23
  require 'yelp/fusion/responses/models/location'
24
24
  require 'yelp/fusion/responses/models/hours'
25
25
 
26
+ # Yelp::Fusion::Responses::Models::Business
27
+ #
26
28
  module Yelp
27
29
  module Fusion
28
30
  module Responses
29
31
  module Models
32
+ # Model for the Yelp Business response JSON
30
33
  class Business < Responses::Base
31
34
  attr_reader :categories, :coordinates, :display_phone,
32
35
  :distance, :id,
@@ -34,6 +37,7 @@ module Yelp
34
37
  :name, :phone, :price,
35
38
  :rating, :review_count, :url, :transactions,
36
39
  :hours, :is_claimed, :photos
40
+
37
41
  def initialize(json)
38
42
  super(json)
39
43
  @categories = parse(@categories, Categories)
@@ -18,10 +18,13 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Responses::Models::Categories
22
+ #
21
23
  module Yelp
22
24
  module Fusion
23
25
  module Responses
24
26
  module Models
27
+ # Model for the Categories JSON body
25
28
  class Categories < Responses::Base
26
29
  attr_reader :alias, :title
27
30
  def initialize(json)
@@ -18,10 +18,13 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Responses::Models::Center
22
+ #
21
23
  module Yelp
22
24
  module Fusion
23
25
  module Responses
24
26
  module Models
27
+ # Model fot the Center json body
25
28
  class Center < Responses::Base
26
29
  attr_reader :latitude, :longitude
27
30
  def initialize(json)
@@ -21,10 +21,13 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/openHours'
23
23
 
24
+ # Yelp::Fusion::Responses::Models::Hours
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
27
29
  module Models
30
+ # Model for the Hours JSON body
28
31
  class Hours < Responses::Base
29
32
  attr_reader :is_open_now, :hours_type, :open
30
33
  def initialize(json)
@@ -18,10 +18,13 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Responses::Models::Location
22
+ #
21
23
  module Yelp
22
24
  module Fusion
23
25
  module Responses
24
26
  module Models
27
+ # Model for the Location JSON body
25
28
  class Location < Responses::Base
26
29
  attr_reader :city, :country, :address2, :address3,
27
30
  :state, :address1, :zip_code,
@@ -18,10 +18,13 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::Responses::Models::OpenHours
22
+ #
21
23
  module Yelp
22
24
  module Fusion
23
25
  module Responses
24
26
  module Models
27
+ # Model for the OpenHours JSON body
25
28
  class OpenHours < Responses::Base
26
29
  attr_reader :day, :start, :end, :is_overnight
27
30
  def initialize(json)
@@ -21,10 +21,13 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/center'
23
23
 
24
+ # Yelp::Fusion::Responses::Models::Region
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
27
29
  module Models
30
+ # Model for the Region JSON body
28
31
  class Region < Responses::Base
29
32
  attr_reader :center
30
33
  def initialize(json)
@@ -21,10 +21,13 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/user'
23
23
 
24
+ # Yelp::Fusion::Responses::Models::Reviews
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
27
29
  module Models
30
+ # Model for the Reviews JSON body
28
31
  class Reviews < Base
29
32
  attr_reader :id, :rating, :user, :text, :time_created, :url
30
33
  def initialize(json)
@@ -20,10 +20,13 @@
20
20
 
21
21
  require 'yelp/fusion/responses/base'
22
22
 
23
+ # Yelp::Fusion::Responses::Models::Users
24
+ #
23
25
  module Yelp
24
26
  module Fusion
25
27
  module Responses
26
28
  module Models
29
+ # Model for the User JSON body
27
30
  class User < Base
28
31
  attr_reader :image_url, :name
29
32
  def initialize(json)
@@ -21,11 +21,16 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/business'
23
23
 
24
+ # Yelp::Fusion::Responses:Phone
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
29
+ # Base class to parse the business
30
+ # phone response JSON
27
31
  class Phone < Base
28
32
  attr_reader :total, :businesses
33
+
29
34
  def initialize(json)
30
35
  super(json)
31
36
  @businesses = parse(@businesses, Models::Business)
@@ -21,9 +21,12 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/reviews'
23
23
 
24
+ # Yelp::Fusion::Response::Review
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
29
+ # Class to parse the Review response JSON
27
30
  class Review < Base
28
31
  attr_reader :reviews, :total, :possible_languages
29
32
  def initialize(json)
@@ -22,9 +22,12 @@ require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/business'
23
23
  require 'yelp/fusion/responses/models/region'
24
24
 
25
+ # Yelp::Fusion::Responses::Search
26
+ #
25
27
  module Yelp
26
28
  module Fusion
27
29
  module Responses
30
+ # Class to parse the Search response JSON
28
31
  class Search < Base
29
32
  attr_reader :businesses, :region, :total
30
33
  def initialize(json)
@@ -21,9 +21,12 @@
21
21
  require 'yelp/fusion/responses/base'
22
22
  require 'yelp/fusion/responses/models/business'
23
23
 
24
+ # Yelp::Fusion::Responses::Transaction
25
+ #
24
26
  module Yelp
25
27
  module Fusion
26
28
  module Responses
29
+ # Class to parse the Transaction response JSON
27
30
  class Transaction < Base
28
31
  attr_reader :total, :businesses
29
32
  def initialize(json)
@@ -1,5 +1,29 @@
1
+ # Copyright (c) Jobcase, Inc. All rights reserved.
2
+
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ # Yelp::Fusion::Singleton
22
+ #
1
23
  module Yelp
2
24
  module Fusion
25
+ # Load each endpoint object once for acces by the
26
+ # Yelp::Fusion::Client object
3
27
  module Singleton
4
28
  REQUEST_CLASSES = [Yelp::Fusion::Endpoint::Search,
5
29
  Yelp::Fusion::Endpoint::Business,
@@ -18,8 +18,10 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
+ # Yelp::Fusion::VERSION
22
+ #
21
23
  module Yelp
22
24
  module Fusion
23
- VERSION = '0.3-beta'.freeze
25
+ VERSION = '1.0'.freeze
24
26
  end
25
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yelp-fusion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.pre.beta
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Grueter
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-07-30 00:00:00.000000000 Z
12
+ date: 2019-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -223,7 +223,7 @@ files:
223
223
  - lib/yelp/fusion/responses/models/center.rb
224
224
  - lib/yelp/fusion/responses/models/hours.rb
225
225
  - lib/yelp/fusion/responses/models/location.rb
226
- - lib/yelp/fusion/responses/models/openHours.rb
226
+ - lib/yelp/fusion/responses/models/open_hours.rb
227
227
  - lib/yelp/fusion/responses/models/region.rb
228
228
  - lib/yelp/fusion/responses/models/reviews.rb
229
229
  - lib/yelp/fusion/responses/models/user.rb
@@ -249,12 +249,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
249
249
  version: 2.2.2
250
250
  required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  requirements:
252
- - - ">"
252
+ - - ">="
253
253
  - !ruby/object:Gem::Version
254
- version: 1.3.1
254
+ version: '0'
255
255
  requirements: []
256
- rubyforge_project:
257
- rubygems_version: 2.7.6
256
+ rubygems_version: 3.0.6
258
257
  signing_key:
259
258
  specification_version: 4
260
259
  summary: "{A Ruby gem for the Yelp Fusion (V3) API}"