lib/transprt.rb in transprt-0.2.1 vs lib/transprt.rb in transprt-0.2.2

- old
+ new

@@ -1,78 +2 @@ -require 'rubygems' -require 'rest_client' -require 'json' - -module Transprt - class Client - DEFAULT_DOMAIN = 'http://transport.opendata.ch' - VERSION = 'v1' - - def initialize(domain=DEFAULT_DOMAIN, version=VERSION) - @domain = domain - @version = version - end - - # - # => find locations - # - def locations(parameters) - allowed_parameters = ['query', 'x', 'y', 'type'] - - query = create_query(parameters, allowed_parameters) - locations = perform('locations', query) - - locations['stations'] - end - - # - # => find connections - # - def connections(parameters) - allowed_parameters = ['from', 'to', 'via', 'date', 'time', 'isArrivalTime', 'transportations', 'limit', 'page', - 'direct', 'sleeper', 'couchette', 'bike'] - - query = create_query(parameters, allowed_parameters) - locations = perform('connections', query) - - locations['connections'] - end - - # - # => find station boards - # - def stationboard(parameters) - allowed_parameters = ['station', 'id', 'limit', 'transportations', 'datetime'] - - query = create_query(parameters, allowed_parameters) - locations = perform('stationboard', query) - - locations['stationboard'] - end - - private - attr_reader :domain, :version - - def perform(endpoint, query) - url = "#{create_url(endpoint)}#{query}" - response = RestClient.get(url) - - # Uncomment the line below to dump the response in order to generate - # a file to use as response stub in tests. - # File.write('/tmp/response.json', response) - - JSON.parse(response) - end - - def create_url(endpoint) - [domain, version, endpoint].join('/') + '?' - end - - def create_query(parameters, allowed_parameters) - parameters.map do |k,v| - next unless allowed_parameters.include?(k.to_s) - - "#{k}=#{URI.escape(v)}" - end.join('&') - end - end -end +require 'transprt/client'