Sha256: 7125bbdd20818cf28974dee2a24f413a0807d0bc8aa113f4a652955012066657

Contents?: true

Size: 919 Bytes

Versions: 2

Compression:

Stored size: 919 Bytes

Contents

module Wikidata
  module Property
    def self.build(attribute)
      return if %w[somevalue novalue].include? attribute.mainsnak.snaktype

      case attribute.mainsnak.datatype
      when 'string', 'external-id'
        Wikidata::Property::String.new attribute
      when 'time'
        Wikidata::Property::Time.new attribute
      when 'globe-coordinate'
        Wikidata::Property::GlobeCoordinate.new attribute
      when 'url'
        Wikidata::Property::Url.new attribute
      when 'wikibase-item'
        Wikidata::Item.find Wikidata::Entity.entity_id(attribute)
      when 'commonsMedia'
        Wikidata::Property::CommonsMedia.new attribute
      when 'monolingualtext'
        Wikidata::Property::MonolingualText.new attribute
      when 'quantity'
        Wikidata::Property::Quantity.new attribute
      else
        puts "Unkown property type #{attribute.mainsnak.datatype}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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