Class: ReVIEW::Book::Chapter
Instance Attribute Summary collapse
Attributes included from Compilable
#content, #path
Instance Method Summary
collapse
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, #name, #next_chapter, #numberless_image_index, #open, #prev_chapter, #size, #table, #table_index, #title, #volume
Methods included from TextUtils
#detab, #split_paragraph
Constructor Details
#initialize(book, number, name, path, io = nil) ⇒ Chapter
Returns a new instance of Chapter.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/review/book/chapter.rb', line 21
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: 'r:BOM|utf-8')
@number = nil if %w[nonum nodisp notoc].include?()
end
@list_index = nil
@table_index = nil
@footnote_index = 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
|
Instance Method Details
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/review/book/chapter.rb', line 53
def
f = LineInput.new(Preprocessor::Strip.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
f.until_match(%r{\A//\}}) if line.rstrip[-1, 1] == '{'
end
f.gets
end
nil
end
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/review/book/chapter.rb', line 73
def format_number(heading = true)
return '' unless @number
return @number.to_s if on_predef?
if on_appendix?
return @number.to_s if @number < 1 || @number > 27
raise ReVIEW::ConfigError, %Q('appendix_format:' in config.yml is obsoleted.) if @book.config['appendix_format']
i18n_appendix = I18n.get('appendix')
fmt = i18n_appendix.scan(/%\w{1,3}/).first || '%s'
I18n.update('appendix_without_heading' => fmt)
return I18n.t('appendix', @number) if heading
return I18n.t('appendix_without_heading', @number)
end
if heading
I18n.t('chapter', @number)
else
@number.to_s
end
end
|
69
70
71
|
# File 'lib/review/book/chapter.rb', line 69
def inspect
"#<#{self.class} #{@number} #{@path}>"
end
|
#on_appendix? ⇒ Boolean
Also known as:
on_APPENDIX?
104
105
106
|
# File 'lib/review/book/chapter.rb', line 104
def on_appendix?
on_file?(@book.read_appendix)
end
|
#on_chaps? ⇒ Boolean
Also known as:
on_CHAPS?
96
97
98
|
# File 'lib/review/book/chapter.rb', line 96
def on_chaps?
on_file?(@book.read_chaps)
end
|
#on_postdef? ⇒ Boolean
Also known as:
on_POSTDEF?
108
109
110
|
# File 'lib/review/book/chapter.rb', line 108
def on_postdef?
on_file?(@book.read_postdef)
end
|
#on_predef? ⇒ Boolean
Also known as:
on_PREDEF?
100
101
102
|
# File 'lib/review/book/chapter.rb', line 100
def on_predef?
on_file?(@book.read_predef)
end
|