class ActiveFedora::Associations::Builder::Aggregation
Public Class Methods
build(model, name, options)
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.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.has_subresource 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/associations/builder/aggregation.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/associations/builder/aggregation.rb, line 41 def self.contains_key(options) options[:through] end
has_member_relation(options)
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.rb, line 21 def self.has_member_relation(options) options[:has_member_relation] || ::RDF::Vocab::DC.hasPart end
indirect_options(options)
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.rb, line 13 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/associations/builder/aggregation.rb, line 26 def self.inserted_content_relation ::RDF::Vocab::ORE.proxyFor end
list_source_class()
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.rb, line 46 def self.list_source_class "ActiveFedora::Aggregation::ListSource" end
proxy_class()
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.rb, line 31 def self.proxy_class "ActiveFedora::Aggregation::Proxy" end
proxy_foreign_key()
click to toggle source
# File lib/active_fedora/associations/builder/aggregation.rb, line 36 def self.proxy_foreign_key :target end