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)