Module: Cul::Hydra::Models::Aggregator
- Extended by:
- ActiveSupport::Concern
- Included in:
- GenericAggregator, GenericObject, METSStructuredAggregator, ResourceAggregator
- Defined in:
- app/models/concerns/cul/hydra/models/aggregator.rb
Instance Method Summary collapse
- #add_member(member, container = self) ⇒ Object
- #aggregator! ⇒ Object
- #has_struct_metadata? ⇒ Boolean
- #member_ids(opts = {}) ⇒ Object
- #members(opts = {}) ⇒ Object
- #remove_member(member, container = self) ⇒ Object
- #solr_members(opts = {}) ⇒ Object
- #thumbnail_info ⇒ Object
Instance Method Details
#add_member(member, container = self) ⇒ Object
16 17 18 19 20 |
# File 'app/models/concerns/cul/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/hydra/models/aggregator.rb', line 10 def aggregator! add_relationship(:rdf_type, Cul::Hydra::Models::AGGREGATOR_TYPE.to_s) @metadata_is_dirty = true self.save end |
#has_struct_metadata? ⇒ Boolean
32 33 34 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 32 def return (!datastreams['structMetadata'].nil?) && datastreams['structMetadata'].has_content? end |
#member_ids(opts = {}) ⇒ Object
48 49 50 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 48 def member_ids(opts={}) solr_members(opts).collect {|hit| hit.id} end |
#members(opts = {}) ⇒ Object
44 45 46 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 44 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/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
36 37 38 39 40 41 42 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 36 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_info ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 52 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 |