diff --git a/app/services/map_export_service.rb b/app/services/map_export_service.rb index fb7c750a..80c0c4fe 100644 --- a/app/services/map_export_service.rb +++ b/app/services/map_export_service.rb @@ -1,9 +1,11 @@ # frozen_string_literal: true class MapExportService - attr_reader :user, :map - def initialize(user, map) + attr_reader :user, :map, :base_url + + def initialize(user, map, opts = {}) @user = user @map = map + @base_url = opts[:base_url] || 'https://metamaps.cc' end def json @@ -24,10 +26,20 @@ class MapExportService def rdf output = '' - output += rdf_header - output += rdf_mappers - output += rdf_topics - output += rdf_synapses + output += "PREFIX d: <#{base_url}/maps/#{map.id}>\n" + output += "PREFIX mm: <#{base_url}/owl/map.owl.ttl>\n" + output += "PREFIX rdfs: \n" + output += "PREFIX foaf: \n" + output += "\n" + map.contributors.each do |mapper| + output += mapper.as_rdf + end + map.topics.each do |topic| + output += topic.as_rdf + end + map.synapses.each do |synapse| + output += synapse.as_rdf + end output end @@ -96,38 +108,4 @@ class MapExportService spreadsheet end - - def rdf_header - output = '' - output += "PREFIX d: \n" - output += "PREFIX mm: \n" - output += "PREFIX rdfs: \n" - output += "PREFIX foaf: \n" - output += "\n" - output - end - - def rdf_mappers - output = '' - map.contributors.each do |mapper| - output += mapper.as_rdf - end - output - end - - def rdf_topics - output = '' - map.topics.each do |topic| - output += topic.as_rdf - end - output - end - - def rdf_synapses - output = '' - map.synapses.each do |synapse| - output += synapse.as_rdf - end - output - end end