Sha256: 0f1df316ce84ee57f5c7a1b8275afc3ec9762ec1c08fdedb288a9d737f9fda3b

Contents?: true

Size: 990 Bytes

Versions: 87

Compression:

Stored size: 990 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::Vocab::Fcrepo4.ServerManaged,
          ::RDF::Vocab::LDP.PreferContainment,
          ::RDF::Vocab::LDP.PreferEmptyContainer,
          ::RDF::Vocab::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

87 entries across 87 versions & 1 rubygems

Version Path
active-fedora-15.0.1 lib/active_fedora/clean_connection.rb
active-fedora-15.0.0 lib/active_fedora/clean_connection.rb
active-fedora-14.0.1 lib/active_fedora/clean_connection.rb
active-fedora-14.0.0 lib/active_fedora/clean_connection.rb
active-fedora-13.3.0 lib/active_fedora/clean_connection.rb
active-fedora-12.2.4 lib/active_fedora/clean_connection.rb
active-fedora-13.2.7 lib/active_fedora/clean_connection.rb
active-fedora-13.2.5 lib/active_fedora/clean_connection.rb
active-fedora-13.2.4 lib/active_fedora/clean_connection.rb
active-fedora-12.2.3 lib/active_fedora/clean_connection.rb
active-fedora-13.2.3 lib/active_fedora/clean_connection.rb
active-fedora-13.2.2 lib/active_fedora/clean_connection.rb
active-fedora-13.2.0 lib/active_fedora/clean_connection.rb
active-fedora-13.1.3 lib/active_fedora/clean_connection.rb
active-fedora-11.5.6 lib/active_fedora/clean_connection.rb
active-fedora-12.2.2 lib/active_fedora/clean_connection.rb
active-fedora-11.2.1 lib/active_fedora/clean_connection.rb
active-fedora-12.2.1 lib/active_fedora/clean_connection.rb
active-fedora-12.0.3 lib/active_fedora/clean_connection.rb
active-fedora-11.5.5 lib/active_fedora/clean_connection.rb