Class: Epubber::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/epubber/generator.rb

Overview

Given a book and a place to work in, generates all required EPUB files

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(book:, filename:, working_dir:) ⇒ Generator

Returns a new instance of Generator.



14
15
16
17
18
19
20
21
22
# 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

Instance Attribute Details

#bookObject (readonly)

Returns the value of attribute book.



13
14
15
# File 'lib/epubber/generator.rb', line 13

def book
  @book
end

#filenameObject (readonly)

Returns the value of attribute filename.



13
14
15
# File 'lib/epubber/generator.rb', line 13

def filename
  @filename
end

#working_dirObject (readonly)

Returns the value of attribute working_dir.



13
14
15
# File 'lib/epubber/generator.rb', line 13

def working_dir
  @working_dir
end

Instance Method Details

#generateObject



34
35
36
37
# File 'lib/epubber/generator.rb', line 34

def generate
  @generators.each { |generator| generator.generate }
  pack
end

#register_generators(params) ⇒ Object



24
25
26
27
28
29
30
31
32
# 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