Module: Parkwhiz

Defined in:
lib/parkwhiz.rb,
lib/parkwhiz/event.rb,
lib/parkwhiz/venue.rb,
lib/parkwhiz/errors.rb,
lib/parkwhiz/search.rb,
lib/parkwhiz/version.rb,
lib/parkwhiz/location.rb,
lib/parkwhiz/connection.rb,
lib/parkwhiz/configuration.rb

Defined Under Namespace

Classes: Event, Location, SearchError, Venue

Constant Summary collapse

SEARCH_PATH =
"/search/"
VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.api_keyObject



10
11
12
# File 'lib/parkwhiz/configuration.rb', line 10

def self.api_key
  @@api_key
end

.api_key=(api_key) ⇒ Object



6
7
8
# File 'lib/parkwhiz/configuration.rb', line 6

def self.api_key=(api_key)
  @@api_key = api_key
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Parkwhiz)

    the object that the method was called on



2
3
4
# File 'lib/parkwhiz/configuration.rb', line 2

def self.configure
  yield self
end

.connectionObject



6
7
8
9
10
11
12
13
# File 'lib/parkwhiz/connection.rb', line 6

def self.connection
  @connection ||= Faraday.new(url: 'http://api.parkwhiz.com') do |faraday|
    faraday.request  :url_encoded             # form-encode POST params
    faraday.response :logger                  # log requests to STDOUT
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
    faraday.response :json
  end
end

.connection=(connection) ⇒ Object



2
3
4
# File 'lib/parkwhiz/connection.rb', line 2

def self.connection=(connection)
  @connection = connection
end

.search(search_parameters) ⇒ Object

Search

Returns: Array of ParkWhiz::Location

Endpoint: www.parkwhiz.com/developers/search/

Raises:



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/parkwhiz/search.rb', line 12

def self.search(search_parameters)
  response = connection.get do |request|
    request.url SEARCH_PATH
    request.params['key'] = api_key
    request.params.merge!(search_parameters)
  end

  raise SearchError.new(response.body['error']) if response.body.kind_of?(Hash) && response.body['error']

  response.body['parking_listings'].collect{|parking_listing_json| Location.new(parking_listing_json)}
end