Module: Wikidata::Property

Defined in:
lib/wikidata/property.rb,
lib/wikidata/property/url.rb,
lib/wikidata/property/base.rb,
lib/wikidata/property/hash.rb,
lib/wikidata/property/time.rb,
lib/wikidata/property/string.rb,
lib/wikidata/property/quantity.rb,
lib/wikidata/property/commons_media.rb,
lib/wikidata/property/globe_coordinate.rb,
lib/wikidata/property/monolingual_text.rb

Defined Under Namespace

Classes: Base, CommonsMedia, GlobeCoordinate, Hash, MonolingualText, Quantity, String, Time, Url

Class Method Summary collapse

Class Method Details

.build(attribute) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/wikidata/property.rb', line 3

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