Sha256: 7d72f42ba6988c0a9b24ddf679edcc441e8f2aa9a0f22f63646037e1c21a09a5

Contents?: true

Size: 724 Bytes

Versions: 2

Compression:

Stored size: 724 Bytes

Contents

module Wikidata
  class Client
    DEFAULT_QUERY = {
      format: 'json'
    }

    attr_accessor :query, :total_pages

    def initialize(query = {})
      @query = DEFAULT_QUERY.merge(query)
    end

    def response
      response_class.new api.get('', query)
    end

    private

    def response_class
      case @query[:action]
      when 'query'
        Wikidata::SearchResponse
      else
        Wikidata::Response
      end
    end

    def api
      opts = Wikidata.options.merge url: Wikidata.settings.api.url
      Faraday.new(opts) do |faraday|
        faraday.adapter Wikidata.adapter
        faraday.request  :url_encoded
        faraday.response :json, content_type: /\bjson$/
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wikidata-client-0.1.0 lib/wikidata/client.rb
wikidata-client-0.1.0.pre.rc1 lib/wikidata/client.rb