Class: Ddr::Structures::Div
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Ddr::Structures::Div
- Defined in:
- lib/ddr/structures/div.rb
Overview
Wraps a Nokogiri (XML) ‘div’ node
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #dereferenced_hash ⇒ Object
- #divs ⇒ Object
- #id ⇒ Object
- #label ⇒ Object
- #mptrs ⇒ Object
- #order ⇒ Object
- #orderlabel ⇒ Object
- #type ⇒ Object
Class Method Details
.build(args) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/ddr/structures/div.rb', line 48 def self.build(args) node = Nokogiri::XML::Node.new('div', args[:document]) node['ID'] = args[:id] if args[:id] node['LABEL'] = args[:label] if args[:label] node['ORDER'] = args[:order] if args[:order] node['ORDERLABEL'] = args[:orderlabel] if args[:orderlabel] node['TYPE'] = args[:type] if args[:type] node end |
Instance Method Details
#<=>(other) ⇒ Object
35 36 37 |
# File 'lib/ddr/structures/div.rb', line 35 def <=>(other) order.to_i <=> other.order.to_i end |
#dereferenced_hash ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/ddr/structures/div.rb', line 39 def dereferenced_hash contents = [] contents.concat(divs.map { |div| div.dereferenced_hash }) unless divs.empty? contents.concat(mptrs.map { |mptr| mptr.dereferenced_hash }) unless mptrs.empty? dh = { id: id, label: label, order: order, orderlabel: orderlabel, type: type }.compact dh[:contents] = contents unless contents.empty? dh end |
#divs ⇒ Object
27 28 29 |
# File 'lib/ddr/structures/div.rb', line 27 def divs xpath('xmlns:div').map { |node| Div.new(node) } end |
#id ⇒ Object
7 8 9 |
# File 'lib/ddr/structures/div.rb', line 7 def id self['ID'] end |
#label ⇒ Object
11 12 13 |
# File 'lib/ddr/structures/div.rb', line 11 def label self['LABEL'] end |
#mptrs ⇒ Object
31 32 33 |
# File 'lib/ddr/structures/div.rb', line 31 def mptrs xpath('xmlns:mptr').map { |node| Mptr.new(node) } end |
#order ⇒ Object
15 16 17 |
# File 'lib/ddr/structures/div.rb', line 15 def order self['ORDER'] end |
#orderlabel ⇒ Object
19 20 21 |
# File 'lib/ddr/structures/div.rb', line 19 def orderlabel self['ORDERLABEL'] end |
#type ⇒ Object
23 24 25 |
# File 'lib/ddr/structures/div.rb', line 23 def type self['TYPE'] end |