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
160
161
162
|
# File 'lib/review/book/base.rb', line 160
def basedir
@basedir
end
|
#bib_exist? ⇒ Boolean
132
133
134
|
# File 'lib/review/book/base.rb', line 132
def bib_exist?
File.exist?("#{@basedir}/#{bib_file}")
end
|
#chapter(id) ⇒ Object
100
101
102
|
# File 'lib/review/book/base.rb', line 100
def chapter(id)
chapter_index()[id]
end
|
#chapter_index ⇒ Object
95
96
97
98
|
# File 'lib/review/book/base.rb', line 95
def chapter_index
@chapter_index ||= ChapterIndex.new(chapters())
@chapter_index
end
|
87
88
89
|
# File 'lib/review/book/base.rb', line 87
def chapters
parts().map {|p| p.chapters }.flatten
end
|
#each_chapter(&block) ⇒ Object
91
92
93
|
# File 'lib/review/book/base.rb', line 91
def each_chapter(&block)
chapters.each(&block)
end
|
#each_part(&block) ⇒ Object
83
84
85
|
# File 'lib/review/book/base.rb', line 83
def each_part(&block)
parts.each(&block)
end
|
79
80
81
|
# File 'lib/review/book/base.rb', line 79
def part(n)
parts.detect {|part| part.number == n }
end
|
#part_exist? ⇒ Boolean
124
125
126
|
# File 'lib/review/book/base.rb', line 124
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
76
77
|
# File 'lib/review/book/base.rb', line 73
def parts_in_file
parts.find_all{|part|
part if part.present? and part.file?
}
end
|
#postscripts ⇒ Object
148
149
150
151
152
153
154
155
156
157
158
|
# File 'lib/review/book/base.rb', line 148
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
|
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/review/book/base.rb', line 136
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
|
128
129
130
|
# File 'lib/review/book/base.rb', line 128
def read_bib
File.read("#{@basedir}/#{bib_file}")
end
|
#read_CHAPS ⇒ Object
108
109
110
|
# File 'lib/review/book/base.rb', line 108
def read_CHAPS
read_FILE("chapter_file")
end
|
#read_PART ⇒ Object
120
121
122
|
# File 'lib/review/book/base.rb', line 120
def read_PART
@read_PART ||= File.read("#{@basedir}/#{part_file}")
end
|
#read_POSTDEF ⇒ Object
116
117
118
|
# File 'lib/review/book/base.rb', line 116
def read_POSTDEF
read_FILE("postdef_file")
end
|
#read_PREDEF ⇒ Object
112
113
114
|
# File 'lib/review/book/base.rb', line 112
def read_PREDEF
read_FILE("predef_file")
end
|
104
105
106
|
# File 'lib/review/book/base.rb', line 104
def volume
Volume.sum(chapters.map {|chap| chap.volume })
end
|