Class: Valkyrie::Persistence::Solr::ORMConverter::RDFLiteralPropertyValue
- Inherits:
-
ValueMapper
- Object
- ValueMapper
- Valkyrie::Persistence::Solr::ORMConverter::RDFLiteralPropertyValue
show all
- Defined in:
- lib/valkyrie/persistence/solr/orm_converter.rb
Overview
Converts a stored language typed literal from two fields into one
{RDF::Literal}
Instance Attribute Summary
Attributes inherited from ValueMapper
#calling_mapper, #value
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from ValueMapper
for, #initialize, register
Class Method Details
.handles?(value) ⇒ Boolean
80
81
82
83
|
# File 'lib/valkyrie/persistence/solr/orm_converter.rb', line 80
def self.handles?(value)
value.is_a?(Property) &&
(value.document["#{value.key}_lang"] || value.document["#{value.key}_type"])
end
|
Instance Method Details
#datatypes ⇒ Object
103
104
105
|
# File 'lib/valkyrie/persistence/solr/orm_converter.rb', line 103
def datatypes
value.document.fetch("#{value.key}_type", [])
end
|
#languages ⇒ Object
99
100
101
|
# File 'lib/valkyrie/persistence/solr/orm_converter.rb', line 99
def languages
value.document.fetch("#{value.key}_lang", [])
end
|
#result ⇒ Object
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/valkyrie/persistence/solr/orm_converter.rb', line 85
def result
value.value.each_with_index.map do |literal, idx|
language = languages[idx]
type = datatypes[idx]
if language == "eng" && type == "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
literal
elsif language.present?
RDF::Literal.new(literal, language: language, datatype: type)
else
RDF::Literal.new(literal, datatype: type)
end
end
end
|