Class: ActiveFedora::Aggregation::Builder

Inherits:
ActiveFedora::Associations::Builder::CollectionAssociation
  • Object
show all
Includes:
ActiveFedora::AutosaveAssociation::AssociationBuilderExtension
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
21
22
23
# 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
  mixin.redefine_method("ordered_#{name.to_s.pluralize}") do
    association(name).ordered_reader
  end
end

.define_writers(mixin, name) ⇒ Object



25
26
27
28
29
30
# File 'lib/active_fedora/aggregation/builder.rb', line 25

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



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

def build
  reflection = super
  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'

  model.include AggregationExtension
  reflection
end