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 ['nonum', 'nodisp', 'notoc'].include?()
end
@list_index = nil
@table_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
|
Instance Method Details
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# 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
if line.rstrip[-1,1] == "{"
f.until_match(%r<\A//\}>)
end
end
f.gets
end
nil
end
|
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/review/book/chapter.rb', line 75
def format_number(heading = true)
return "" unless @number
if on_PREDEF?
return "#{@number}"
end
if on_APPENDIX?
return "#{@number}" if @number < 1 || @number > 27
if @book.config["appendix_format"]
raise ReVIEW::ConfigError,
"'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}"
end
end
|
71
72
73
|
# File 'lib/review/book/chapter.rb', line 71
def inspect
"\#<#{self.class} #{@number} #{@path}>"
end
|
#on_APPENDIX? ⇒ Boolean
115
116
117
|
# File 'lib/review/book/chapter.rb', line 115
def on_APPENDIX?
on_FILE?(@book.read_APPENDIX)
end
|
#on_CHAPS? ⇒ Boolean
107
108
109
|
# File 'lib/review/book/chapter.rb', line 107
def on_CHAPS?
on_FILE?(@book.read_CHAPS)
end
|
#on_POSTDEF? ⇒ Boolean
119
120
121
|
# File 'lib/review/book/chapter.rb', line 119
def on_POSTDEF?
on_FILE?(@book.read_POSTDEF)
end
|
#on_PREDEF? ⇒ Boolean
111
112
113
|
# File 'lib/review/book/chapter.rb', line 111
def on_PREDEF?
on_FILE?(@book.read_PREDEF)
end
|