Sha256: 56357e346a15e95a0f2fbdd14331d44c603ea60d5100b6c5f5c4c4ae2674c27c

Contents?: true

Size: 707 Bytes

Versions: 2

Compression:

Stored size: 707 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
      Faraday.new({url: Wikidata.settings.api.url}.merge(Wikidata.client_options)) do |faraday|
        faraday.request  :url_encoded
        faraday.response :json, content_type: /\bjson$/
        faraday.adapter  :patron
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wikidata-client-0.0.2 lib/wikidata/client.rb
wikidata-client-0.0.1 lib/wikidata/client.rb