Sha256: f91c8360915a1ec91f3a95190dd7dee57269abd5b4a542ec3c08ccd30bc2389c

Contents?: true

Size: 626 Bytes

Versions: 7

Compression:

Stored size: 626 Bytes

Contents

module ActiveFedora::WithMetadata
  class DefaultStrategy < ActiveTriples::ExtensionStrategy
    # override apply method to check if property already exists or receiver already has predicate defined.
    # Do not add property if the rdf_resource already responds to the property name
    # Do not add property if the rdf_resource already has a property with the same predicate.
    def self.apply(resource, property)
      return if resource.respond_to?(property.name)
      return if resource.properties.any? { |p| p[1].predicate == property.predicate }
      resource.property property.name, property.to_h
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
active-fedora-15.0.1 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-15.0.0 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-14.0.1 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-14.0.0 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-13.3.0 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-13.2.7 lib/active_fedora/with_metadata/default_strategy.rb
active-fedora-13.2.5 lib/active_fedora/with_metadata/default_strategy.rb