class Epubber::Generator
Given a book and a place to work in, generates all required EPUB files
Attributes
book[R]
filename[R]
working_dir[R]
Public Class Methods
new(book:, filename:, working_dir:)
click to toggle source
# File lib/epubber/generator.rb, line 14 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
Public Instance Methods
generate()
click to toggle source
# File lib/epubber/generator.rb, line 34 def generate @generators.each { |generator| generator.generate } pack end
register_generators(params)
click to toggle source
# File lib/epubber/generator.rb, line 24 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
Protected Instance Methods
add_generator(generator)
click to toggle source
# File lib/epubber/generator.rb, line 62 def add_generator(generator) @generators << generator end
clean_tmp()
click to toggle source
# File lib/epubber/generator.rb, line 41 def clean_tmp @persistance.clean end
compress()
click to toggle source
# File lib/epubber/generator.rb, line 49 def compress file = File.join working_dir, "#{filename}" dir = File.join working_dir, 'workspace' compressor.compress dir, file return file end
compressor()
click to toggle source
# File lib/epubber/generator.rb, line 45 def compressor Epubber::Services::Compressor.new end
pack()
click to toggle source
# File lib/epubber/generator.rb, line 56 def pack path = compress clean_tmp return path end