Sha256: f9f279b954ef5eb2eebba99a1f2cbd2df4286fd2f74d3e2330d953e7efa53312

Contents?: true

Size: 950 Bytes

Versions: 13

Compression:

Stored size: 950 Bytes

Contents

module Wikidata
  class Item < Entity
    DEFAULT_QUERIES = {
      search: {
        action: 'query',
        list: 'search',
        sroffset: 0,
        srlimit: 10
      },
      find: {
        action: 'wbgetentities',
        sites: 'enwiki'
      }
    }.freeze

    class << self
      def find ids, query = {}
        _find :ids, ids, query
      end

      def find_by_title titles, query = {}
        _find :titles, titles, query
      end

      def _find finder = :ids, list = '', query = {}
        q = DEFAULT_QUERIES[:find]
              .merge( query )
              .merge( finder => Array(list).join('|') )
        Wikidata::Client.new( q ).response.tap do |resp|
          return resp.results.first unless list.is_a?(Array)
        end
      end

      def search search, query = {}
        q = DEFAULT_QUERIES[:search].merge( srsearch: search ).merge(query)
        Wikidata::Client.new( q ).response
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
wikidata-client-0.1.0 lib/wikidata/item.rb
wikidata-client-0.1.0.pre.rc1 lib/wikidata/item.rb
wikidata-client-0.0.12 lib/wikidata/item.rb
wikidata-client-0.0.11 lib/wikidata/item.rb
wikidata-client-0.0.10 lib/wikidata/item.rb
wikidata-client-0.0.9 lib/wikidata/item.rb
wikidata-client-0.0.8 lib/wikidata/item.rb
wikidata-client-0.0.7 lib/wikidata/item.rb
wikidata-client-0.0.6 lib/wikidata/item.rb
wikidata-client-0.0.5 lib/wikidata/item.rb
wikidata-client-0.0.4 lib/wikidata/item.rb
wikidata-client-0.0.3 lib/wikidata/item.rb
wikidata-client-0.0.2 lib/wikidata/item.rb