Sha256: 3d3a4b5aee4e111c2c8e5c1f4899f39d557bcb674bbaa6cb9c5f23fbd1e7ff2e

Contents?: true

Size: 686 Bytes

Versions: 9

Compression:

Stored size: 686 Bytes

Contents

module Wikidata
  class Response
    extend Forwardable

    def_delegators :results, :size

    def initialize raw
      @raw = raw
    end

    def results
      return [] if empty?
      @_results ||= raw_results.map{|r| Wikidata::Item.new(r) }
    end

    def empty?
      @_empty ||= (
        @raw.body['entities'].nil? ||
        @raw.body['entities'].is_a?(Array) && @raw.body['entities'].empty? ||
        @raw.body['entities'].is_a?(String)
      )
    end

    def inspect
      "<#{self.class} results: #{results.inspect}>"
    end

    protected

    def raw_results
      return [] if empty?
      @raw.body['entities'].values.reject{|r| r['missing'] }
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
wikidata-client-0.1.0 lib/wikidata/response.rb
wikidata-client-0.1.0.pre.rc1 lib/wikidata/response.rb
wikidata-client-0.0.12 lib/wikidata/response.rb
wikidata-client-0.0.11 lib/wikidata/response.rb
wikidata-client-0.0.10 lib/wikidata/response.rb
wikidata-client-0.0.9 lib/wikidata/response.rb
wikidata-client-0.0.8 lib/wikidata/response.rb
wikidata-client-0.0.7 lib/wikidata/response.rb
wikidata-client-0.0.6 lib/wikidata/response.rb