Class: GenericAggregator

Inherits:
ActiveFedora::Base
  • Object
show all
Includes:
ActiveFedora::DatastreamCollections, ActiveFedora::Finders, Cul::Scv::Hydra::Models::Aggregator, Cul::Scv::Hydra::Models::Common, Hydra::ModelMethods
Defined in:
app/models/generic_aggregator.rb

Direct Known Subclasses

BagAggregator, ContentAggregator

Instance Method Summary collapse

Methods included from Cul::Scv::Hydra::Models::Aggregator

#add_member, #aggregator!, #member_ids, #members, #remove_member, #solr_members, #thumbnail_info

Methods included from Cul::Scv::Hydra::Models::Common

#cmodel_pid, #create, #datastreams_in_fedora, #has_desc?, #initialize, #rdf_type, #thumbnail_info, #update_datastream_attributes

Instance Method Details

#index_type_labelObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/models/generic_aggregator.rb', line 16

def index_type_label
  riquery = Cul::Scv::Hydra::Models::MEMBER_ITQL.gsub(/%PID%/, self.pid)
  begin
    docs = Cul::Scv::Fedora.repository.find_by_itql riquery, limit: 2, format: json
    docs = JSON.parse(docs)['results']
  rescue Exception=>e
    Rails.logger.warn("#{self.class.name} failed to find children with TQL: #{e.message}")
    docs = self.parts
  end
  if docs.size == 0
    label = "EMPTY"
  elsif docs.size == 1
    label = "SINGLE PART"
  else
    label = "MULTIPART"
  end
  label
end

#route_asObject



12
13
14
# File 'app/models/generic_aggregator.rb', line 12

def route_as
  "multipartitem"
end

#to_solr(solr_doc = Hash.new, opts = {}) ⇒ Object



35
36
37
38
39
# File 'app/models/generic_aggregator.rb', line 35

def to_solr(solr_doc = Hash.new, opts={})
  solr_doc = super(solr_doc, opts)
  solr_doc["cul_number_of_members_isi"] = Cul::Scv::Hydra::RisearchMembers.get_direct_member_pids(pid).length
  solr_doc
end