Sha256: f9a70e389342243de02e7e9c0d37083521e737cf2fe2508c17ad11a5f9cbd6f8

Contents?: true

Size: 1.24 KB

Versions: 29

Compression:

Stored size: 1.24 KB

Contents

module CurationConcerns
  # Retrieves the graph for an object with the internal triples removed
  # and the uris translated to external uris.
  class ListSourceExporter
    # @param [String] id
    # @param [ActionDispatch::Request] request the http request context
    # @param [String] parent_url
    def initialize(id, request, parent_url)
      @id = id
      @request = request
      @parent_url = parent_url
    end

    attr_reader :id, :request, :parent_url

    # @return [RDF::Graph]
    def fetch
      clean_graph_repository.find(id)
    end

    private

      def clean_graph_repository
        Hydra::ContentNegotiation::CleanGraphRepository.new(connection, replacer)
      end

      def connection
        @connection ||= CleanConnection.new(ActiveFedora.fedora.connection)
      end

      # This method is called once for each statement in the graph.
      def replacer
        lambda do |resource_id, _graph|
          parent_id = ActiveFedora::Base.uri_to_id(parent_url)
          return parent_url + resource_id.sub(parent_id, '') if resource_id.start_with?(parent_id)
          Rails.application.routes.url_helpers.solr_document_url(resource_id, host: hostname)
        end
      end

      def hostname
        request.host
      end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
curation_concerns-1.7.8 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.7 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-2.0.0 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-2.0.0.rc2 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.6 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.5 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.4 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.3 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.2 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-2.0.0.rc1 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.1 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.0 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.7.0.beta1 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.6.3 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.6.2 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.6.1 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.6.0 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.5.0 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.4.0 app/services/curation_concerns/list_source_exporter.rb
curation_concerns-1.3.3 app/services/curation_concerns/list_source_exporter.rb