review 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -4
- data/.travis.yml +1 -1
- data/NEWS.ja.md +97 -1
- data/NEWS.md +97 -1
- data/bin/review-catalog-converter +1 -1
- data/bin/review-check +5 -5
- data/bin/review-checkdep +1 -1
- data/bin/review-compile +5 -5
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +7 -7
- data/bin/review-preproc +9 -9
- data/bin/review-validate +2 -2
- data/bin/review-vol +5 -5
- data/doc/config.yml.sample +14 -6
- data/doc/config.yml.sample-simple +1 -1
- data/doc/format.ja.md +15 -5
- data/doc/format.md +30 -18
- data/doc/pdfmaker.ja.md +1 -1
- data/doc/pdfmaker.md +1 -1
- data/lib/review/book.rb +1 -1
- data/lib/review/book/base.rb +23 -63
- data/lib/review/book/chapter.rb +18 -3
- data/lib/review/book/compilable.rb +5 -0
- data/lib/review/book/index.rb +26 -65
- data/lib/review/book/index/item.rb +40 -0
- data/lib/review/book/part.rb +22 -2
- data/lib/review/builder.rb +60 -40
- data/lib/review/catalog.rb +12 -15
- data/lib/review/compiler.rb +68 -36
- data/lib/review/configure.rb +10 -7
- data/lib/review/epubmaker.rb +5 -2
- data/lib/review/htmlbuilder.rb +24 -71
- data/lib/review/htmlutils.rb +2 -3
- data/lib/review/i18n.rb +2 -2
- data/lib/review/idgxmlbuilder.rb +101 -55
- data/lib/review/idgxmlmaker.rb +184 -0
- data/lib/review/init-web/finish.html +10 -0
- data/lib/review/init-web/index.html +190 -0
- data/lib/review/init-web/review-layout-design.js +691 -0
- data/lib/review/init.rb +110 -26
- data/lib/review/latexbuilder.rb +76 -54
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/logger.rb +4 -8
- data/lib/review/makerhelper.rb +6 -4
- data/lib/review/markdownbuilder.rb +25 -38
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +15 -15
- data/lib/review/plaintextbuilder.rb +67 -76
- data/lib/review/preprocessor.rb +13 -13
- data/lib/review/rstbuilder.rb +31 -31
- data/lib/review/textmaker.rb +13 -3
- data/lib/review/textutils.rb +77 -2
- data/lib/review/tocparser.rb +17 -17
- data/lib/review/tocprinter.rb +8 -8
- data/lib/review/topbuilder.rb +76 -57
- data/lib/review/update.rb +16 -16
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +2 -2
- data/lib/review/yamlloader.rb +3 -0
- data/review.gemspec +4 -3
- data/samples/sample-book/README.md +7 -2
- data/samples/sample-book/src/.gitignore +153 -0
- data/samples/sample-book/src/config-jlreq.yml +6 -0
- data/samples/sample-book/src/lib/tasks/review.rake +20 -9
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
- data/samples/syntax-book/ch03.re +3 -6
- data/samples/syntax-book/config-jlreq.yml +5 -0
- data/samples/syntax-book/lib/tasks/review.rake +7 -7
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
- data/templates/latex/config.erb +6 -0
- data/templates/latex/layout.tex.erb +1 -0
- data/templates/latex/review-jlreq/review-base.sty +93 -31
- data/templates/latex/review-jlreq/review-jlreq.cls +6 -0
- data/templates/latex/review-jlreq/review-style.sty +3 -0
- data/templates/latex/review-jsbook/README.md +39 -0
- data/templates/latex/review-jsbook/review-base.sty +65 -10
- data/templates/latex/review-jsbook/review-jsbook.cls +4 -0
- data/templates/latex/review-jsbook/review-style.sty +4 -1
- data/test/assets/test_template.tex +11 -3
- data/test/assets/test_template_backmatter.tex +11 -3
- data/test/test_book.rb +65 -19
- data/test/test_catalog.rb +18 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_epubmaker_cmd.rb +2 -2
- data/test/test_helper.rb +1 -1
- data/test/test_htmlbuilder.rb +144 -55
- data/test/test_i18n.rb +25 -25
- data/test/test_idgxmlbuilder.rb +60 -18
- data/test/test_image_finder.rb +6 -6
- data/test/test_latexbuilder.rb +128 -24
- data/test/test_latexbuilder_v2.rb +23 -23
- data/test/test_logger.rb +14 -1
- data/test/test_makerhelper.rb +3 -3
- data/test/test_markdownbuilder.rb +45 -4
- data/test/test_md2inaobuilder.rb +12 -2
- data/test/test_pdfmaker.rb +1 -1
- data/test/test_pdfmaker_cmd.rb +1 -1
- data/test/test_plaintextbuilder.rb +31 -6
- data/test/test_rstbuilder.rb +33 -4
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +35 -7
- data/test/test_update.rb +17 -8
- data/test/test_yamlloader.rb +13 -0
- metadata +26 -2
|
@@ -132,23 +132,23 @@
|
|
|
132
132
|
\newenvironment{reviewlistblock}{\needspace{2\Cvs}}{}
|
|
133
133
|
|
|
134
134
|
\newenvironment{reviewemlist}{%
|
|
135
|
-
\medskip\small\begin{shaded}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
135
|
+
\medskip\small\begin{shaded}\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
136
136
|
\end{alltt}\end{shaded}}
|
|
137
137
|
|
|
138
138
|
\newenvironment{reviewlist}{%
|
|
139
|
-
\begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
139
|
+
\begin{shaded}\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
140
140
|
\end{alltt}\end{shaded}\par\vspace*{0.5zw}}
|
|
141
141
|
|
|
142
142
|
\newenvironment{reviewsource}{%
|
|
143
|
-
\begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
143
|
+
\begin{shaded}\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
144
144
|
\end{alltt}\end{shaded}\par\vspace*{0.5zw}}
|
|
145
145
|
|
|
146
146
|
\newenvironment{reviewcmd}{%
|
|
147
|
-
\color{white}\medskip\small\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
147
|
+
\color{white}\medskip\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
148
148
|
\end{alltt}\end{shadedb}}
|
|
149
149
|
|
|
150
150
|
\newenvironment{reviewbox}{%
|
|
151
|
-
\medskip\small\begin{framed}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
151
|
+
\medskip\small\begin{framed}\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
|
152
152
|
\end{alltt}\end{framed}}
|
|
153
153
|
|
|
154
154
|
\newenvironment{reviewtable}[1]{%
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
\newcommand{\reviewlistref}[1]{\review@intn@list #1}
|
|
206
206
|
\newcommand{\reviewequationref}[1]{\review@intn@equation #1}
|
|
207
207
|
\newcommand{\reviewbibref}[2]{#1}
|
|
208
|
-
\newcommand{\reviewcolumnref}[2]{
|
|
208
|
+
\newcommand{\reviewcolumnref}[2]{#1}
|
|
209
209
|
\newcommand{\reviewsecref}[2]{#1}
|
|
210
210
|
|
|
211
211
|
\newenvironment{reviewpart}{%
|
|
@@ -264,10 +264,58 @@
|
|
|
264
264
|
\DeclareRobustCommand{\reviewunderline}[1]{\Underline{#1}}
|
|
265
265
|
\DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
|
|
266
266
|
\DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
\
|
|
267
|
+
|
|
268
|
+
% allow break line in tt
|
|
269
|
+
% contributed by @zr_tex8r
|
|
270
|
+
\newif\ifreview@ba@break
|
|
271
|
+
\def\review@ba@end{\review@ba@end@}
|
|
272
|
+
\DeclareRobustCommand{\reviewbreakall}[1]{%
|
|
273
|
+
\begingroup
|
|
274
|
+
\review@ba@breakfalse
|
|
275
|
+
\review@break@all@a#1\review@ba@end
|
|
276
|
+
\endgroup
|
|
277
|
+
}
|
|
278
|
+
\def\review@break@all@a{%
|
|
279
|
+
\futurelet\review@ba@tok\review@break@all@b
|
|
280
|
+
}
|
|
281
|
+
\def\review@break@all@b{%
|
|
282
|
+
\ifx\review@ba@tok\review@ba@end
|
|
283
|
+
\let\next\@gobble
|
|
284
|
+
\else\ifx\review@ba@tok\@sptoken
|
|
285
|
+
\let\next\review@break@all@c
|
|
286
|
+
\else\ifx\review@ba@tok~%
|
|
287
|
+
\let\next\review@break@all@d
|
|
288
|
+
\else\ifx\review@ba@tok\bgroup
|
|
289
|
+
\let\next\review@break@all@e
|
|
290
|
+
\else
|
|
291
|
+
\let\next\review@break@all@f
|
|
292
|
+
\fi\fi\fi\fi
|
|
293
|
+
\next
|
|
294
|
+
}
|
|
295
|
+
\expandafter\def\expandafter\review@break@all@c\space{%
|
|
296
|
+
\space
|
|
297
|
+
\review@ba@breakfalse
|
|
298
|
+
\review@break@all@a
|
|
299
|
+
}
|
|
300
|
+
\def\review@break@all@d#1{%
|
|
301
|
+
\review@break@all@f{\mbox{\space}}%
|
|
302
|
+
}
|
|
303
|
+
\def\review@break@all@e#1{%
|
|
304
|
+
\review@break@all@f{{#1}}%
|
|
305
|
+
}
|
|
306
|
+
\def\review@break@all@f#1{%
|
|
307
|
+
\ifreview@ba@break
|
|
308
|
+
\hskip0pt plus 0.02em\relax
|
|
309
|
+
\fi
|
|
310
|
+
#1%
|
|
311
|
+
\review@ba@breaktrue
|
|
312
|
+
\review@break@all@a
|
|
313
|
+
}
|
|
314
|
+
\DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}}
|
|
315
|
+
\DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}}
|
|
316
|
+
\DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}}
|
|
317
|
+
\DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}}
|
|
318
|
+
|
|
271
319
|
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
|
272
320
|
|
|
273
321
|
%% @<del> is ignored in LaTeX with default style
|
|
@@ -350,6 +398,13 @@
|
|
|
350
398
|
}
|
|
351
399
|
|
|
352
400
|
% cover
|
|
401
|
+
\newcommand*\covermatter{%
|
|
402
|
+
\ifdefined\review@usecovernombre%
|
|
403
|
+
\pagenumbering{coverpagezero}
|
|
404
|
+
\setcounter{page}{0}% force to even page, to avoid empty page
|
|
405
|
+
\fi
|
|
406
|
+
}
|
|
407
|
+
|
|
353
408
|
\if@reclscover
|
|
354
409
|
\ifdefined\review@coverimage
|
|
355
410
|
\def\reviewcoverpagecont{%
|
|
@@ -43,4 +43,7 @@
|
|
|
43
43
|
\hypersetup{hidelinks}
|
|
44
44
|
|
|
45
45
|
\floatplacement{figure}{H}
|
|
46
|
-
\floatplacement{table}{
|
|
46
|
+
\floatplacement{table}{H}
|
|
47
|
+
|
|
48
|
+
% space between English/Japanese characters in list environments (\z@ means 0, no space. You can comment out below line for backward compatibility.)
|
|
49
|
+
\def\reviewlistxkanjiskip{\z@}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
\documentclass[dvipdfmx]{review-jsbook}
|
|
2
2
|
\makeatletter
|
|
3
|
-
\def\review@reviewversion{3.
|
|
3
|
+
\def\review@reviewversion{3.2.0}
|
|
4
4
|
\def\review@texcompiler{uplatex}
|
|
5
5
|
\def\review@documentclass{review-jsbook}
|
|
6
6
|
|
|
7
7
|
\def\review@booktitlename{Re:VIEW Sample Book}
|
|
8
8
|
|
|
9
|
+
\def\review@autnames{anonymous}
|
|
9
10
|
|
|
10
|
-
\def\review@titlepageauthors{}
|
|
11
|
+
\def\review@titlepageauthors{anonymous 著}
|
|
11
12
|
\def\review@date{2011{-}01{-}01}
|
|
12
13
|
|
|
13
14
|
\def\review@bookname{sample}
|
|
@@ -34,10 +35,12 @@
|
|
|
34
35
|
\def\review@tablename{表}
|
|
35
36
|
\def\review@appendixname{付録}
|
|
36
37
|
|
|
38
|
+
\def\review@usecovernombre{true}
|
|
37
39
|
\def\review@titlepage{true}
|
|
38
40
|
|
|
39
41
|
\def\review@pubhistories{2011年1月1日 発行}
|
|
40
|
-
\def\review@colophonnames{
|
|
42
|
+
\def\review@colophonnames{著 者 & anonymous \\
|
|
43
|
+
}
|
|
41
44
|
|
|
42
45
|
\def\reviewprefacefiles{}
|
|
43
46
|
\def\reviewchapterfiles{}
|
|
@@ -52,10 +55,14 @@
|
|
|
52
55
|
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
53
56
|
\includegraphics[##1]{##2}}
|
|
54
57
|
}
|
|
58
|
+
\@ifundefined{covermatter}{% for 4.0.0 compatibility
|
|
59
|
+
\def\covermatter{}
|
|
60
|
+
}
|
|
55
61
|
}
|
|
56
62
|
|
|
57
63
|
\makeatother
|
|
58
64
|
|
|
65
|
+
\usepackage{reviewmacro}
|
|
59
66
|
|
|
60
67
|
%% backward compatibility (defined in config.erb)
|
|
61
68
|
\reviewbackcompatibilityhook
|
|
@@ -69,6 +76,7 @@
|
|
|
69
76
|
|
|
70
77
|
%% coverpage
|
|
71
78
|
\ifdefined\reviewcoverpagecont
|
|
79
|
+
\covermatter
|
|
72
80
|
\reviewcoverpagecont
|
|
73
81
|
\fi
|
|
74
82
|
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
\documentclass[dvipdfmx]{review-jsbook}
|
|
2
2
|
\makeatletter
|
|
3
|
-
\def\review@reviewversion{3.
|
|
3
|
+
\def\review@reviewversion{3.2.0}
|
|
4
4
|
\def\review@texcompiler{uplatex}
|
|
5
5
|
\def\review@documentclass{review-jsbook}
|
|
6
6
|
|
|
7
7
|
\def\review@booktitlename{Re:VIEW Sample Book}
|
|
8
8
|
|
|
9
|
+
\def\review@autnames{anonymous}
|
|
9
10
|
|
|
10
|
-
\def\review@titlepageauthors{}
|
|
11
|
+
\def\review@titlepageauthors{anonymous 著}
|
|
11
12
|
\def\review@date{2011{-}01{-}01}
|
|
12
13
|
|
|
13
14
|
\def\review@bookname{sample}
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
\def\review@tablename{表}
|
|
35
36
|
\def\review@appendixname{付録}
|
|
36
37
|
|
|
38
|
+
\def\review@usecovernombre{true}
|
|
37
39
|
\def\review@titlepage{true}
|
|
38
40
|
\def\reviewprofilepagecont{\thispagestyle{empty}\chapter*{Profile}
|
|
39
41
|
some profile
|
|
@@ -48,7 +50,8 @@ some ad content
|
|
|
48
50
|
\null}
|
|
49
51
|
|
|
50
52
|
\def\review@pubhistories{2011年1月1日 発行}
|
|
51
|
-
\def\review@colophonnames{
|
|
53
|
+
\def\review@colophonnames{著 者 & anonymous \\
|
|
54
|
+
}
|
|
52
55
|
|
|
53
56
|
\def\reviewprefacefiles{}
|
|
54
57
|
\def\reviewchapterfiles{}
|
|
@@ -63,10 +66,14 @@ some ad content
|
|
|
63
66
|
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
|
64
67
|
\includegraphics[##1]{##2}}
|
|
65
68
|
}
|
|
69
|
+
\@ifundefined{covermatter}{% for 4.0.0 compatibility
|
|
70
|
+
\def\covermatter{}
|
|
71
|
+
}
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
\makeatother
|
|
69
75
|
|
|
76
|
+
\usepackage{reviewmacro}
|
|
70
77
|
|
|
71
78
|
%% backward compatibility (defined in config.erb)
|
|
72
79
|
\reviewbackcompatibilityhook
|
|
@@ -80,6 +87,7 @@ some ad content
|
|
|
80
87
|
|
|
81
88
|
%% coverpage
|
|
82
89
|
\ifdefined\reviewcoverpagecont
|
|
90
|
+
\covermatter
|
|
83
91
|
\reviewcoverpagecont
|
|
84
92
|
\fi
|
|
85
93
|
|
data/test/test_book.rb
CHANGED
|
@@ -32,7 +32,7 @@ class BookTest < Test::Unit::TestCase
|
|
|
32
32
|
def test_read_chaps
|
|
33
33
|
Dir.mktmpdir do |dir|
|
|
34
34
|
book = Book::Base.new(dir)
|
|
35
|
-
assert_equal
|
|
35
|
+
assert_equal [], book.read_chaps
|
|
36
36
|
|
|
37
37
|
chaps_path = File.join(dir, 'CHAPS')
|
|
38
38
|
re1_path = File.join(dir, "123#{book.ext}")
|
|
@@ -42,16 +42,16 @@ class BookTest < Test::Unit::TestCase
|
|
|
42
42
|
File.open(re1_path, 'w') { |o| o.print "123\n" }
|
|
43
43
|
File.open(re2_path, 'w') { |o| o.print "456\n" }
|
|
44
44
|
|
|
45
|
-
assert_equal
|
|
45
|
+
assert_equal ['abc'], book.read_chaps
|
|
46
46
|
|
|
47
47
|
File.unlink(chaps_path)
|
|
48
|
-
assert_equal
|
|
48
|
+
assert_equal [re1_path, re2_path], book.read_chaps
|
|
49
49
|
|
|
50
50
|
File.unlink(re1_path)
|
|
51
|
-
assert_equal re2_path, book.read_chaps
|
|
51
|
+
assert_equal [re2_path], book.read_chaps
|
|
52
52
|
|
|
53
53
|
File.unlink(re2_path)
|
|
54
|
-
assert_equal
|
|
54
|
+
assert_equal [], book.read_chaps
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
|
|
@@ -68,17 +68,18 @@ class BookTest < Test::Unit::TestCase
|
|
|
68
68
|
File.open(chaps_path, 'w') { |o| o.print chaps_content }
|
|
69
69
|
|
|
70
70
|
assert book.part_exist?
|
|
71
|
-
assert_equal
|
|
71
|
+
assert_equal %w[abc], book.read_part
|
|
72
72
|
|
|
73
|
+
## do not cache PART data
|
|
73
74
|
File.open(chaps_path, 'w') { |o| o.print "XYZ\n" }
|
|
74
|
-
assert_equal
|
|
75
|
+
assert_equal %w[XYZ], book.read_part
|
|
75
76
|
end
|
|
76
77
|
end
|
|
77
78
|
|
|
78
79
|
def test_read_appendix
|
|
79
80
|
Dir.mktmpdir do |dir|
|
|
80
81
|
book = Book::Base.new(dir)
|
|
81
|
-
assert_equal
|
|
82
|
+
assert_equal [], book.read_appendix
|
|
82
83
|
|
|
83
84
|
post_path = File.join(dir, 'POSTDEF')
|
|
84
85
|
re1_path = File.join(dir, "123#{book.ext}")
|
|
@@ -88,23 +89,23 @@ class BookTest < Test::Unit::TestCase
|
|
|
88
89
|
File.open(re1_path, 'w') { |o| o.print "123\n" }
|
|
89
90
|
File.open(re2_path, 'w') { |o| o.print "456\n" }
|
|
90
91
|
|
|
91
|
-
assert_equal
|
|
92
|
+
assert_equal ['abc'], book.read_appendix
|
|
92
93
|
|
|
93
94
|
File.unlink(post_path)
|
|
94
|
-
assert_equal
|
|
95
|
+
assert_equal [re1_path, re2_path], book.read_appendix
|
|
95
96
|
|
|
96
97
|
File.unlink(re1_path)
|
|
97
|
-
assert_equal re2_path, book.read_appendix
|
|
98
|
+
assert_equal [re2_path], book.read_appendix
|
|
98
99
|
|
|
99
100
|
File.unlink(re2_path)
|
|
100
|
-
assert_equal
|
|
101
|
+
assert_equal [], book.read_appendix
|
|
101
102
|
end
|
|
102
103
|
end
|
|
103
104
|
|
|
104
105
|
def test_read_postdef
|
|
105
106
|
Dir.mktmpdir do |dir|
|
|
106
107
|
book = Book::Base.new(dir)
|
|
107
|
-
assert_equal
|
|
108
|
+
assert_equal [], book.read_postdef
|
|
108
109
|
|
|
109
110
|
post_path = File.join(dir, 'POSTDEF')
|
|
110
111
|
re1_path = File.join(dir, "123#{book.ext}")
|
|
@@ -114,10 +115,10 @@ class BookTest < Test::Unit::TestCase
|
|
|
114
115
|
File.open(re1_path, 'w') { |o| o.print "123\n" }
|
|
115
116
|
File.open(re2_path, 'w') { |o| o.print "456\n" }
|
|
116
117
|
|
|
117
|
-
assert_equal
|
|
118
|
+
assert_equal [], book.read_postdef
|
|
118
119
|
|
|
119
120
|
File.unlink(post_path)
|
|
120
|
-
assert_equal
|
|
121
|
+
assert_equal [], book.read_postdef
|
|
121
122
|
end
|
|
122
123
|
end
|
|
123
124
|
|
|
@@ -248,15 +249,15 @@ EOC
|
|
|
248
249
|
''
|
|
249
250
|
]
|
|
250
251
|
]
|
|
251
|
-
].each do |n_parts,
|
|
252
|
+
].each do |n_parts, chaps, parts, part_names|
|
|
252
253
|
n_test += 1
|
|
253
254
|
Dir.mktmpdir do |dir|
|
|
254
255
|
book = Book::Base.new(dir)
|
|
255
256
|
chaps_path = File.join(dir, 'CHAPS')
|
|
256
|
-
File.open(chaps_path, 'w') { |o| o.print
|
|
257
|
-
if
|
|
257
|
+
File.open(chaps_path, 'w') { |o| o.print chaps }
|
|
258
|
+
if parts
|
|
258
259
|
parts_path = File.join(dir, 'PART')
|
|
259
|
-
File.open(parts_path, 'w') { |o| o.print
|
|
260
|
+
File.open(parts_path, 'w') { |o| o.print parts }
|
|
260
261
|
end
|
|
261
262
|
|
|
262
263
|
parts = book.instance_eval { parse_chapters }
|
|
@@ -412,6 +413,51 @@ EOC
|
|
|
412
413
|
end
|
|
413
414
|
end
|
|
414
415
|
|
|
416
|
+
def test_parts_in_file
|
|
417
|
+
mktmpbookdir do |_dir, book, _files|
|
|
418
|
+
assert book.parts_in_file.empty?
|
|
419
|
+
assert !book.part(0)
|
|
420
|
+
assert !book.part(1)
|
|
421
|
+
|
|
422
|
+
tmp = []
|
|
423
|
+
book.each_part { tmp << true }
|
|
424
|
+
assert tmp.empty?
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
mktmpbookdir 'CHAPS' => "ch1.re\nch2.re\n\nch3.re\n",
|
|
428
|
+
'PART' => "foo\nbar\n",
|
|
429
|
+
'ch1.re' => "= ch1\n\n", 'ch2.re' => "= ch2\n\n",
|
|
430
|
+
'ch3.re' => "= ch3\n\n" do |_dir, book, _files|
|
|
431
|
+
parts = book.parts_in_file
|
|
432
|
+
assert_equal 0, parts.size
|
|
433
|
+
assert !book.part(0)
|
|
434
|
+
assert_equal 'foo', book.part(1).name
|
|
435
|
+
assert_equal 'bar', book.part(2).name
|
|
436
|
+
assert !book.part(3)
|
|
437
|
+
|
|
438
|
+
tmp = []
|
|
439
|
+
book.each_part { |p| tmp << p.number }
|
|
440
|
+
assert_equal [1, 2], tmp
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
mktmpbookdir 'CHAPS' => "ch1.re\nch2.re\n\nch3.re\n",
|
|
444
|
+
'PART' => "foo.re\nbar.re\n",
|
|
445
|
+
'foo.re' => "= part1\n\n", 'bar.re' => "= part2\n\n",
|
|
446
|
+
'ch1.re' => "= ch1\n\n", 'ch2.re' => "= ch2\n\n",
|
|
447
|
+
'ch3.re' => "= ch3\n\n" do |_dir, book, _files|
|
|
448
|
+
parts = book.parts_in_file
|
|
449
|
+
assert_equal 2, parts.size
|
|
450
|
+
assert !book.part(0)
|
|
451
|
+
assert_equal 'foo', book.part(1).name
|
|
452
|
+
assert_equal 'bar', book.part(2).name
|
|
453
|
+
assert !book.part(3)
|
|
454
|
+
|
|
455
|
+
tmp = []
|
|
456
|
+
book.each_part { |p| tmp << p.number }
|
|
457
|
+
assert_equal [1, 2], tmp
|
|
458
|
+
end
|
|
459
|
+
end
|
|
460
|
+
|
|
415
461
|
def test_chapters
|
|
416
462
|
mktmpbookdir 'CHAPS' => "ch1\nch2\n\nch3" do |_dir, book, _files|
|
|
417
463
|
chapters = book.chapters
|
data/test/test_catalog.rb
CHANGED
|
@@ -7,61 +7,43 @@ class CatalogTest < Test::Unit::TestCase
|
|
|
7
7
|
|
|
8
8
|
def test_predef
|
|
9
9
|
sut = Catalog.new(yaml)
|
|
10
|
-
exp =
|
|
11
|
-
|
|
12
|
-
pre02.re
|
|
13
|
-
EOS
|
|
14
|
-
assert_equal(exp.chomp, sut.predef)
|
|
10
|
+
exp = %w[pre01.re pre02.re]
|
|
11
|
+
assert_equal(exp, sut.predef)
|
|
15
12
|
end
|
|
16
13
|
|
|
17
14
|
def test_chaps
|
|
18
15
|
sut = Catalog.new(yaml)
|
|
19
|
-
exp =
|
|
20
|
-
|
|
21
|
-
ch02.re
|
|
22
|
-
EOS
|
|
23
|
-
assert_equal(exp.chomp, sut.chaps)
|
|
16
|
+
exp = %w[ch01.re ch02.re]
|
|
17
|
+
assert_equal(exp, sut.chaps)
|
|
24
18
|
end
|
|
25
19
|
|
|
26
20
|
def test_chaps_empty
|
|
27
21
|
yaml = StringIO.new
|
|
28
22
|
sut = Catalog.new(yaml)
|
|
29
|
-
assert_equal(
|
|
23
|
+
assert_equal([], sut.chaps)
|
|
30
24
|
end
|
|
31
25
|
|
|
32
26
|
def test_appendix
|
|
33
27
|
sut = Catalog.new(yaml)
|
|
34
|
-
exp =
|
|
35
|
-
|
|
36
|
-
post02.re
|
|
37
|
-
EOS
|
|
38
|
-
assert_equal(exp.chomp, sut.appendix)
|
|
28
|
+
exp = %w[post01.re post02.re]
|
|
29
|
+
assert_equal(exp, sut.appendix)
|
|
39
30
|
end
|
|
40
31
|
|
|
41
32
|
def test_chaps_with_parts
|
|
42
33
|
sut = Catalog.new(yaml_with_parts)
|
|
43
|
-
exp =
|
|
44
|
-
|
|
45
|
-
ch02.re
|
|
46
|
-
ch03.re
|
|
47
|
-
ch04.re
|
|
48
|
-
ch05.re
|
|
49
|
-
EOS
|
|
50
|
-
assert_equal(exp.chomp, sut.chaps)
|
|
34
|
+
exp = %w[ch01.re ch02.re ch03.re ch04.re ch05.re]
|
|
35
|
+
assert_equal(exp, sut.chaps)
|
|
51
36
|
end
|
|
52
37
|
|
|
53
38
|
def test_parts
|
|
54
39
|
sut = Catalog.new(yaml_with_parts)
|
|
55
|
-
exp =
|
|
56
|
-
|
|
57
|
-
part2.re
|
|
58
|
-
EOS
|
|
59
|
-
assert_equal(exp.chomp, sut.parts)
|
|
40
|
+
exp = %w[part1.re part2.re]
|
|
41
|
+
assert_equal(exp, sut.parts)
|
|
60
42
|
end
|
|
61
43
|
|
|
62
44
|
def test_parts_with_empty
|
|
63
45
|
sut = Catalog.new(yaml)
|
|
64
|
-
assert_equal(
|
|
46
|
+
assert_equal([], sut.parts)
|
|
65
47
|
end
|
|
66
48
|
|
|
67
49
|
def test_empty_parts
|
|
@@ -80,20 +62,14 @@ part2.re
|
|
|
80
62
|
|
|
81
63
|
def test_postdef
|
|
82
64
|
sut = Catalog.new(yaml)
|
|
83
|
-
exp =
|
|
84
|
-
|
|
85
|
-
back02.re
|
|
86
|
-
EOS
|
|
87
|
-
assert_equal(exp.chomp, sut.postdef)
|
|
65
|
+
exp = %w[back01.re back02.re]
|
|
66
|
+
assert_equal(exp, sut.postdef)
|
|
88
67
|
end
|
|
89
68
|
|
|
90
69
|
def test_from_object
|
|
91
70
|
sut = Catalog.new(yaml_hash)
|
|
92
|
-
exp =
|
|
93
|
-
|
|
94
|
-
ch02.re
|
|
95
|
-
EOS
|
|
96
|
-
assert_equal(exp.chomp, sut.chaps)
|
|
71
|
+
exp = %w[ch01.re ch02.re]
|
|
72
|
+
assert_equal(exp, sut.chaps)
|
|
97
73
|
end
|
|
98
74
|
|
|
99
75
|
def test_validate
|
|
@@ -154,7 +130,7 @@ ch02.re
|
|
|
154
130
|
private
|
|
155
131
|
|
|
156
132
|
def yaml
|
|
157
|
-
StringIO.new
|
|
133
|
+
StringIO.new(<<-EOS)
|
|
158
134
|
|
|
159
135
|
PREDEF:
|
|
160
136
|
- pre01.re
|
|
@@ -182,7 +158,7 @@ POSTDEF:
|
|
|
182
158
|
end
|
|
183
159
|
|
|
184
160
|
def yaml_with_parts
|
|
185
|
-
StringIO.new
|
|
161
|
+
StringIO.new(<<-EOS)
|
|
186
162
|
CHAPS:
|
|
187
163
|
- ch01.re
|
|
188
164
|
- part1.re:
|