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 58
def self.default_target_attribute(sym, readonly: false)
  # getter
  define_method(sym) do
    @default_target.send(sym)
  end

  return if readonly

  # setter
  setter_method = "#{sym}="
  define_method(setter_method) do |new_value|
    @default_target.send(setter_method, new_value)
  end
end
new() { |self| ... } click to toggle source
Calls superclass method
# File lib/epuber/book.rb, line 14
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 113
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 256
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 274
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 280
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 262
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 268
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 80
def all_targets
  if @default_target.sub_targets.empty?
    [@default_target]
  else
    @default_target.sub_targets
  end
end
buildable_targets() click to toggle source
# File lib/epuber/book.rb, line 96
def buildable_targets
  flat_all_targets.reject(&:is_abstract)
end
finish_toc() click to toggle source

@return nil

# File lib/epuber/book.rb, line 25
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 88
def flat_all_targets
  if @default_target.sub_targets.empty?
    [@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 42
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 106
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 [Symbol, String, Epuber::Book::Target] target_name

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

# File lib/epuber/book.rb, line 301
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 126
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 286
def use(path)
  @default_target.use(path)
end
validate() click to toggle source

@return nil

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