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
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                MDhiOTVjZGU2NWRiMTI1ZjU4OGJjMWVmOWI5MWMxNTZhMGVmODA5Yg==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                MmUyZjBmNmUzZTJkMjE1M2QyMzUzNjNkZTA1Y2VkMmVhMTJhMTFjNQ==
         | 
| 7 7 | 
             
            !binary "U0hBNTEy":
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                OTc2MzAyOTdhN2I4NWFmMTA1OTUyYzI3MDc0ZDdiNGRkMWNmNjg5NDA0ODI1
         | 
| 10 | 
            +
                Zjc5OWZlOTQxYzNlZWNjNmQ4NmJhOWJhOGMyOTliZjY0ZjRmMzdkNDExNWQ0
         | 
| 11 | 
            +
                MWIxMmE1MDdiZDk1MjE4ZjIzNDc5NzA5ODQxYWRiOGNhYzQ1ZTQ=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                YTg4Mzc5MGIwYWRjMzNjMDEyYzhjODdkODZkYzU1ZGNjYzQ3NGQzMjAyMzNl
         | 
| 14 | 
            +
                NzU3ZGU0ZTRlZGQyODIwNmY1MGEzODc5ZjY1NmJhYWI3MmNjOTJlZTdjNzYz
         | 
| 15 | 
            +
                M2QzYjU5OWVmOGFiNzM3ODcwNjVjM2ZhODY4N2IwMWE5MTI0MjU=
         | 
    
        data/CHANGELOG.rdoc
    CHANGED
    
    
    
        data/{README.rdoc → README.md}
    RENAMED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            ## Yelpster
         | 
| 2 2 |  | 
| 3 3 | 
             
            A Ruby object-oriented interface to the local business content available
         | 
| 4 4 | 
             
            on Yelp at http://www.yelp.com.  Functionality is provided to perform
         | 
| @@ -12,11 +12,11 @@ all searches available via the developer API including: | |
| 12 12 |  | 
| 13 13 | 
             
            More detailed information on the underlying Yelp API, error response codes, and so forth is available at http://www.yelp.com/developers/getting_started.
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 15 | 
            +
            This documentation is available at http://rubydoc.info/github/nvd/yelpster.
         | 
| 16 16 |  | 
| 17 17 | 
             
            The latest source code is at http://github.com/nvd/yelpster.
         | 
| 18 18 |  | 
| 19 | 
            -
             | 
| 19 | 
            +
            ## Requirements
         | 
| 20 20 |  | 
| 21 21 | 
             
            You must have a Yelp Web Service ID (YWSID) if you're using v1 of the api or Consumer Key, Consumer Secret, Token and a Token Secret for version 2. These are available at http://www.yelp.com/developers/getting_started/api_access.
         | 
| 22 22 |  | 
| @@ -25,20 +25,26 @@ retrieved via their API, documented at http://www.yelp.com/developers/getting_st | |
| 25 25 |  | 
| 26 26 | 
             
            For tests to execute successfully you must have the YWSID (for v1) or YELP_CONSUMER_KEY, YELP_CONSUMER_SECRET, YELP_TOKEN and YELP_TOKEN_SECRET(for v2) set in your environment via (shell-dependent, bash example provided):
         | 
| 27 27 |  | 
| 28 | 
            +
            ```console
         | 
| 28 29 | 
             
             % export YWSID='YOUR_ID_HERE'
         | 
| 30 | 
            +
            ```
         | 
| 29 31 |  | 
| 30 32 | 
             
            or
         | 
| 31 33 |  | 
| 34 | 
            +
            ```console
         | 
| 32 35 | 
             
             % export YELP_CONSUMER_KEY='YOUR_CONSUMER_KEY_HERE'
         | 
| 33 36 | 
             
             % export YELP_CONSUMER_SECRET='YOUR_CONSUMER_SECRET_HERE'
         | 
| 34 37 | 
             
             % export YELP_PTOKEN='YOUR_TOKEN_HERE'
         | 
| 35 38 | 
             
             % export YELPP_TOKEN_SECRET='YOUR_TOKEN_SECRET_HERE'
         | 
| 39 | 
            +
            ```
         | 
| 36 40 |  | 
| 37 | 
            -
             | 
| 41 | 
            +
            ## Installing
         | 
| 38 42 |  | 
| 43 | 
            +
            ```console
         | 
| 39 44 | 
             
             % gem install yelpster
         | 
| 45 | 
            +
            ```
         | 
| 40 46 |  | 
| 41 | 
            -
             | 
| 47 | 
            +
            ## Usage
         | 
| 42 48 |  | 
| 43 49 | 
             
            Instantiate a Yelp::Client and use its +search+ method to make requests of
         | 
| 44 50 | 
             
            the Yelp server.
         | 
| @@ -64,6 +70,7 @@ types. | |
| 64 70 |  | 
| 65 71 | 
             
            A few examples:
         | 
| 66 72 |  | 
| 73 | 
            +
            ```ruby
         | 
| 67 74 | 
             
             # construct a client instance
         | 
| 68 75 | 
             
             client = Yelp::Client.new
         | 
| 69 76 |  | 
| @@ -101,10 +108,10 @@ A few examples: | |
| 101 108 | 
             
             # retrieve details of business vi yelp business id
         | 
| 102 109 | 
             
             request = Yelp::V2::Business::Request::Id.new(
         | 
| 103 110 | 
             
            			:yelp_business_id => "pjb2WMwa0AfK3L-dWimO8w",
         | 
| 104 | 
            -
            			:consumer_key =>  | 
| 105 | 
            -
            			:consumer_secret =>  | 
| 106 | 
            -
            			:token =>  | 
| 107 | 
            -
            			:token_secret =>  | 
| 111 | 
            +
            			:consumer_key => 'YOUR_CONSUMER_KEY',
         | 
| 112 | 
            +
            			:consumer_secret => 'YOUR_CONSUMER_SECRET',
         | 
| 113 | 
            +
            			:token => 'YOUR_TOKEN',
         | 
| 114 | 
            +
            			:token_secret => 'YOUR_TOKEN_SECRET')
         | 
| 108 115 | 
             
             response = client.search(request)
         | 
| 109 116 |  | 
| 110 117 | 
             
             # search for businesses via bounding box geo coords'
         | 
| @@ -115,10 +122,10 @@ A few examples: | |
| 115 122 | 
             
            			:ne_latitude => 37.788022,
         | 
| 116 123 | 
             
            			:ne_longitude => -122.399797,
         | 
| 117 124 | 
             
            			:limit => 3,
         | 
| 118 | 
            -
            			:consumer_key =>  | 
| 119 | 
            -
            			:consumer_secret =>  | 
| 120 | 
            -
            			:token =>  | 
| 121 | 
            -
            			:token_secret =>  | 
| 125 | 
            +
            			:consumer_key => 'YOUR_CONSUMER_KEY',
         | 
| 126 | 
            +
            			:consumer_secret => 'YOUR_CONSUMER_SECRET',
         | 
| 127 | 
            +
            			:token => 'YOUR_TOKEN',
         | 
| 128 | 
            +
            			:token_secret => 'YOUR_TOKEN_SECRET')
         | 
| 122 129 | 
             
             response = client.search(request)
         | 
| 123 130 |  | 
| 124 131 | 
             
             # search for businesses via lat/long geo point'
         | 
| @@ -126,20 +133,20 @@ A few examples: | |
| 126 133 | 
             
            			:term => "cream puffs",
         | 
| 127 134 | 
             
            			:latitude => 37.788022,
         | 
| 128 135 | 
             
            			:longitude => -122.399797,
         | 
| 129 | 
            -
            			:consumer_key =>  | 
| 130 | 
            -
            			:consumer_secret =>  | 
| 131 | 
            -
            			:token =>  | 
| 132 | 
            -
            			:token_secret =>  | 
| 136 | 
            +
            			:consumer_key => 'YOUR_CONSUMER_KEY',
         | 
| 137 | 
            +
            			:consumer_secret => 'YOUR_CONSUMER_SECRET',
         | 
| 138 | 
            +
            			:token => 'YOUR_TOKEN',
         | 
| 139 | 
            +
            			:token_secret => 'YOUR_TOKEN_SECRET')
         | 
| 133 140 | 
             
             response = client.search(request)
         | 
| 134 141 |  | 
| 135 142 | 
             
             # search for businesses via location (address, neighbourhood, city, state, zip, country, latitude, longitude)'
         | 
| 136 143 | 
             
             request = Yelp::V2::Search::Request::Location.new(
         | 
| 137 144 | 
             
            			:term => "cream puffs",
         | 
| 138 145 | 
             
            			:city => "San Francisco",
         | 
| 139 | 
            -
            			:consumer_key =>  | 
| 140 | 
            -
            			:consumer_secret =>  | 
| 141 | 
            -
            			:token =>  | 
| 142 | 
            -
            			:token_secret =>  | 
| 146 | 
            +
            			:consumer_key => 'YOUR_CONSUMER_KEY',
         | 
| 147 | 
            +
            			:consumer_secret => 'YOUR_CONSUMER_SECRET',
         | 
| 148 | 
            +
            			:token => 'YOUR_TOKEN',
         | 
| 149 | 
            +
            			:token_secret => 'YOUR_TOKEN_SECRET')
         | 
| 143 150 | 
             
             response = client.search(request)
         | 
| 144 151 |  | 
| 145 152 | 
             
             request = Yelp::V2::Search::Request::Location.new(
         | 
| @@ -147,20 +154,21 @@ A few examples: | |
| 147 154 | 
             
            			:address => "Hayes",
         | 
| 148 155 | 
             
            			:latitude => 37.77493,
         | 
| 149 156 | 
             
            			:longitude => -122.419415,
         | 
| 150 | 
            -
            			:consumer_key =>  | 
| 151 | 
            -
            			:consumer_secret =>  | 
| 152 | 
            -
            			:token =>  | 
| 153 | 
            -
            			:token_secret =>  | 
| 157 | 
            +
            			:consumer_key => 'YOUR_CONSUMER_KEY',
         | 
| 158 | 
            +
            			:consumer_secret => 'YOUR_CONSUMER_SECRET',
         | 
| 159 | 
            +
            			:token => 'YOUR_TOKEN',
         | 
| 160 | 
            +
            			:token_secret => 'YOUR_TOKEN_SECRET')
         | 
| 154 161 | 
             
             response = client.search(request)
         | 
| 162 | 
            +
            ```
         | 
| 155 163 |  | 
| 156 164 | 
             
            If you want to convert some addresses to latitude/longitude, or vice
         | 
| 157 165 | 
             
            versa, for testing or what have you -- try http://stevemorse.org/jcal/latlon.php.
         | 
| 158 166 |  | 
| 159 | 
            -
             | 
| 167 | 
            +
            ## License
         | 
| 160 168 |  | 
| 161 169 | 
             
            This library is provided via the GNU LGPL license at http://www.gnu.org/licenses/lgpl.html.
         | 
| 162 170 |  | 
| 163 | 
            -
             | 
| 171 | 
            +
            ## Authors
         | 
| 164 172 |  | 
| 165 173 | 
             
            Copyright 2007 - 2009, Walter Korman <shaper@fatgoose.com>, http://lemurware.blogspot.com
         | 
| 166 174 |  | 
    
        data/lib/yelpster.rb
    CHANGED
    
    
    
        data/lib/yelpster/client.rb
    CHANGED
    
    | @@ -29,10 +29,10 @@ class Yelp | |
| 29 29 | 
             
              class Client
         | 
| 30 30 | 
             
                # allows specifying the user agent string to submit with search requests
         | 
| 31 31 | 
             
                attr_accessor :agent
         | 
| 32 | 
            -
             | 
| 32 | 
            +
             | 
| 33 33 | 
             
                # whether debug mode is enabled for logging purposes, defaulting to false
         | 
| 34 34 | 
             
                attr_accessor :debug
         | 
| 35 | 
            -
             | 
| 35 | 
            +
             | 
| 36 36 | 
             
                # the Logger compatible object with which log messages are outputted,
         | 
| 37 37 | 
             
                # defaulting to output to STDOUT
         | 
| 38 38 | 
             
                attr_accessor :logger
         | 
| @@ -48,7 +48,7 @@ class Yelp | |
| 48 48 | 
             
                  @debug = false
         | 
| 49 49 | 
             
                  @logger = nil
         | 
| 50 50 | 
             
                end
         | 
| 51 | 
            -
             | 
| 51 | 
            +
             | 
| 52 52 | 
             
                # Submits the supplied search request to Yelp and returns the response in
         | 
| 53 53 | 
             
                # the format specified by the request.
         | 
| 54 54 | 
             
                #
         | 
| @@ -61,10 +61,10 @@ class Yelp | |
| 61 61 | 
             
                  debug_msg "submitting search [url=#{url}, request=#{request.to_yaml}]."
         | 
| 62 62 |  | 
| 63 63 | 
             
                  # submit the http request for the results
         | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 64 | 
            +
                  # http_request_params not used in v2 as OAuth (implemented in v2) only takes response params
         | 
| 65 | 
            +
                  http_params = { 'User-Agent' => @agent }
         | 
| 66 | 
            +
                  http_params['Accept-Encoding'] = 'gzip,deflate' if request.compress_response?
         | 
| 67 | 
            +
                  content = request.pull_results(url, http_params)
         | 
| 68 68 |  | 
| 69 69 | 
             
                  # read the response content
         | 
| 70 70 | 
             
                  debug_msg((request.response_format.serialized?) ? "received response [content_length=#{content.length}]." : "received response [content_length=#{content.length}, content=#{content}].")
         | 
| @@ -75,31 +75,29 @@ class Yelp | |
| 75 75 |  | 
| 76 76 | 
             
                protected
         | 
| 77 77 |  | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 102 | 
            -
                    url
         | 
| 103 | 
            -
                  end
         | 
| 78 | 
            +
                def format_content (response_format, content)
         | 
| 79 | 
            +
                  (response_format == Yelp::ResponseFormat::JSON_TO_RUBY) ? JSON.parse(content) : content
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                def debug_msg (message)
         | 
| 83 | 
            +
                  return if !@debug
         | 
| 84 | 
            +
                  @logger = Logger.new(STDOUT) if (!@logger)
         | 
| 85 | 
            +
                  @logger.debug message
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                def build_url (base_url, params)
         | 
| 89 | 
            +
                  "#{base_url}?#{to_query_string(params)}"
         | 
| 90 | 
            +
                end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                def to_query_string(params)
         | 
| 93 | 
            +
                  params.delete_if { |_, v| v.nil? }
         | 
| 94 | 
            +
                        .to_a
         | 
| 95 | 
            +
                        .map { |key, value| "#{escape(key)}=#{escape(value)}" }
         | 
| 96 | 
            +
                        .join('&')
         | 
| 97 | 
            +
                end
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                def escape(object)
         | 
| 100 | 
            +
                  object.kind_of?(Array) ? object.map { |v| CGI.escape(v.to_s) }.join('+') : CGI.escape(object.to_s)
         | 
| 101 | 
            +
                end
         | 
| 104 102 | 
             
              end
         | 
| 105 103 | 
             
            end
         | 
| @@ -2,13 +2,13 @@ require 'yelpster/v1/request' | |
| 2 2 |  | 
| 3 3 | 
             
            class Yelp
         | 
| 4 4 | 
             
              module V1
         | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 5 | 
            +
                module Neighborhood
         | 
| 6 | 
            +
                  module Request
         | 
| 7 | 
            +
                    class Base < Yelp::V1::Request
         | 
| 8 | 
            +
                      def base_url
         | 
| 9 | 
            +
                        'http://api.yelp.com/neighborhood_search'
         | 
| 10 | 
            +
                      end
         | 
| 11 | 
            +
                    end
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
              end
         | 
| @@ -2,23 +2,23 @@ require 'yelpster/v1/neighborhood/request/base' | |
| 2 2 |  | 
| 3 3 | 
             
            class Yelp
         | 
| 4 4 | 
             
              module V1
         | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 5 | 
            +
                module Neighborhood
         | 
| 6 | 
            +
                  module Request
         | 
| 7 | 
            +
                    # Describes a request to search for the name of a neighborhood at a
         | 
| 8 | 
            +
                    # specific geo-point location.
         | 
| 9 | 
            +
                    #
         | 
| 10 | 
            +
                    class GeoPoint < Yelp::V1::Neighborhood::Request::Base
         | 
| 11 | 
            +
                      # latitude of geo-point for which a neighborhood name is desired
         | 
| 12 | 
            +
                      attr_reader :latitude
         | 
| 13 13 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 14 | 
            +
                      # longitude of geo-point for which a neighborhood name is desired
         | 
| 15 | 
            +
                      attr_reader :longitude
         | 
| 16 16 |  | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 17 | 
            +
                      def to_yelp_params
         | 
| 18 | 
            +
                        super.merge(:lat => latitude,
         | 
| 19 | 
            +
                                    :long => longitude)
         | 
| 20 | 
            +
                      end
         | 
| 21 | 
            +
                    end
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 | 
             
                end
         | 
| 24 24 | 
             
              end
         | 
| @@ -2,52 +2,52 @@ require 'yelpster/v1/neighborhood/request/base' | |
| 2 2 |  | 
| 3 3 | 
             
            class Yelp
         | 
| 4 4 | 
             
              module V1
         | 
| 5 | 
            -
             | 
| 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 | 
            -
             | 
| 5 | 
            +
                module Neighborhood
         | 
| 6 | 
            +
                  module Request
         | 
| 7 | 
            +
                    # Describes a request to search for a neighborhood name for 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 | 
            +
                    # +state+ and +zipcode+ will suffice.
         | 
| 11 | 
            +
                    #
         | 
| 12 | 
            +
                    class Location < Yelp::V1::Neighborhood::Request::Base
         | 
| 13 | 
            +
                      # the street address of the location sought
         | 
| 14 | 
            +
                      attr_reader :address
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                      # the city of the location sought
         | 
| 17 | 
            +
                      attr_reader :city
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                      # the state of the location sought
         | 
| 20 | 
            +
                      attr_reader :state
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                      # the zipcode of the location sought
         | 
| 23 | 
            +
                      attr_reader :zipcode
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                      def initialize (params)
         | 
| 26 | 
            +
                        # we explicitly initialize the location fields since we reference
         | 
| 27 | 
            +
                        # them later when building a full location string and we want
         | 
| 28 | 
            +
                        # to know they were initialized properly (and avoid warnings)
         | 
| 29 | 
            +
                        super({
         | 
| 30 | 
            +
                          :address => nil,
         | 
| 31 | 
            +
                          :city => nil,
         | 
| 32 | 
            +
                          :state => nil,
         | 
| 33 | 
            +
                          :zipcode => nil
         | 
| 34 | 
            +
                        }.merge(params))
         | 
| 35 | 
            +
                      end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                      def to_yelp_params
         | 
| 38 | 
            +
                        super.merge(:location => build_location_string)
         | 
| 39 | 
            +
                      end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                      protected
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                      # Returns the Yelp-compatible concatenated string with the various
         | 
| 44 | 
            +
                      # possible bits of an address-oriented location.
         | 
| 45 | 
            +
                      #
         | 
| 46 | 
            +
                      def build_location_string
         | 
| 47 | 
            +
                        # per the Yelp documentation, the location string is to be built
         | 
| 48 | 
            +
                        # as some combination of "address, city, state, or zip".
         | 
| 49 | 
            +
                        [ @address, @city, @state, @zipcode ].compact.join(',')
         | 
| 50 | 
            +
                      end
         | 
| 51 51 | 
             
                    end
         | 
| 52 52 | 
             
                  end
         | 
| 53 53 | 
             
                end
         | 
| @@ -2,24 +2,24 @@ require 'yelpster/v1/request' | |
| 2 2 |  | 
| 3 3 | 
             
            class Yelp
         | 
| 4 4 | 
             
              module V1
         | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 5 | 
            +
                module Phone
         | 
| 6 | 
            +
                  module Request
         | 
| 7 | 
            +
                    # Describes a request to search for a business review for the business
         | 
| 8 | 
            +
                    # associated with a specific phone number.
         | 
| 9 | 
            +
                    #
         | 
| 10 | 
            +
                    class Number < Yelp::V1::Request
         | 
| 11 | 
            +
                      # the phone number of the business to search for, formatted as
         | 
| 12 | 
            +
                      # '1112223333'.  Make sure you don't have any hyphens or parentheses.
         | 
| 13 | 
            +
                      attr_reader :phone_number
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 15 | 
            +
                      def base_url
         | 
| 16 | 
            +
                        'http://api.yelp.com/phone_search'
         | 
| 17 | 
            +
                      end
         | 
| 18 18 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 19 | 
            +
                      def to_yelp_params
         | 
| 20 | 
            +
                        super.merge(:phone => phone_number)
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 23 23 | 
             
                  end
         | 
| 24 24 | 
             
                end
         | 
| 25 25 | 
             
              end
         |