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 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
# 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
# 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 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 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 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 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 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 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 80 def all_targets if @default_target.sub_targets.empty? [@default_target] else @default_target.sub_targets end end
# File lib/epuber/book.rb, line 96 def buildable_targets flat_all_targets.reject(&:is_abstract) end
@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
# 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
@return nil
# File lib/epuber/book.rb, line 42 def freeze super @default_target.freeze end
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
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
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
@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 286 def use(path) @default_target.use(path) end
@return nil
# File lib/epuber/book.rb, line 35 def validate super @default_target.validate end