Sha256: 6718997ff4f4cd9b265b599926d6b211ba7e92a89c8d55378d113b2b25590230

Contents?: true

Size: 806 Bytes

Versions: 2

Compression:

Stored size: 806 Bytes

Contents

module ActiveFedora::Associations::Builder
  class DirectlyContains < CollectionAssociation #:nodoc:
    def self.macro
      :directly_contains
    end

    def self.valid_options(options)
      super + [:has_member_relation, :is_member_of_relation] - [:predicate]
    end

    def build
      reflection = super
      configure_dependency
      reflection
    end

    def validate_options
      super
      if !options[:has_member_relation] && !options[:is_member_of_relation]
        raise ArgumentError, "You must specify a :has_member_relation or :is_member_of_relation predicate for #{name}"
      elsif !options[:has_member_relation].is_a?(RDF::URI) && !options[:is_member_of_relation].is_a?(RDF::URI)
        raise ArgumentError, "Predicate must be a kind of RDF::URI"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active-fedora-9.10.0.pre2 lib/active_fedora/associations/builder/directly_contains.rb
active-fedora-9.10.0.pre1 lib/active_fedora/associations/builder/directly_contains.rb