class ChupaText::Decomposers::OpenDocument

Public Instance Methods

decompose(data, &block) click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 38
def decompose(data, &block)
  unzip(data) do |zip|
    context = {
      data: data,
      attributes: {},
    }
    zip.each do |entry|
      next unless entry.file?
      case entry.zip_path
      when "content.xml"
        process_content(entry, context, &block)
      when "meta.xml"
        process_meta(entry, context, &block)
      end
    end
    finish_decompose(context, &block)
  end
end
target?(data) click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 25
def target?(data)
  data.extension == @extension or
    data.mime_type == @mime_type
end
target_score(data) click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 30
def target_score(data)
  if target?(data)
    -1
  else
    nil
  end
end

Private Instance Methods

log_tag() click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 68
def log_tag
  "[decomposer][opendocument]"
end
parse(input, listener) click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 58
def parse(input, listener)
  parser = SAXParser.new(input, listener)
  parser.parse
end
process_meta(entry, context, &block) click to toggle source
# File lib/chupa-text/decomposers/opendocument.rb, line 63
def process_meta(entry, context, &block)
  listener = AttributesListener.new(context[:attributes])
  parse(entry.file_data, listener)
end