class ActiveFedora::Orders::AggregationBuilder

Public Class Methods

build(model, name, options) click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 7
def self.build(model, name, options)
  model.indirectly_contains name, { has_member_relation: has_member_relation(options), through: proxy_class, foreign_key: proxy_foreign_key, inserted_content_relation: inserted_content_relation}.merge(indirect_options(options))
  model.contains contains_key(options), class_name: list_source_class
  model.orders name, through: contains_key(options)
end
valid_options(options) click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 3
def self.valid_options(options)
  [:through, :class_name, :has_member_relation, :type_validator]
end

Private Class Methods

contains_key(options) click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 38
def self.contains_key(options)
  options[:through]
end
has_member_relation(options) click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 22
def self.has_member_relation(options)
  options[:has_member_relation] || ::RDF::DC.hasPart
end
indirect_options(options) click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 15
def self.indirect_options(options)
  {
    class_name: options[:class_name],
    type_validator: options[:type_validator]
  }.select { |k, v| v.present? }
end
inserted_content_relation() click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 26
def self.inserted_content_relation
  ::RDF::Vocab::ORE::proxyFor
end
list_source_class() click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 42
def self.list_source_class
  "ActiveFedora::Aggregation::ListSource"
end
proxy_class() click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 30
def self.proxy_class
  "ActiveFedora::Aggregation::Proxy"
end
proxy_foreign_key() click to toggle source
# File lib/active_fedora/orders/aggregation_builder.rb, line 34
def self.proxy_foreign_key
  :target
end