class ChupaText::Decomposers::OfficeOpenXMLPresentation

Public Class Methods

new(options={}) click to toggle source
Calls superclass method
# File lib/chupa-text/decomposers/office-open-xml-presentation.rb, line 24
def initialize(options={})
  super
  @extensions = [
    "pptx",
    "pptm",
    "ppsx",
    "ppsm",
    "potx",
    "potm",
    "sldx",
    "sldm",
  ]
  @mime_types = [
    "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
    "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
    "application/vnd.ms-powerpoint.slideshow.macroEnabled.12",
    "application/vnd.openxmlformats-officedocument.presentationml.template",
    "application/vnd.ms-powerpoint.template.macroEnabled.12",
    "application/vnd.openxmlformats-officedocument.presentationml.slide",
    "application/vnd.ms-powerpoint.slide.macroEnabled.12",
  ]
  @namespace_uri =
    "http://schemas.openxmlformats.org/drawingml/2006/main"
end

Private Instance Methods

finish_decompose(context) { |metadata| ... } click to toggle source
# File lib/chupa-text/decomposers/office-open-xml-presentation.rb, line 65
def finish_decompose(context, &block)
  metadata = TextData.new("", source_data: context[:data])
  context[:attributes].each do |name, value|
    metadata[name] = value
  end
  yield(metadata)

  slide_texts = context[:slides].sort_by(&:first).collect(&:last)
  slide_texts.each_with_index do |slide_text, i|
    text_data = TextData.new(slide_text, source_data: context[:data])
    text_data["index"] = i
    yield(text_data)
  end
end
log_tag() click to toggle source
# File lib/chupa-text/decomposers/office-open-xml-presentation.rb, line 80
def log_tag
  "#{super}[presentation]"
end
process_entry(entry, context) click to toggle source
# File lib/chupa-text/decomposers/office-open-xml-presentation.rb, line 55
def process_entry(entry, context)
  case entry.zip_path
  when /\Appt\/slides\/slide(\d+)\.xml/
    nth_slide = Integer($1, 10)
    slide_text = ""
    extract_text(entry, slide_text)
    context[:slides] << [nth_slide, slide_text]
  end
end
start_decompose(context) click to toggle source
# File lib/chupa-text/decomposers/office-open-xml-presentation.rb, line 51
def start_decompose(context)
  context[:slides] = []
end