class ReVIEW::Book::Part

Attributes

chapters[R]
name[R]
number[R]

Public Class Methods

mkpart(chaps) click to toggle source
# File lib/review/book/part.rb, line 30
def self.mkpart(chaps)
  chaps.empty? ? nil : Part.new(chaps[0].book, nil, chaps)
end
mkpart_from_namelist(book, names) click to toggle source
# File lib/review/book/part.rb, line 26
def self.mkpart_from_namelist(book, names)
  Part.mkpart(names.map { |name| Chapter.mkchap_ifexist(book, name) }.compact)
end
mkpart_from_namelistfile(book, path) click to toggle source
# File lib/review/book/part.rb, line 14
def self.mkpart_from_namelistfile(book, path)
  chaps = []
  File.read(path, mode: 'rt:BOM|utf-8').split.each_with_index do |name, number|
    chaps << if /PREDEF/.match?(path)
               Chapter.mkchap(book, name)
             else
               Chapter.mkchap(book, name, number + 1)
             end
  end
  Part.mkpart(chaps)
end
new(book, number, chapters, name = '', io = nil) click to toggle source

if Part is dummy, ‘number` is nil.

Calls superclass method ReVIEW::Book::BookUnit::new
# File lib/review/book/part.rb, line 36
def initialize(book, number, chapters, name = '', io = nil)
  @book = book
  @number = number
  @name = name
  @chapters = chapters
  @path = name
  if io
    @content = io.read
  elsif @path.present? && File.exist?(File.join(@book.config['contentdir'], @path))
    @content = File.read(File.join(@book.config['contentdir'], @path), mode: 'rt:BOM|utf-8')
    @name = File.basename(name, '.re')
  else
    @content = ''
  end
  @title = if file?
             nil
           else
             name
           end
  @volume = nil

  super()
end

Public Instance Methods

each_chapter(&block) click to toggle source
# File lib/review/book/part.rb, line 75
def each_chapter(&block)
  @chapters.each(&block)
end
file?() click to toggle source
# File lib/review/book/part.rb, line 87
def file?
  name.present? and path.end_with?('.re')
end
format_number(heading = true) click to toggle source
# File lib/review/book/part.rb, line 91
def format_number(heading = true)
  if heading
    I18n.t('part', @number)
  else
    @number.to_s
  end
end
generate_indexes() click to toggle source
Calls superclass method ReVIEW::Book::BookUnit#generate_indexes
# File lib/review/book/part.rb, line 60
def generate_indexes
  super

  return unless content

  @numberless_image_index = @indexes.numberless_image_index
  @image_index = @indexes.image_index
  @icon_index = @indexes.icon_index
  @indepimage_index = @indexes.indepimage_index
end
on_APPENDIX?()

backward compatibility

Alias for: on_appendix?
on_appendix?() click to toggle source
# File lib/review/book/part.rb, line 99
def on_appendix?
  false
end
Also aliased as: on_APPENDIX?
volume() click to toggle source
# File lib/review/book/part.rb, line 79
def volume
  if @number && file?
    Volume.count_file(File.join(@book.config['contentdir'], @path))
  else
    Volume.new(0, 0, 0)
  end
end