class GdsApi::Base
def self.logger
def self.logger @logger ||= NullLogger.instance end
def client
def client @client ||= create_client end
def create_client
def create_client GdsApi::JsonClient.new(options) end
def get_list!(url)
def get_list!(url) get_json!(url) do |r| GdsApi::ListResponse.new(r, self) end end
def initialize(endpoint_url, options={})
def initialize(endpoint_url, options={}) options[:endpoint_url] = endpoint_url raise InvalidAPIURL unless endpoint_url =~ URI::regexp base_options = { logger: self.class.logger } default_options = base_options.merge(GdsApi::Base.default_options || {}) @options = default_options.merge(options) self.endpoint = options[:endpoint_url] end
def query_string(params)
def query_string(params) return "" if params.empty? param_pairs = params.sort.map { |key, value| case value when Array value.map { |v| "#{CGI.escape(key.to_s+'[]')}=#{CGI.escape(v.to_s)}" } else "#{CGI.escape(key.to_s)}=#{CGI.escape(value.to_s)}" end }.flatten "?#{param_pairs.join("&")}" end
def url_for_slug(slug, options={})
def url_for_slug(slug, options={}) "#{base_url}/#{slug}.json#{query_string(options)}" end