class Epuber::Book
Attributes
@return [Epuber::Book::Target]
Public Class Methods
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
# 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
# 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 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 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 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 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 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 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 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
@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
# File lib/epuber/book.rb, line 97 def buildable_targets flat_all_targets.select { |t| !t.is_abstract } end
@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
# 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
@return nil
# File lib/epuber/book.rb, line 43 def freeze super @default_target.freeze end
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
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
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
@return nil
# File lib/epuber/book.rb, line 141 def toc(&block) @toc_blocks << block end
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
@return nil
# File lib/epuber/book.rb, line 36 def validate super @default_target.validate end