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