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