Class: EPUB::Parser
- Inherits:
-
Object
- Object
- EPUB::Parser
- Defined in:
- lib/epub/parser.rb,
lib/epub/parser/ocf.rb,
lib/epub/parser/utils.rb,
lib/epub/parser/version.rb,
lib/epub/parser/metadata.rb,
lib/epub/parser/publication.rb,
lib/epub/parser/content_document.rb
Defined Under Namespace
Modules: Metadata, Utils Classes: ContentDocument, OCF, Publication
Constant Summary collapse
- VERSION =
"0.3.6"
Class Method Summary collapse
-
.parse(filepath, **options) ⇒ EPUB
Parse an EPUB file.
Instance Method Summary collapse
-
#initialize(filepath, **options) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
Constructor Details
#initialize(filepath, **options) ⇒ Parser
Returns a new instance of Parser.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/epub/parser.rb', line 44 def initialize(filepath, **) path_is_uri = ([:container_adapter] == EPUB::OCF::PhysicalContainer::UnpackedURI or [:container_adapter] == :UnpackedURI or EPUB::OCF::PhysicalContainer.adapter == EPUB::OCF::PhysicalContainer::UnpackedURI) raise "File #{filepath} not found" if !path_is_uri and !File.exist?(filepath) @filepath = path_is_uri ? filepath : File.realpath(filepath) @book = create_book() if path_is_uri @book.container_adapter = :UnpackedURI elsif File.directory? @filepath @book.container_adapter = :UnpackedDirectory end @book.epub_file = @filepath if [:container_adapter] @book.container_adapter = [:container_adapter] end end |
Class Method Details
.parse(filepath, **options) ⇒ EPUB
Parse an EPUB file
39 40 41 |
# File 'lib/epub/parser.rb', line 39 def parse(filepath, **) new(filepath, ).parse end |
Instance Method Details
#parse ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/epub/parser.rb', line 65 def parse @book.container_adapter.open @filepath do |container| @book.ocf = OCF.parse(container) @book.ocf.container.rootfiles.each {|rootfile| package = Publication.parse(container, rootfile.full_path.to_s) rootfile.package = package @book.packages << package package.book = @book } end @book end |