class Epuber::Compiler::Generator

Attributes

compilation_context[R]

@return [Epuber::Compiler::CompilationContext]

Public Class Methods

new(compilation_context) click to toggle source

@param [Epuber::Compiler::CompilationContext] compilation_context

# File lib/epuber/compiler/generator.rb, line 25
def initialize(compilation_context)
  @compilation_context = compilation_context
  @book = compilation_context.book
  @target = compilation_context.target
  @file_resolver = compilation_context.file_resolver
end

Protected Instance Methods

generate_xml(&block) click to toggle source

Helper function for generating XML

@yields xml_builder @yieldsparam [Nokogiri::XML::Builder] xml_builder

@return [Nokogiri::XML::Document]

# File lib/epuber/compiler/generator.rb, line 54
def generate_xml(&block)
  builder = Nokogiri::XML::Builder.new(encoding: 'utf-8') do |xml|
    @xml = xml

    block.call(xml) unless block.nil?

    @xml = nil
  end

  builder.doc
end
pretty_path(file) click to toggle source

@param [Epuber::Compiler::FileTypes::AbstractFile] file

@return [String]

# File lib/epuber/compiler/generator.rb, line 43
def pretty_path(file)
  file.destination_path
end
pretty_path_for_toc_item(toc_item, fragment: true) click to toggle source
# File lib/epuber/compiler/generator.rb, line 34
def pretty_path_for_toc_item(toc_item, fragment: true)
  file = @file_resolver.file_from_request(toc_item.file_request)
  [file.destination_path, fragment ? toc_item.file_fragment : nil].compact.join('#')
end