class Plaintext::ZippedXmlHandler

Handler base class for XML based (MS / Open / Libre) office documents.

Public Instance Methods

text(file, options = {}) click to toggle source
# File lib/plaintext/file_handler/zipped_xml_handler.rb, line 53
def text(file, options = {})
  max_size = options[:max_size]
  Zip::File.open(file) do |zip_file|
    zip_file.each do |entry|
      if entry.name == @file_name
        return xml_to_text entry.get_input_stream, max_size
      end
    end
  end
end

Private Instance Methods

xml_to_text(io, max_size) click to toggle source
# File lib/plaintext/file_handler/zipped_xml_handler.rb, line 66
def xml_to_text(io, max_size)
  sax_doc = SaxDocument.new @element, @namespace_uri, max_size
  Nokogiri::XML::SAX::Parser.new(sax_doc).parse(io)
  text = sax_doc.text
  max_size.present? ? text[0, max_size] : text
end