class CbrToEpub::Output::EpubBuilder

Attributes

data[R]
file_manager[R]

Public Class Methods

new(file_manager, data) click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 7
def initialize(file_manager, data)
  @file_manager = file_manager
  @data = data
end

Public Instance Methods

generate_images() click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 29
def generate_images
  data.pages.each do |page|
    FileUtils.copy(page.input_image_file, File.join(output_directory, 'OEBPS/', page.image_file))
  end
end
generate_metadata() click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 12
def generate_metadata
  Dir.mkdir(File.join(output_directory, 'META-INF'))
  Dir.mkdir(File.join(output_directory, 'OEBPS'))

  copy_template('mimetype')
  copy_template('META-INF/container.xml')
  copy_template('OEBPS/style.css')
  render_template('OEBPS/content.opf', data)
  render_template('OEBPS/toc.ncx', data)
end
generate_pages() click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 23
def generate_pages
  data.pages.each do |page|
    render_template('OEBPS/page.xhtml', page, output_file_name = File.join('OEBPS', page.page_file))
  end
end

Private Instance Methods

copy_template(file_name) click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 39
def copy_template(file_name)
  FileUtils.copy(File.join(template_directory, file_name), File.join(output_directory, file_name))
end
output_directory() click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 53
def output_directory
  file_manager.epub_directory
end
render_template(file_name, bind_object, output_file_name = nil) click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 43
def render_template(file_name, bind_object, output_file_name = nil)
  template = File.read(File.join(template_directory, file_name + '.erb'))
  rendered_template = ERB.new(template).result(bind_object.erb_binding)
  File.write(File.join(output_directory, output_file_name || file_name), rendered_template)
end
template_directory() click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 49
def template_directory
  File.join(__dir__, '../../template/')
end