Module FileType::Extractable
In: lib/file_type.rb

Methods

Public Instance methods

default()

Alias for extract

[Source]

# File lib/file_type.rb, line 130
    def extract
      base, ext = @base.extsplit
      @tmp = TempPath.new(base.path.basename, ext)
      cmd = mk_cmd(@tmp)
      data = cmd.run(self.class.runner)
      data.waitpid if data.status.nil?
      if data.status != 0
        @tmp.rmtree if @tmp.exist?
        STDERR.puts data.error.read if data.error and data.error.exist?
        raise ExtractError, "Cannot extract a file:
        |  path: #{to_s}
        |  type: #{self.class}
        |  command: #{cmd}
        |  exit status: #{data.status.exitstatus}".head_cut!
      end
      FileType.guess(@tmp)
    end

[Source]

# File lib/file_type.rb, line 122
    def extractable?
      true
    end

[Source]

# File lib/file_type.rb, line 126
    def mk_cmd ( out )
      extract_command < @path > out
    end

[Validate]