Sha256: fc7d28217dea1bb4e84604d15e66e00605a7cca4f7f9343cee186242a2586365
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'epub/constants' require 'epub/parser/version' require 'epub/parser/ocf' require 'epub/parser/publication' require 'epub/parser/content_document' require 'shellwords' require 'nokogiri' module EPUB class Parser class << self def parse(file, dir, options = {}) new(file, dir, options).parse end end def initialize(filepath, root_directory, options = {}) raise "File #{filepath} not readable" unless File.readable_real? filepath raise "File #{root_directory} already exists" if File.file? root_directory @filepath = File.realpath filepath Dir.mkdir(root_directory) unless File.directory? root_directory @dir = File.realpath root_directory @book = create_book options unzip_cmd = options['unzip-command'] || 'unzip' unzip_cmd << " #{@filepath.to_s.shellescape} -d #{@dir.to_s.shellescape} 1>/dev/null" system unzip_cmd end def parse @book.ocf = parse_ocf @book.package = parse_publication # @book.content_document =??? parse_content_document # ... @book end def parse_ocf OCF.parse @dir end def parse_publication Publication.parse File.join(@dir, @book.rootfile_path) end def parse_content_document # ContentDocument.parse @dir end private def create_book(params) case when params[:book] options[:book] when params[:class] options[:class].new else require 'epub/book' Book.new end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
epub-parser-0.0.8 | lib/epub/parser.rb |