class ReVIEW::Book::Part

Attributes

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

Public Class Methods

new(book, number, chapters, name = '', io = nil) click to toggle source

if Part is dummy, `number` is nil.

# File lib/review/book/part.rb, line 18
def initialize(book, number, chapters, name = '', io = nil)
  @book = book
  @number = number
  @chapters = chapters
  @name = name
  @path = name
  @content = nil
  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: 'r:BOM|utf-8')
    @name = File.basename(@name, '.re')
  end
  if file?
    @title = nil
  else
    @title = name
  end
  @volume = nil
end

Public Instance Methods

each_chapter(&block) click to toggle source
# File lib/review/book/part.rb, line 43
def each_chapter(&block)
  @chapters.each(&block)
end
file?() click to toggle source
# File lib/review/book/part.rb, line 53
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 57
def format_number(heading = true)
  if heading
    I18n.t('part', @number)
  else
    @number.to_s
  end
end
on_APPENDIX?()

backward compatibility

Alias for: on_appendix?
on_appendix?() click to toggle source
# File lib/review/book/part.rb, line 65
def on_appendix?
  false
end
Also aliased as: on_APPENDIX?
volume() click to toggle source
# File lib/review/book/part.rb, line 47
def volume
  vol = Volume.sum(@chapters.map(&:volume))
  vol.page_per_kbyte = @book.page_metric.page_per_kbyte
  vol
end