class Bayonet::NodeCreation
Attributes
cell_label[R]
sheet[R]
Public Class Methods
new(cell_label, sheet)
click to toggle source
# File lib/bayonet/node_creation.rb, line 6 def initialize(cell_label, sheet) @cell_label = cell_label @sheet = sheet end
Public Instance Methods
get_or_create_cell_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 11 def get_or_create_cell_node unless has_cell_node? create_nodes end cell_node end
Private Instance Methods
cell_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 25 def cell_node @cell_node ||= xml.at_css("c[r=\"#{cell_label}\"]") end
create_cell_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 49 def create_cell_node create_node('c', row_node, cell_label) end
create_node(tag, parent_node, value)
click to toggle source
# File lib/bayonet/node_creation.rb, line 57 def create_node(tag, parent_node, value) Nokogiri::XML::Node.new(tag, parent_node).tap do |node| node['r'] = value parent_node.add_child(node) end end
create_nodes()
click to toggle source
# File lib/bayonet/node_creation.rb, line 70 def create_nodes if has_row_node? create_cell_node else create_row_node_with_cell_node end end
create_row_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 53 def create_row_node create_node('row', sheet_data_node, row_number) end
create_row_node_with_cell_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 64 def create_row_node_with_cell_node row_node = create_row_node cell_node = create_cell_node row_node.add_child(cell_node) end
has_cell_node?()
click to toggle source
# File lib/bayonet/node_creation.rb, line 29 def has_cell_node? !cell_node.nil? end
has_row_node?()
click to toggle source
# File lib/bayonet/node_creation.rb, line 37 def has_row_node? !row_node.nil? end
row_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 33 def row_node @row_node ||= xml.at_css("row[r=\"#{row_number}\"]") end
row_number()
click to toggle source
# File lib/bayonet/node_creation.rb, line 41 def row_number @row_number ||= cell_label.gsub(/[^\d]/, '') end
sheet_data_node()
click to toggle source
# File lib/bayonet/node_creation.rb, line 45 def sheet_data_node @sheet_data_node ||= xml.at_css('sheetData') end
xml()
click to toggle source
# File lib/bayonet/node_creation.rb, line 21 def xml sheet.xml end