Class: ComicBook::CBT

Inherits:
Adapter show all
Defined in:
lib/comic_book/cbt.rb,
lib/comic_book/cbt/archiver.rb,
lib/comic_book/cbt/extractor.rb

Defined Under Namespace

Classes: Archiver, Extractor

Instance Method Summary collapse

Methods inherited from Adapter

#images, #images_and_info, #initialize, #pages

Constructor Details

This class inherits a constructor from ComicBook::Adapter

Instance Method Details

#archive(options = {}) ⇒ Object



9
10
11
# File 'lib/comic_book/cbt.rb', line 9

def archive options = {}
  Archiver.new(path).archive options
end

#entriesObject



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/comic_book/cbt.rb', line 17

def entries
  names = []

  File.open(path, 'rb') do |file|
    Gem::Package::TarReader.new(file) do |reader|
      reader.each do |entry|
        names << entry.full_name if entry.file?
      end
    end
  end

  names.map { ComicBook::Entry.new it }
end

#extract(options = {}) ⇒ Object



13
14
15
# File 'lib/comic_book/cbt.rb', line 13

def extract options = {}
  Extractor.new(path).extract options
end

#infoObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/comic_book/cbt.rb', line 31

def info
  xml = nil

  File.open(path, 'rb') do |file|
    Gem::Package::TarReader.new(file) do |reader|
      reader.each do |entry|
        next unless entry.full_name == 'ComicInfo.xml'

        xml = entry.read
        break
      end
    end
  end

  return nil unless xml

  ComicInfo.load xml
end