class Ulysses::Sheet
Attributes
dirname[R]
Public Class Methods
new(dirname)
click to toggle source
# File lib/ulysses/sheet.rb, line 6 def initialize(dirname) @dirname = dirname end
Public Instance Methods
markup()
click to toggle source
# File lib/ulysses/sheet.rb, line 10 def markup @markup ||= parse_markup end
reload()
click to toggle source
# File lib/ulysses/sheet.rb, line 22 def reload @markup, @xml, @html = nil end
to_html()
click to toggle source
# File lib/ulysses/sheet.rb, line 18 def to_html @html ||= Exporter.new(xml).to_html end
xml()
click to toggle source
# File lib/ulysses/sheet.rb, line 14 def xml @xml ||= Nokogiri::XML(File.read(File.join(@dirname, 'Content.xml'))) end
Private Instance Methods
parse_markup()
click to toggle source
# File lib/ulysses/sheet.rb, line 32 def parse_markup segment = xml.xpath('/sheet/markup')[0] markup = parse_xml_attributes(segment) markup[:definitions] = begin defines = segment.children.select { |node| node.element? }.map do |node| attrs = parse_xml_attributes(node) [attrs[:definition].to_sym, attrs] end Hash[defines] end markup end
parse_xml_attributes(node)
click to toggle source
# File lib/ulysses/sheet.rb, line 28 def parse_xml_attributes(node) Hash[node.attributes.map { |nm, el| [nm.to_sym, el.value] }] end