Module: Cul::Scv::Hydra::Models::Aggregator

Extended by:
ActiveSupport::Concern
Included in:
GenericAggregator, GenericObject, METSStructuredAggregator, ResourceAggregator
Defined in:
app/models/concerns/cul/scv/hydra/models/aggregator.rb

Instance Method Summary collapse

Instance Method Details

#add_member(member, container = self) ⇒ Object



16
17
18
19
20
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 16

def add_member(member, container=self)
  member.add_relationship(:cul_member_of, to_uri(container))
  member.datastreams["RELS-EXT"].content_will_change!
  member.save
end

#aggregator!Object



10
11
12
13
14
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 10

def aggregator!
  add_relationship(:rdf_type, Cul::Scv::Hydra::Models::AGGREGATOR_TYPE.to_s)
  @metadata_is_dirty = true
  self.save
end

#member_ids(opts = {}) ⇒ Object



44
45
46
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 44

def member_ids(opts={})
  solr_members(opts).collect {|hit| hit.id}
end

#members(opts = {}) ⇒ Object



40
41
42
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 40

def members(opts={})
  parts({:response_format=>:solr}.merge(opts))
end

#remove_member(member, container = self) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 22

def remove_member(member, container=self)
  rel = ActiveFedora::Relationship.new()
  rel.subject_pid= :self
  rel.object = to_uri(container)
  rel.predicate = :cul_member_of
  member.remove_relationship(rel)
  member.datastreams["RELS-EXT"].content_will_change!
  member.save
end

#solr_members(opts = {}) ⇒ Object



32
33
34
35
36
37
38
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 32

def solr_members(opts={})
  opts = {:rows=>25,:response_format=>:solr}.merge(opts)
  r = self.parts(opts)
  members = []
  r.collect {|hit| members << SolrDocument.new(hit) } unless r.blank?
  members
end

#thumbnail_infoObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/models/concerns/cul/scv/hydra/models/aggregator.rb', line 48

def thumbnail_info
  members = solr_members
  if members.length == 0
    thumb = {:asset=>"cul_scv_hydra/crystal/file.png",:mime=>'image/png'}
  else
    thumb = nil
    unless datastreams['structMetadata'].new?
      thumb = thumb_from_struct(members)
    else
      thumb =  thumb_from_members(members)
    end
  end
  return thumb || {:asset=>"cul_scv_hydra/crystal/file.png",:mime=>'image/png'}
end