Class: Repub::Epub::Toc

Inherits:
Object show all
Defined in:
lib/repub/epub/toc.rb

Defined Under Namespace

Classes: DocTitle, Head, NavMap

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uid) ⇒ Toc

Returns a new instance of Toc.



9
10
11
12
13
# File 'lib/repub/epub/toc.rb', line 9

def initialize(uid)
  @head = Head.new(uid)
  @doc_title = DocTitle.new('Untitled')
  @nav_map = NavMap.new
end

Instance Attribute Details

Returns the value of attribute nav_map.



23
24
25
# File 'lib/repub/epub/toc.rb', line 23

def nav_map
  @nav_map
end

Instance Method Details

#save(path = 'toc.ncx') ⇒ Object



40
41
42
43
44
# File 'lib/repub/epub/toc.rb', line 40

def save(path = 'toc.ncx')
  File.open(path, 'w') do |f|
    f << to_xml
  end
end

#titleObject



15
16
17
# File 'lib/repub/epub/toc.rb', line 15

def title
  @doc_title.text
end

#title=(text) ⇒ Object



19
20
21
# File 'lib/repub/epub/toc.rb', line 19

def title=(text)
  @doc_title = DocTitle.new(text)
end

#to_xmlObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/repub/epub/toc.rb', line 25

def to_xml
  out = ''
  builder = Builder::XmlMarkup.new(:target => out)
  builder.instruct!
  builder.declare! :DOCTYPE, :ncx, :PUBLIC, "-//NISO//DTD ncx 2005-1//EN", "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"
  builder.ncx :xmlns => "http://www.daisy.org/z3986/2005/ncx/", :version => "2005-1" do
    @nav_map.calc_depth_and_play_order
    @head.depth = @nav_map.depth
    @head.to_xml(builder)
    @doc_title.to_xml(builder)
    @nav_map.to_xml(builder)
  end
  out
end