class Ddr::Models::Structure

Wraps a Nokogiri (XML) Document

Public Class Methods

new(xml_doc=nil) click to toggle source
Calls superclass method
# File lib/ddr/models/structure.rb, line 8
def initialize(xml_doc=nil)
  super
end

Private Class Methods

template() click to toggle source
# File lib/ddr/models/structure.rb, line 52
def self.template
  Nokogiri::XML(
      '<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
        <structMap TYPE="default" />
      </mets>'
      ) do |config|
          config.noblanks
        end
end

Public Instance Methods

as_xml_document() click to toggle source
# File lib/ddr/models/structure.rb, line 32
def as_xml_document
  __getobj__
end
default_struct_map() click to toggle source
# File lib/ddr/models/structure.rb, line 16
def default_struct_map
  struct_maps['default'] || struct_maps[struct_maps.keys.first]
end
default_struct_map_ids() click to toggle source
# File lib/ddr/models/structure.rb, line 20
def default_struct_map_ids
  default_struct_map.pids
end
fptr_nodes(type='default') click to toggle source
# File lib/ddr/models/structure.rb, line 28
def fptr_nodes(type='default')
  structMap_node(type).xpath('//xmlns:fptr')
end
structMap_node(type='default') click to toggle source
# File lib/ddr/models/structure.rb, line 24
def structMap_node(type='default')
  xpath("//xmlns:structMap[@TYPE='#{type}']").first
end
struct_maps() click to toggle source
# File lib/ddr/models/structure.rb, line 12
def struct_maps
  @struct_maps ||= build_struct_maps(structMap_nodes)
end

Private Instance Methods

build_struct_maps(structMap_nodes) click to toggle source
# File lib/ddr/models/structure.rb, line 42
def build_struct_maps(structMap_nodes)
  smaps = {}
  structMap_nodes.each do |structMap_node|
    type = structMap_node['TYPE'] || 'default'
    raise StandardError, "Multiple '#{type}' structMaps" if smaps[type].present?
    smaps[type] = Ddr::Models::StructDiv.new(structMap_node)
  end
  smaps
end
structMap_nodes() click to toggle source
# File lib/ddr/models/structure.rb, line 38
def structMap_nodes
  xpath("//xmlns:structMap")
end