Class: ActiveFedora::Aggregation::Builder

Inherits:
ActiveFedora::Associations::Builder::CollectionAssociation
  • Object
show all
Defined in:
lib/active_fedora/aggregation/builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.define_readers(mixin, name) ⇒ Object



15
16
17
18
19
20
# File 'lib/active_fedora/aggregation/builder.rb', line 15

def self.define_readers(mixin, name)
  super
  mixin.redefine_method("#{name.to_s.singularize}_ids") do
    association(name).ids_reader
  end
end

.define_writers(mixin, name) ⇒ Object



22
23
24
25
26
27
# File 'lib/active_fedora/aggregation/builder.rb', line 22

def self.define_writers(mixin, name)
  super
  mixin.redefine_method("#{name.to_s.singularize}_ids=") do |ids|
    association(name).ids_writer(ids)
  end
end

Instance Method Details

#buildObject



5
6
7
8
9
10
11
12
13
# File 'lib/active_fedora/aggregation/builder.rb', line 5

def build
  reflection = super
  configure_dependency
  model.has_and_belongs_to_many :proxies, predicate: ::RDF::Vocab::ORE.aggregates, class_name: 'ActiveFedora::Aggregation::Proxy', inverse_of: :containers
  model.belongs_to :head, predicate: ::RDF::Vocab::IANA['first'], class_name: 'ActiveFedora::Aggregation::Proxy'
  model.belongs_to :tail, predicate: ::RDF::Vocab::IANA.last, class_name: 'ActiveFedora::Aggregation::Proxy'

  reflection
end