Class: ComicBook::CBZ

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

Defined Under Namespace

Classes: Archiver, Extractor

Instance Method Summary collapse

Methods inherited from Adapter

#initialize

Constructor Details

This class inherits a constructor from ComicBook::Adapter

Instance Method Details

#archive(options = {}) ⇒ Object



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

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

#extract(options = {}) ⇒ Object



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

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

#infoObject



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

def info
  xml = nil

  Zip::File.open(path) do |zipfile|
    entry = zipfile.find_entry('ComicInfo.xml')
    xml   = entry&.get_input_stream&.read
  end

  return nil unless xml

  ComicInfo.load xml
end

#pagesObject



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/comic_book/cbz.rb', line 30

def pages
  entries = []

  Zip::File.open(path) do |zipfile|
    zipfile.each { |entry| entries << entry.name }
  end

  entries.select { image_file? it }
         .map    { create_page_from_entry it }
         .sort_by(&:name)
end