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

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

Instance Method Summary collapse

Instance Method Details

#add_member(member, container = self) ⇒ Object



8
9
10
11
12
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 8

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

#has_struct_metadata?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 24

def has_struct_metadata?
  return (!datastreams['structMetadata'].nil?) && datastreams['structMetadata'].has_content?
end

#member_ids(opts = {}) ⇒ Object



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

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

#members(opts = {}) ⇒ Object



36
37
38
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 36

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

#remove_member(member, container = self) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 14

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

#representative_imageString, URI

a representative image URI for this object defined by the predicate schema.org/image

Returns:

  • (String, URI)


62
63
64
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 62

def representative_image
  get_singular_rel(:schema_image)
end

#representative_image=(val) ⇒ Object



66
67
68
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 66

def representative_image=(val)
  set_singular_rel(:schema_image, val)
end

#solr_members(opts = {}) ⇒ Object



28
29
30
31
32
33
34
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 28

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



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 44

def thumbnail_info
  members = solr_members
  if members.length == 0
    thumb = {:asset=>"cul_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_hydra/crystal/file.png",:mime=>'image/png'}
end