Class: ReVIEW::Book::Part

Inherits:
Object show all
Includes:
Compilable, TOCRoot
Defined in:
lib/review/book/part.rb,
lib/review/tocparser.rb

Instance Attribute Summary collapse

Attributes included from Compilable

#book, #content, #path

Instance Method Summary collapse

Methods included from TOCRoot

#chapter?, #each_section, #each_section_with_index, #estimated_lines, #level, #n_sections

Methods included from Compilable

#basename, #bibpaper, #bibpaper_index, #column, #column_index, #dirname, #env, #footnote, #footnote_index, #headline, #headline_index, #icon_index, #image, #image_index, #indepimage_index, #lines, #list, #list_index, #next_chapter, #numberless_image_index, #open, #prev_chapter, #size, #table, #table_index, #title

Methods included from TextUtils

#detab

Constructor Details

#initialize(book, number, chapters, name = "") ⇒ Part

Returns a new instance of Part.



18
19
20
21
22
23
24
# File 'lib/review/book/part.rb', line 18

def initialize(book, number, chapters, name="")
  @book = book
  @number = number
  @chapters = chapters
  @path = name
  @name = name ? File.basename(name, '.re') : nil
end

Instance Attribute Details

#chaptersObject (readonly)

Returns the value of attribute chapters.



27
28
29
# File 'lib/review/book/part.rb', line 27

def chapters
  @chapters
end

#nameObject (readonly)

Returns the value of attribute name.



28
29
30
# File 'lib/review/book/part.rb', line 28

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



26
27
28
# File 'lib/review/book/part.rb', line 26

def number
  @number
end

Instance Method Details

#each_chapter(&block) ⇒ Object



30
31
32
# File 'lib/review/book/part.rb', line 30

def each_chapter(&block)
  @chapters.each(&block)
end

#file?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/review/book/part.rb', line 40

def file?
  (name.present? and path =~ /\.re\z/) ? true : false
end

#format_number(heading = true) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/review/book/part.rb', line 44

def format_number(heading = true)
  if heading
    "#{I18n.t("part", @number)}"
  else
    "#{@number}"
  end
end

#volumeObject



34
35
36
37
38
# File 'lib/review/book/part.rb', line 34

def volume
  vol = Volume.sum(@chapters.map {|chap| chap.volume })
  vol.page_per_kbyte = @book.page_metric.page_per_kbyte
  vol
end