Class: WikidataPositionHistory::MandateRow

Inherits:
Object
  • Object
show all
Defined in:
lib/sparql/mandates_query.rb

Overview

Represents a single row returned from the Mandates query

Instance Method Summary collapse

Constructor Details

#initialize(row) ⇒ MandateRow

Returns a new instance of MandateRow.



32
33
34
# File 'lib/sparql/mandates_query.rb', line 32

def initialize(row)
  @row = row
end

Instance Method Details

#acting?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/sparql/mandates_query.rb', line 61

def acting?
  nature == 'Q4676846'
end

#end_dateObject



71
72
73
74
75
# File 'lib/sparql/mandates_query.rb', line 71

def end_date
  return if end_date_raw.empty?

  QueryService::WikidataDate.new(end_date_raw, end_date_precision)
end

#end_date_precisionObject



89
90
91
# File 'lib/sparql/mandates_query.rb', line 89

def end_date_precision
  row.dig(:end_precision, :value)
end

#end_date_rawObject



81
82
83
# File 'lib/sparql/mandates_query.rb', line 81

def end_date_raw
  row.dig(:end_date, :value).to_s[0..9]
end

#itemObject

TODO: rename or remove. ‘item’ is meaningless/ambiguous



45
46
47
# File 'lib/sparql/mandates_query.rb', line 45

def item
  officeholder.qlink
end

#natureObject



57
58
59
# File 'lib/sparql/mandates_query.rb', line 57

def nature
  QueryService::WikidataItem.new(row.dig(:nature, :value)).id
end

#nextObject



53
54
55
# File 'lib/sparql/mandates_query.rb', line 53

def next
  QueryService::WikidataItem.new(row.dig(:next, :value)).qlink
end

#officeholderObject



40
41
42
# File 'lib/sparql/mandates_query.rb', line 40

def officeholder
  QueryService::WikidataItem.new(row.dig(:item, :value))
end

#ordinalObject



36
37
38
# File 'lib/sparql/mandates_query.rb', line 36

def ordinal
  row.dig(:ordinal, :value)
end

#prevObject



49
50
51
# File 'lib/sparql/mandates_query.rb', line 49

def prev
  QueryService::WikidataItem.new(row.dig(:prev, :value)).qlink
end

#start_dateObject



65
66
67
68
69
# File 'lib/sparql/mandates_query.rb', line 65

def start_date
  return if start_date_raw.empty?

  QueryService::WikidataDate.new(start_date_raw, start_date_precision)
end

#start_date_precisionObject



85
86
87
# File 'lib/sparql/mandates_query.rb', line 85

def start_date_precision
  row.dig(:start_precision, :value)
end

#start_date_rawObject



77
78
79
# File 'lib/sparql/mandates_query.rb', line 77

def start_date_raw
  row.dig(:start_date, :value).to_s[0..9]
end