Class: ReVIEW::Book::Chapter
Instance Attribute Summary collapse
Attributes included from Compilable
#content, #path
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Compilable
#basename, #bibpaper, #bibpaper_index, #column, #column_index, #dirname, #equation, #equation_index, #footnote, #footnote_index, #headline, #headline_index, #icon_index, #image, #image_bound?, #image_index, #indepimage_index, #lines, #list, #list_index, #name, #next_chapter, #numberless_image_index, #prev_chapter, #size, #table, #table_index, #title, #volume
Methods included from TextUtils
#add_space?, #defer_math_image, #detab, #join_lines_to_paragraph, #split_paragraph
Constructor Details
#initialize(book, number, name, path, io = nil) ⇒ Chapter
Returns a new instance of Chapter.
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/review/book/chapter.rb', line 36
def initialize(book, number, name, path, io = nil)
@book = book
@number = number
@name = name
@path = path
@io = io
@title = nil
if @io
begin
@content = @io.read
rescue
@content = nil
end
else
@content = nil
end
if !@content && @path && File.exist?(@path)
@content = File.read(@path, mode: 'rt:BOM|utf-8')
@number = nil if %w[nonum nodisp notoc].include?()
end
@list_index = nil
@table_index = nil
@equation_index = nil
= nil
@image_index = nil
@icon_index = nil
@numberless_image_index = nil
@indepimage_index = nil
@headline_index = nil
@column_index = nil
@volume = nil
end
|
Instance Attribute Details
Returns the value of attribute book.
19
20
21
|
# File 'lib/review/book/chapter.rb', line 19
def book
@book
end
|
Returns the value of attribute number.
19
20
21
|
# File 'lib/review/book/chapter.rb', line 19
def number
@number
end
|
Class Method Details
.mkchap(book, name, number = nil) ⇒ Object
21
22
23
24
25
26
|
# File 'lib/review/book/chapter.rb', line 21
def self.mkchap(book, name, number = nil)
name += book.ext if File.extname(name).empty?
path = File.join(book.contentdir, name)
raise FileNotFound, "file not exist: #{path}" unless File.file?(path)
Chapter.new(book, number, name, path)
end
|
.mkchap_ifexist(book, name, number = nil) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/review/book/chapter.rb', line 28
def self.mkchap_ifexist(book, name, number = nil)
name += book.ext if File.extname(name).empty?
path = File.join(book.contentdir, name)
if File.file?(path)
Chapter.new(book, number, name, path)
end
end
|
Instance Method Details
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/review/book/chapter.rb', line 69
def
f = LineInput.new(StringIO.new(@content))
while f.next?
case f.peek
when /\A=+[\[\s\{]/
m = /\A(=+)(?:\[(.+?)\])?(?:\{(.+?)\})?(.*)/.match(f.gets)
return m[2]
when %r{/\A//[a-z]+/}
line = f.gets
if line.rstrip[-1, 1] == '{'
f.until_match(%r{\A//\}})
end
end
f.gets
end
nil
end
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# File 'lib/review/book/chapter.rb', line 91
def format_number(heading = true)
return '' unless @number
if on_predef?
return @number.to_s
end
if on_appendix?
if @number < 1 || @number > 27
return @number.to_s
end
if @book.config['appendix_format']
raise ReVIEW::ConfigError, %Q('appendix_format:' in config.yml is obsoleted.)
end
i18n_appendix = I18n.get('appendix')
fmt = i18n_appendix.scan(/%\w{1,3}/).first || '%s'
I18n.update('appendix_without_heading' => fmt)
if heading
return I18n.t('appendix', @number)
else
return I18n.t('appendix_without_heading', @number)
end
end
if heading
I18n.t('chapter', @number)
else
@number.to_s
end
end
|
87
88
89
|
# File 'lib/review/book/chapter.rb', line 87
def inspect
"#<#{self.class} #{@number} #{@path}>"
end
|
#on_appendix? ⇒ Boolean
Also known as:
on_APPENDIX?
132
133
134
|
# File 'lib/review/book/chapter.rb', line 132
def on_appendix?
on_file?(@book.read_appendix)
end
|
#on_chaps? ⇒ Boolean
Also known as:
on_CHAPS?
124
125
126
|
# File 'lib/review/book/chapter.rb', line 124
def on_chaps?
on_file?(@book.read_chaps)
end
|
#on_postdef? ⇒ Boolean
Also known as:
on_POSTDEF?
136
137
138
|
# File 'lib/review/book/chapter.rb', line 136
def on_postdef?
on_file?(@book.read_postdef)
end
|
#on_predef? ⇒ Boolean
Also known as:
on_PREDEF?
128
129
130
|
# File 'lib/review/book/chapter.rb', line 128
def on_predef?
on_file?(@book.read_predef)
end
|