Module: Cul::Hydra::Models::Aggregator
- Extended by:
- ActiveSupport::Concern
- Included in:
- Concept, GenericAggregator, GenericObject, METSStructuredAggregator, ResourceAggregator
- Defined in:
- app/models/concerns/cul/hydra/models/aggregator.rb
Instance Method Summary collapse
- #add_member(member, container = self) ⇒ 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
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
24 25 26 |
# File 'app/models/concerns/cul/hydra/models/aggregator.rb', line 24 def 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 |
#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_info ⇒ Object
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 |