Sha256: 8bf61bddbc808308a1c9680f49e7d73ffdf9cf1e082daf12a6baf511fdf6e33d
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
require 'epubber/generators/chapters' require 'epubber/generators/content' require 'epubber/generators/toc' require 'epubber/generators/introduction' require 'epubber/generators/static' require 'epubber/generators/endnotes' require 'epubber/generators/cover' require 'epubber/services/persistance' require 'epubber/services/compressor' # Given a book and a place to work in, generates all required EPUB files class Epubber::Generator attr_reader :working_dir, :book, :filename def initialize(book:, filename:, working_dir:) @book = book @filename = filename || "#{book.title}.epub" @working_dir = working_dir || '/tmp/epubber' @persistance = Epubber::Services::Persistance.new File.join(@working_dir, 'workspace') @generators = [] register_generators book: book, persistance: @persistance end def register_generators(params) add_generator Epubber::Generators::Content.new(params) add_generator Epubber::Generators::Cover.new(params) add_generator Epubber::Generators::Introduction.new(params) add_generator Epubber::Generators::Toc.new(params) add_generator Epubber::Generators::Chapters.new(params) add_generator Epubber::Generators::Endnotes.new(params) add_generator Epubber::Generators::Static.new(params) end def generate @generators.each { |generator| generator.generate } pack end protected def clean_tmp @persistance.clean end def compressor Epubber::Services::Compressor.new end def compress file = File.join working_dir, "#{filename}" dir = File.join working_dir, 'workspace' compressor.compress dir, file return file end def pack path = compress clean_tmp return path end def add_generator(generator) @generators << generator end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
epubber-0.2.0 | lib/epubber/generator.rb |