Class: Writexlsx::Package::XMLWriterSimple

Inherits:
Object
  • Object
show all
Defined in:
lib/write_xlsx/package/xml_writer_simple.rb

Instance Method Summary collapse

Constructor Details

#initializeXMLWriterSimple

Returns a new instance of XMLWriterSimple.



10
11
12
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 10

def initialize
  @io = StringIO.new
end

Instance Method Details

#characters(data) ⇒ Object



83
84
85
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 83

def characters(data)
  io_write(escape_data(data))
end

#closeObject



91
92
93
94
95
96
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 91

def close
  if @filename
    File.open(@filename, "wb") { |f| f << string }
  end
  @io.close
end

#crlfObject



87
88
89
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 87

def crlf
  io_write("\n")
end

#data_element(tag, data, attr = []) ⇒ Object



65
66
67
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 65

def data_element(tag, data, attr = [])
  tag_elements(tag, attr) { io_write("#{escape_data(data)}") }
end

#empty_tag(tag, attr = []) ⇒ Object



52
53
54
55
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 52

def empty_tag(tag, attr = [])
  str = "<#{tag}#{key_vals(attr)}/>"
  io_write(str)
end

#empty_tag_encoded(tag, attr = []) ⇒ Object



57
58
59
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 57

def empty_tag_encoded(tag, attr = [])
  io_write(empty_tag_encoded_str(tag, attr))
end

#empty_tag_encoded_str(tag, attr = []) ⇒ Object



61
62
63
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 61

def empty_tag_encoded_str(tag, attr = [])
  "<#{tag}#{key_vals(attr)}/>"
end

#end_tag(tag) ⇒ Object



44
45
46
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 44

def end_tag(tag)
  io_write(end_tag_str(tag))
end

#end_tag_str(tag) ⇒ Object



48
49
50
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 48

def end_tag_str(tag)
  "</#{tag}>"
end

#io_write(str) ⇒ Object



102
103
104
105
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 102

def io_write(str)
  @io << str
  str
end

#set_xml_writer(filename = nil) ⇒ Object



14
15
16
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 14

def set_xml_writer(filename = nil)
  @filename = filename
end

#si_element(data, attr) ⇒ Object

Optimised tag writer ? for shared strings <si> elements.



72
73
74
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 72

def si_element(data, attr)
  tag_elements('si') { data_element('t', data, attr) }
end

#si_rich_element(data) ⇒ Object

Optimised tag writer for shared strings <si> rich string elements.



79
80
81
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 79

def si_rich_element(data)
  io_write("<si>#{data}</si>")
end

#start_tag(tag, attr = []) ⇒ Object



36
37
38
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 36

def start_tag(tag, attr = [])
  io_write(start_tag_str(tag, attr))
end

#start_tag_str(tag, attr = []) ⇒ Object



40
41
42
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 40

def start_tag_str(tag, attr = [])
  "<#{tag}#{key_vals(attr)}>"
end

#stringObject



98
99
100
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 98

def string
  @io.string
end

#tag_elements(tag, attributes = []) ⇒ Object



23
24
25
26
27
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 23

def tag_elements(tag, attributes = [])
  start_tag(tag, attributes)
  yield
  end_tag(tag)
end

#tag_elements_str(tag, attributes = []) ⇒ Object



29
30
31
32
33
34
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 29

def tag_elements_str(tag, attributes = [])
  str = ''
  str << start_tag_str(tag, attributes)
  str << yield
  str << end_tag_str(tag)
end

#xml_decl(encoding = 'UTF-8', standalone = true) ⇒ Object



18
19
20
21
# File 'lib/write_xlsx/package/xml_writer_simple.rb', line 18

def xml_decl(encoding = 'UTF-8', standalone = true)
  str = %Q!<?xml version="1.0" encoding="#{encoding}" standalone="#{standalone ? 'yes' : 'no'}"?>\n!
  io_write(str)
end