lib/bolognese/readers/schema_org_reader.rb in bolognese-1.6.11 vs lib/bolognese/readers/schema_org_reader.rb in bolognese-1.6.12
- old
+ new
@@ -126,19 +126,27 @@
dates << { "date" => meta.fetch("datePublished"), "dateType" => "Issued" } if Date.edtf(meta.fetch("datePublished", nil)).present?
dates << { "date" => meta.fetch("dateCreated"), "dateType" => "Created" } if Date.edtf(meta.fetch("dateCreated", nil)).present?
dates << { "date" => meta.fetch("dateModified"), "dateType" => "Updated" } if Date.edtf(meta.fetch("dateModified", nil)).present?
publication_year = meta.fetch("datePublished")[0..3] if meta.fetch("datePublished", nil).present?
+ if meta.fetch("inLanguage", nil).is_a?(String)
+ language = meta.fetch("inLanguage")
+ elsif meta.fetch("inLanguage", nil).is_a?(Object)
+ language = meta.dig("inLanguage", 'alternateName') || meta.dig("inLanguage", 'name')
+ else
+ language = nil
+ end
+
state = meta.present? || read_options.present? ? "findable" : "not_found"
geo_locations = Array.wrap(meta.fetch("spatialCoverage", nil)).map do |gl|
if gl.dig("geo", "box")
s, w, n, e = gl.dig("geo", "box").split(" ", 4)
geo_location_box = {
"westBoundLongitude" => w,
"eastBoundLongitude" => e,
"southBoundLatitude" => s,
- "northBoundLatitude" => n
+ "northBoundLatitude" => n,
}.compact.presence
else
geo_location_box = nil
end
geo_location_point = { "pointLongitude" => gl.dig("geo", "longitude"), "pointLatitude" => gl.dig("geo", "latitude") }.compact.presence
@@ -177,9 +185,10 @@
"dates" => dates,
"descriptions" => meta.fetch("description", nil).present? ? [{ "description" => sanitize(meta.fetch("description")), "descriptionType" => "Abstract" }] : nil,
"rights_list" => rights_list,
"version_info" => meta.fetch("version", nil).to_s.presence,
"subjects" => subjects,
+ "language" => language,
"state" => state,
"schema_version" => meta.fetch("schemaVersion", nil).to_s.presence,
"funding_references" => funding_references,
"geo_locations" => geo_locations
}.merge(read_options)