Class: UnpackStrategy::MicrosoftOfficeXml

Inherits:
Uncompressed show all
Defined in:
unpack_strategy/microsoft_office_xml.rb

Overview

Strategy for unpacking Microsoft Office documents.

Instance Attribute Summary

Attributes included from UnpackStrategy

#merge_xattrs, #path

Class Method Summary collapse

Methods inherited from Uncompressed

#extract_nestedly

Methods included from UnpackStrategy

#dependencies, detect, #each_directory, #extract, #extract_nestedly, from_extension, from_magic, from_type, #initialize

Methods included from SystemCommand::Mixin

#system_command, #system_command!

Class Method Details

.can_extract?(path) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
# File 'unpack_strategy/microsoft_office_xml.rb', line 18

def self.can_extract?(path)
  return false unless Zip.can_extract?(path)

  # Check further if the ZIP is a Microsoft Office XML document.
  path.magic_number.match?(/\APK\003\004/n) &&
    path.magic_number.match?(%r{\A.{30}(\[Content_Types\]\.xml|_rels/\.rels)}n)
end

.extensionsArray<String>

Returns:



10
11
12
13
14
15
16
# File 'unpack_strategy/microsoft_office_xml.rb', line 10

def self.extensions
  [
    ".doc", ".docx",
    ".ppt", ".pptx",
    ".xls", ".xlsx"
  ]
end