module Ddr::Models::HasStructMetadata
Public Instance Methods
build_default_structure()
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 20 def build_default_structure structure = Ddr::Models::Structure.new(Ddr::Models::Structure.template) children = find_children children.each do |child| add_to_struct_map(structure, child) end structure end
multires_image_file_paths(type='default')
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 29 def multires_image_file_paths(type='default') ::SolrDocument.find(id).multires_image_file_paths(type) end
structure()
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 11 def structure unless @structure if attached_files[Ddr::Models::File::STRUCT_METADATA].content @structure = Ddr::Models::Structure.new(Nokogiri::XML(attached_files[Ddr::Models::File::STRUCT_METADATA].content)) end end @structure end
Private Instance Methods
add_to_struct_map(stru, child)
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 41 def add_to_struct_map(stru, child) div = create_div(stru) create_fptr(stru, div, child['id']) end
create_div(stru)
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 46 def create_div(stru) div_count = stru.structMap_node('default').xpath('xmlns:div').size div = Nokogiri::XML::Node.new('div', stru.as_xml_document) div['ORDER'] = div_count + 1 stru.structMap_node('default').add_child(div) div end
create_fptr(stru, div, id)
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 54 def create_fptr(stru, div, id) fptr = Nokogiri::XML::Node.new('fptr', stru.as_xml_document) fptr['CONTENTIDS'] = id div.add_child(fptr) end
find_children()
click to toggle source
# File lib/ddr/models/has_struct_metadata.rb, line 35 def find_children query = ActiveFedora::SolrQueryBuilder.construct_query_for_rel([[ self.class.reflect_on_association(:children), self.id ]]) sort = "#{Ddr::Index::Fields::LOCAL_ID} ASC, #{Ddr::Index::Fields::OBJECT_CREATE_DATE} ASC" ActiveFedora::SolrService.query(query, sort: sort, rows: 999999) end