Sha256: 071a192658646c7e98f5ee0b9634c08c5ac9851aeb7adfaec6abd8e3defba1cf

Contents?: true

Size: 1.05 KB

Versions: 70

Compression:

Stored size: 1.05 KB

Contents

module ActiveFedora::Associations::Builder
  class IndirectlyContains < CollectionAssociation #:nodoc:
    def self.macro
      :indirectly_contains
    end

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

    def self.define_readers(mixin, name)
      super

      mixin.redefine_method("#{name.to_s.singularize}_ids") do
        association(name).ids_reader
      end
    end

    def self.validate_options(options)
      super
      if !options[:has_member_relation] && !options[:is_member_of_relation]
        raise ArgumentError, "You must specify a 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

      raise ArgumentError, "Missing :through option" unless options[:through]
      raise ArgumentError, "Missing :foreign_key option" unless options[:foreign_key]
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

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