Sha256: f228ac4f1eee3ba0ce44fbe0f5ec6633016d4a510b2bf055e056a4d8d7473352

Contents?: true

Size: 898 Bytes

Versions: 9

Compression:

Stored size: 898 Bytes

Contents

module ActiveFedora
  class CleanConnection < SimpleDelegator
    def get(*args)
      result = __getobj__.get(*args) do |req|
        prefer_headers = Ldp::PreferHeaders.new(req.headers["Prefer"])
        prefer_headers.omit = prefer_headers.omit | omit_uris
        req.headers["Prefer"] = prefer_headers.to_s
      end
      CleanResult.new(result)
    end

    private

    def omit_uris
      [
        RDF::Fcrepo4.ServerManaged,
        RDF::Ldp.PreferContainment,
        RDF::Ldp.PreferEmptyContainer,
        RDF::Ldp.PreferMembership
      ]
    end

    class CleanResult < SimpleDelegator
      def graph
        @graph ||= clean_graph
      end

      private

      def clean_graph
        __getobj__.graph.delete(has_model_query)
        __getobj__.graph
      end

      def has_model_query
        [nil, ActiveFedora::RDF::Fcrepo::Model.hasModel, nil]
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
active-fedora-9.3.0 lib/active_fedora/clean_connection.rb
active-fedora-9.2.1 lib/active_fedora/clean_connection.rb
active-fedora-9.2.0 lib/active_fedora/clean_connection.rb
active-fedora-9.2.0.rc2 lib/active_fedora/clean_connection.rb
active-fedora-9.2.0.rc1 lib/active_fedora/clean_connection.rb
active-fedora-9.1.2 lib/active_fedora/clean_connection.rb
active-fedora-9.1.1 lib/active_fedora/clean_connection.rb
active-fedora-9.1.0 lib/active_fedora/clean_connection.rb
active-fedora-9.1.0.rc1 lib/active_fedora/clean_connection.rb