Sha256: 47efdc304b13bc2ff391bfc143c6401d1617ed1f81e70b63a5b0fb701874c235

Contents?: true

Size: 1.04 KB

Versions: 36

Compression:

Stored size: 1.04 KB

Contents

module ActiveFedora
  module Associations
    class BasicContainsAssociation < ContainsAssociation #:nodoc:
      def find_target
        uris = owner.resource.query(predicate: options[:predicate])
                    .map { |r| r.object.to_s }

        uris.map { |object_uri| klass.find(klass.uri_to_id(object_uri)) }
      end

      def insert_record(record, force = true, validate = true)
        record.base_path_for_resource = owner.uri.to_s
        super
      end

      def add_to_target(record, skip_callbacks = false)
        record.base_path_for_resource = owner.uri.to_s
        super
      end

      def reset
        # Update the membership triples (and no other triples) on the the owner's resource
        if owner.persisted?
          pattern = ::RDF::Query::Pattern.new(predicate: options[:predicate])
          new_resource = ActiveFedora::Base.uncached do
            owner.dup.reload.resource
          end
          owner.resource.delete_insert([pattern], new_resource.query(pattern))
        end
        super
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
active-fedora-13.3.0 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-12.2.4 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.7 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.5 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.4 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-12.2.3 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.3 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.2 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.2.0 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.1.3 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-11.5.6 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-12.2.2 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-11.2.1 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-12.2.1 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-12.0.3 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-11.5.5 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.1.2 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.1.1 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.1.0 lib/active_fedora/associations/basic_contains_association.rb
active-fedora-13.0.0 lib/active_fedora/associations/basic_contains_association.rb