Class: ReVIEW::Book::Base
- Inherits:
-
Object
show all
- Extended by:
- Forwardable
- Includes:
- TOCRoot
- Defined in:
- lib/review/tocparser.rb,
lib/review/book/base.rb
Overview
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from TOCRoot
#chapter?, #each_section, #each_section_with_index, #estimated_lines, #level, #n_sections
Constructor Details
#initialize(basedir, parameters = Parameters.default) ⇒ Base
Returns a new instance of Base.
49
50
51
52
53
54
|
# File 'lib/review/book/base.rb', line 49
def initialize(basedir, parameters = Parameters.default)
@basedir = basedir
@parameters = parameters
@parts = nil
@chapter_index = nil
end
|
Instance Attribute Details
Returns the value of attribute param.
16
17
18
|
# File 'lib/review/book/base.rb', line 16
def param
@param
end
|
Class Method Details
.load(dir) ⇒ Object
31
32
33
34
|
# File 'lib/review/book/base.rb', line 31
def self.load(dir)
update_rubyenv dir
new(dir)
end
|
.load_default ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/review/book/base.rb', line 18
def self.load_default
%w( . .. ../.. ).each do |basedir|
if File.file?("#{basedir}/CHAPS")
book = load(basedir)
if File.file?("#{basedir}/config.rb")
book.instance_variable_set("@parameters", Parameters.load("#{basedir}/config.rb"))
end
return book
end
end
new('.')
end
|
.update_rubyenv(dir) ⇒ Object
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/review/book/base.rb', line 38
def self.update_rubyenv(dir)
return if @basedir_seen.key?(dir)
if File.directory?("#{dir}/lib/review")
$LOAD_PATH.unshift "#{dir}/lib"
end
if File.file?("#{dir}/review-ext.rb")
Kernel.load File.expand_path("#{dir}/review-ext.rb")
end
@basedir_seen[dir] = true
end
|
Instance Method Details
158
159
160
|
# File 'lib/review/book/base.rb', line 158
def basedir
@basedir
end
|
#bib_exist? ⇒ Boolean
130
131
132
|
# File 'lib/review/book/base.rb', line 130
def bib_exist?
File.exist?("#{@basedir}/#{bib_file}")
end
|
#chapter(id) ⇒ Object
98
99
100
|
# File 'lib/review/book/base.rb', line 98
def chapter(id)
chapter_index()[id]
end
|
#chapter_index ⇒ Object
93
94
95
96
|
# File 'lib/review/book/base.rb', line 93
def chapter_index
@chapter_index ||= ChapterIndex.new(chapters())
@chapter_index
end
|
85
86
87
|
# File 'lib/review/book/base.rb', line 85
def chapters
parts().map {|p| p.chapters }.flatten
end
|
#each_chapter(&block) ⇒ Object
89
90
91
|
# File 'lib/review/book/base.rb', line 89
def each_chapter(&block)
chapters.each(&block)
end
|
#each_part(&block) ⇒ Object
81
82
83
|
# File 'lib/review/book/base.rb', line 81
def each_part(&block)
parts.each(&block)
end
|
77
78
79
|
# File 'lib/review/book/base.rb', line 77
def part(n)
parts.detect {|part| part.number == n }
end
|
#part_exist? ⇒ Boolean
122
123
124
|
# File 'lib/review/book/base.rb', line 122
def part_exist?
File.exist?("#{@basedir}/#{part_file}")
end
|
69
70
71
|
# File 'lib/review/book/base.rb', line 69
def parts
@parts ||= read_parts()
end
|
#parts_in_file ⇒ Object
73
74
75
|
# File 'lib/review/book/base.rb', line 73
def parts_in_file
parts.find_all{|part| part if part.file? }
end
|
#postscripts ⇒ Object
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/review/book/base.rb', line 146
def postscripts
if File.file?("#{@basedir}/#{postdef_file}")
begin
return mkpart_from_namelistfile("#{@basedir}/#{postdef_file}")
rescue FileNotFound => err
raise FileNotFound, "postscript #{err.message}"
end
else
mkpart_from_namelist(%w(appendix postscript))
end
end
|
134
135
136
137
138
139
140
141
142
143
144
|
# File 'lib/review/book/base.rb', line 134
def prefaces
if File.file?("#{@basedir}/#{predef_file}")
begin
return mkpart_from_namelistfile("#{@basedir}/#{predef_file}")
rescue FileNotFound => err
raise FileNotFound, "preface #{err.message}"
end
else
mkpart_from_namelist(%w(preface))
end
end
|
126
127
128
|
# File 'lib/review/book/base.rb', line 126
def read_bib
File.read("#{@basedir}/#{bib_file}")
end
|
#read_CHAPS ⇒ Object
106
107
108
|
# File 'lib/review/book/base.rb', line 106
def read_CHAPS
read_FILE("chapter_file")
end
|
#read_PART ⇒ Object
118
119
120
|
# File 'lib/review/book/base.rb', line 118
def read_PART
@read_PART ||= File.read("#{@basedir}/#{part_file}")
end
|
#read_POSTDEF ⇒ Object
114
115
116
|
# File 'lib/review/book/base.rb', line 114
def read_POSTDEF
read_FILE("postdef_file")
end
|
#read_PREDEF ⇒ Object
110
111
112
|
# File 'lib/review/book/base.rb', line 110
def read_PREDEF
read_FILE("predef_file")
end
|
102
103
104
|
# File 'lib/review/book/base.rb', line 102
def volume
Volume.sum(chapters.map {|chap| chap.volume })
end
|