class Epuber::Book

Attributes

default_target[R]

@return [Epuber::Book::Target]

Public Class Methods

default_target_attribute(sym, readonly: false) click to toggle source

Defines setter and getter for default target attribute

@param [Symbol] sym attribute name

@return [Void]

# File lib/epuber/book.rb, line 59
def self.default_target_attribute(sym, readonly: false)
  # getter
  define_method(sym) do
    @default_target.send(sym)
  end

  unless readonly
    # setter
    setter_method = sym.to_s + '='
    define_method(setter_method) do |newValue|
      @default_target.send(setter_method, newValue)
    end
  end
end
new() { |self| ... } click to toggle source
Calls superclass method
# File lib/epuber/book.rb, line 15
def initialize
  super

  @default_target = Target.new(nil)
  @toc_blocks     = []

  yield self if block_given?
end

Public Instance Methods

abstract_target(name) { |target| ... } click to toggle source
# File lib/epuber/book.rb, line 114
def abstract_target(name)
  @default_target.sub_abstract_target(name) do |target|
    target.book = self
    yield target if block_given?
  end
end
add_const(*args) click to toggle source

Add constant to target, constants can be used within text files

# File lib/epuber/book.rb, line 257
def add_const(*args)
  @default_target.add_const(*args)
end
add_default_script(*file_paths) click to toggle source

Add default script to default target, default scripts will be automatically added to xhtml document

# File lib/epuber/book.rb, line 275
def add_default_script(*file_paths)
  @default_target.add_default_script(*file_paths)
end
add_default_scripts(*file_paths) click to toggle source

Add default scripts to default target, default scripts will be automatically added to xhtml document

# File lib/epuber/book.rb, line 281
def add_default_scripts(*file_paths)
  @default_target.add_default_scripts(*file_paths)
end
add_default_style(*file_paths) click to toggle source

Add default styles to default target, default styles will be automatically added to xhtml document

# File lib/epuber/book.rb, line 263
def add_default_style(*file_paths)
  @default_target.add_default_style(*file_paths)
end
add_default_styles(*file_paths) click to toggle source

Add default styles to default target, default styles will be automatically added to xhtml document

# File lib/epuber/book.rb, line 269
def add_default_styles(*file_paths)
  @default_target.add_default_styles(*file_paths)
end
add_file(*args) click to toggle source

Add file to book, see {Target#add_file} to more details

# File lib/epuber/book.rb, line 244
def add_file(*args)
  @default_target.add_file(*args)
end
add_files(*file_paths) click to toggle source

Add files to book, see Target#add_files to more details

# File lib/epuber/book.rb, line 250
def add_files(*file_paths)
  @default_target.add_files(*file_paths)
end
all_targets() click to toggle source

All targets

@return [Array<Target>]

# File lib/epuber/book.rb, line 81
def all_targets
  if @default_target.sub_targets.length == 0
    [@default_target]
  else
    @default_target.sub_targets
  end
end
buildable_targets() click to toggle source
# File lib/epuber/book.rb, line 97
def buildable_targets
  flat_all_targets.select { |t| !t.is_abstract }
end
finish_toc() click to toggle source

@return nil

# File lib/epuber/book.rb, line 26
def finish_toc
  @toc_blocks.each do |block|
    flat_all_targets.each do |target|
      target.toc(&block)
    end
  end
end
flat_all_targets() click to toggle source
# File lib/epuber/book.rb, line 89
def flat_all_targets
  if @default_target.sub_targets.length == 0
    [@default_target]
  else
    @default_target.flat_sub_items
  end
end
freeze() click to toggle source

@return nil

Calls superclass method
# File lib/epuber/book.rb, line 43
def freeze
  super
  @default_target.freeze
end
target(name) { |target| ... } click to toggle source

Defines new target

@param [String, Symbol] name

@return [Target] result target

# File lib/epuber/book.rb, line 107
def target(name)
  @default_target.sub_target(name) do |target|
    target.book = self
    yield target if block_given?
  end
end
target_named(target_name) click to toggle source

Finds target with name or nil when not found

@param target_name [Symbol, String, Epuber::Book::Target]

@return [Epuber::Book::Target, nil]

# File lib/epuber/book.rb, line 302
def target_named(target_name)
  return target_name if target_name.is_a?(Epuber::Book::Target)

  flat_all_targets.find do |target|
    target.name == target_name || target.name.to_s == target_name.to_s
  end
end
targets(*names, &block) click to toggle source

Defines several new targets with same configuration

@param [Array<String, Symbol>] names

@return [Array<Target>] result target

# File lib/epuber/book.rb, line 127
def targets(*names, &block)
  if names.empty?
    UI.warning('Book#targets to get all targets is deprecated, use #all_targets instead', location: caller_locations.first)
    return all_targets
  end

  names.map { |name| target(name, &block) }
end
toc(&block) click to toggle source

@return nil

# File lib/epuber/book.rb, line 141
def toc(&block)
  @toc_blocks << block
end
use(path) click to toggle source

Method to add plugin, that should be used while building book

# File lib/epuber/book.rb, line 287
def use(path)
  @default_target.use(path)
end
validate() click to toggle source

@return nil

Calls superclass method
# File lib/epuber/book.rb, line 36
def validate
  super
  @default_target.validate
end