class ChupaText::Decomposers::XML

Public Instance Methods

decompose(data) { |text_data| ... } click to toggle source
# File lib/chupa-text/decomposers/xml.rb, line 31
def decompose(data)
  text = ""
  listener = Listener.new(text)
  data.open do |input|
    begin
      parser = SAXParser.new(input, listener)
      parser.parse
    rescue SAXParser::ParseError => xml_error
      error do
        message = "#{log_tag} Failed to parse XML: "
        message << "#{xml_error.class}: #{xml_error.message}\n"
        message << xml_error.backtrace.join("\n")
        message
      end
      return
    end
  end
  text_data = TextData.new(text, :source_data => data)
  yield(text_data)
end
target?(data) click to toggle source
# File lib/chupa-text/decomposers/xml.rb, line 26
def target?(data)
  data.extension == "xml" or
    data.mime_type == "text/xml"
end

Private Instance Methods

log_tag() click to toggle source
# File lib/chupa-text/decomposers/xml.rb, line 53
def log_tag
  "[decomposer][xml]"
end