class Ddr::Models::StructDiv
Attributes
divs[RW]
fptrs[RW]
id[RW]
label[RW]
order[RW]
orderlabel[RW]
type[RW]
Public Class Methods
new(structmap_or_div_node)
click to toggle source
# File lib/ddr/models/struct_div.rb, line 7 def initialize(structmap_or_div_node) @id = structmap_or_div_node['ID'] @label = structmap_or_div_node['LABEL'] @order = structmap_or_div_node['ORDER'] @orderlabel = structmap_or_div_node['ORDERLABEL'] @type = structmap_or_div_node['TYPE'] @fptrs = fptr_pids(structmap_or_div_node) if structmap_or_div_node.node_name == "div" @divs = subdivs(structmap_or_div_node).sort end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/ddr/models/struct_div.rb, line 17 def <=>(other) self.order.to_i <=> other.order.to_i end
as_json(options={})
click to toggle source
Calls superclass method
# File lib/ddr/models/struct_div.rb, line 39 def as_json(options={}) super.compact end
docs()
click to toggle source
# File lib/ddr/models/struct_div.rb, line 25 def docs query = ActiveFedora::SolrQueryBuilder.construct_query_for_ids(pids) results = ActiveFedora::SolrService.query(query, rows: 999999) results.each_with_object({}) do |r, memo| memo[r["id"]] = ::SolrDocument.new(r) end end
objects()
click to toggle source
# File lib/ddr/models/struct_div.rb, line 33 def objects pids.each_with_object({}) do |pid, memo| memo[pid] = ActiveFedora::Base.find(pid) end end
pids()
click to toggle source
# File lib/ddr/models/struct_div.rb, line 21 def pids collect_pids(self) end
Private Instance Methods
collect_pids(structdiv)
click to toggle source
# File lib/ddr/models/struct_div.rb, line 53 def collect_pids(structdiv) pids = structdiv.divs.each_with_object([]) do |div, memo| memo << collect_pids(div) end pids << structdiv.fptrs if structdiv.fptrs pids.flatten end
fptr_pids(div_node)
click to toggle source
# File lib/ddr/models/struct_div.rb, line 45 def fptr_pids(div_node) div_node.xpath('xmlns:fptr').map { |fptr_node| fptr_node["CONTENTIDS"] } end
subdivs(structmap_or_div_node)
click to toggle source
# File lib/ddr/models/struct_div.rb, line 49 def subdivs(structmap_or_div_node) structmap_or_div_node.xpath('xmlns:div').map { |div_node| Ddr::Models::StructDiv.new(div_node) } end