review 4.1.0 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-tex.yml +35 -0
- data/.github/workflows/ruby-win.yml +19 -9
- data/.github/workflows/ruby.yml +7 -3
- data/.rubocop.yml +138 -34
- data/NEWS.ja.md +285 -0
- data/NEWS.md +285 -1
- data/README.md +7 -6
- data/Rakefile +7 -2
- data/bin/review +2 -4
- data/bin/review-catalog-converter +4 -4
- data/bin/review-check +8 -12
- data/bin/review-checkdep +2 -5
- data/bin/review-compile +18 -34
- data/bin/review-epub2html +1 -4
- data/bin/review-epubmaker +3 -4
- data/bin/review-idgxmlmaker +1 -3
- data/bin/review-index +5 -86
- data/bin/review-init +1 -4
- data/bin/review-pdfmaker +1 -3
- data/bin/review-preproc +30 -38
- data/bin/review-textmaker +1 -3
- data/bin/review-update +1 -4
- data/bin/review-validate +4 -4
- data/bin/review-vol +5 -82
- data/bin/review-webmaker +1 -3
- data/doc/config.yml.sample +45 -11
- data/doc/config.yml.sample-simple +3 -3
- data/doc/format.ja.md +103 -13
- data/doc/format.md +104 -16
- data/doc/makeindex.ja.md +2 -2
- data/doc/pdfmaker.ja.md +42 -0
- data/doc/pdfmaker.md +41 -0
- data/doc/quickstart.ja.md +19 -6
- data/doc/quickstart.md +18 -6
- data/doc/writing_vertical.ja.md +6 -0
- data/lib/review.rb +1 -1
- data/lib/review/book.rb +2 -2
- data/lib/review/book/base.rb +67 -29
- data/lib/review/book/bib.rb +21 -0
- data/lib/review/book/book_unit.rb +158 -0
- data/lib/review/book/chapter.rb +33 -26
- data/lib/review/book/index.rb +24 -185
- data/lib/review/book/index/item.rb +7 -1
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +26 -11
- data/lib/review/book/volume.rb +5 -5
- data/lib/review/builder.rb +121 -52
- data/lib/review/call_hook.rb +20 -0
- data/lib/review/catalog.rb +3 -2
- data/lib/review/compiler.rb +230 -111
- data/lib/review/configure.rb +91 -7
- data/lib/review/converter.rb +1 -1
- data/lib/review/epub2html.rb +6 -1
- data/lib/review/epubmaker.rb +124 -152
- data/lib/review/epubmaker/content.rb +113 -0
- data/lib/review/epubmaker/epubcommon.rb +372 -0
- data/lib/review/epubmaker/epubv2.rb +178 -0
- data/lib/review/epubmaker/epubv3.rb +231 -0
- data/lib/review/epubmaker/producer.rb +167 -0
- data/lib/review/epubmaker/reviewheaderlistener.rb +12 -2
- data/lib/review/epubmaker/zip_exporter.rb +84 -0
- data/lib/review/exception.rb +13 -0
- data/lib/review/htmlbuilder.rb +176 -89
- data/lib/review/htmlutils.rb +8 -11
- data/lib/review/i18n.rb +2 -1
- data/lib/review/idgxmlbuilder.rb +165 -75
- data/lib/review/idgxmlmaker.rb +24 -28
- data/lib/review/img_math.rb +238 -0
- data/lib/review/index_builder.rb +645 -0
- data/lib/review/init.rb +9 -17
- data/lib/review/latexbox.rb +58 -0
- data/lib/review/latexbuilder.rb +193 -75
- data/lib/review/latexutils.rb +9 -1
- data/lib/review/lineinput.rb +112 -2
- data/lib/review/loggable.rb +27 -0
- data/lib/review/logger.rb +90 -3
- data/lib/review/makerhelper.rb +17 -188
- data/lib/review/markdownbuilder.rb +54 -4
- data/lib/review/pdfmaker.rb +76 -84
- data/lib/review/plaintextbuilder.rb +106 -22
- data/lib/review/preprocessor.rb +107 -303
- data/lib/review/preprocessor/directive.rb +35 -0
- data/lib/review/preprocessor/line.rb +34 -0
- data/lib/review/preprocessor/repository.rb +177 -0
- data/lib/review/rstbuilder.rb +27 -8
- data/lib/review/sec_counter.rb +14 -0
- data/lib/review/template.rb +11 -1
- data/lib/review/textmaker.rb +27 -32
- data/lib/review/textutils.rb +3 -12
- data/lib/review/tocprinter.rb +242 -97
- data/lib/review/topbuilder.rb +98 -31
- data/lib/review/update.rb +12 -13
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +97 -0
- data/lib/review/webmaker.rb +40 -47
- data/lib/review/webtocprinter.rb +39 -35
- data/lib/review/yamlloader.rb +2 -1
- data/review.gemspec +5 -3
- data/samples/sample-book/src/config-epub2.yml +1 -1
- data/samples/sample-book/src/config.yml +3 -3
- data/samples/sample-book/src/lib/tasks/review.rake +19 -1
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +2 -1
- data/samples/syntax-book/Gemfile +1 -1
- data/samples/syntax-book/ch01.re +1 -1
- data/samples/syntax-book/ch02.re +21 -6
- data/samples/syntax-book/ch03.re +1 -1
- data/samples/syntax-book/config.yml +1 -1
- data/samples/syntax-book/images/img3-2.png +0 -0
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +2 -1
- data/templates/html/_colophon.html.erb +23 -0
- data/templates/html/_colophon_history.html.erb +9 -0
- data/templates/html/_cover.html.erb +10 -0
- data/templates/html/_part_body.html.erb +6 -0
- data/templates/html/_titlepage.html.erb +20 -0
- data/templates/html/layout-html5.html.erb +6 -0
- data/templates/html/layout-xhtml1.html.erb +6 -0
- data/templates/latex/config.erb +35 -23
- data/templates/latex/review-jlreq/README.md +3 -1
- data/templates/latex/review-jlreq/review-base.sty +36 -23
- data/templates/latex/review-jlreq/review-jlreq.cls +18 -25
- data/templates/latex/review-jlreq/review-style.sty +6 -1
- data/templates/latex/review-jlreq/review-tcbox.sty +348 -0
- data/templates/latex/review-jlreq/reviewmacro.sty +5 -0
- data/templates/latex/review-jsbook/README.md +7 -5
- data/templates/latex/review-jsbook/review-base.sty +40 -24
- data/templates/latex/review-jsbook/review-jsbook.cls +13 -3
- data/templates/latex/review-jsbook/review-style.sty +6 -1
- data/templates/latex/review-jsbook/review-tcbox.sty +348 -0
- data/templates/latex/review-jsbook/reviewmacro.sty +5 -0
- data/templates/opf/epubv2.opf.erb +7 -7
- data/templates/opf/epubv3.opf.erb +7 -7
- data/templates/opf/opf_manifest_epubv2.opf.erb +10 -0
- data/templates/opf/opf_manifest_epubv3.opf.erb +10 -0
- data/templates/opf/opf_metainfo_epubv2.opf.erb +17 -0
- data/templates/opf/opf_metainfo_epubv3.opf.erb +49 -0
- data/templates/opf/opf_tocx_epubv2.opf.erb +9 -0
- data/templates/opf/opf_tocx_epubv3.opf.erb +17 -0
- data/templates/web/html/layout-html5.html.erb +9 -8
- data/templates/web/html/layout-xhtml1.html.erb +6 -0
- data/test/assets/header_listener.html +35 -0
- data/test/assets/img_math/img1.png +0 -0
- data/test/assets/img_math/img2.png +0 -0
- data/test/assets/img_math/img3.png +0 -0
- data/test/assets/syntax_book_index_detail.txt +58 -0
- data/test/assets/test_template.tex +6 -3
- data/test/assets/test_template_backmatter.tex +6 -3
- data/test/book_test_helper.rb +11 -5
- data/test/run_test.rb +1 -1
- data/test/test_book.rb +54 -63
- data/test/test_book_chapter.rb +95 -54
- data/test/test_book_part.rb +3 -3
- data/test/test_builder.rb +29 -20
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_converter.rb +1 -0
- data/test/test_epub3maker.rb +170 -126
- data/test/test_epubmaker.rb +254 -129
- data/test/test_epubmaker_cmd.rb +15 -4
- data/test/test_helper.rb +12 -5
- data/test/test_htmlbuilder.rb +926 -76
- data/test/test_htmlutils.rb +0 -12
- data/test/test_i18n.rb +33 -33
- data/test/test_idgxmlbuilder.rb +531 -20
- data/test/test_idgxmlmaker_cmd.rb +7 -3
- data/test/test_img_math.rb +111 -0
- data/test/test_index.rb +62 -52
- data/test/test_indexbuilder.rb +52 -0
- data/test/test_latexbuilder.rb +891 -20
- data/test/test_latexbuilder_v2.rb +56 -10
- data/test/test_lineinput.rb +20 -93
- data/test/test_logger.rb +7 -7
- data/test/test_makerhelper.rb +0 -12
- data/test/test_markdownbuilder.rb +32 -0
- data/test/test_pdfmaker.rb +100 -11
- data/test/test_pdfmaker_cmd.rb +3 -3
- data/test/test_plaintextbuilder.rb +546 -32
- data/test/test_preprocessor.rb +188 -1
- data/test/test_review_ext.rb +2 -1
- data/test/test_reviewheaderlistener.rb +49 -0
- data/test/test_rstbuilder.rb +25 -1
- data/test/test_sec_counter.rb +156 -0
- data/test/test_template.rb +12 -2
- data/test/test_textmaker_cmd.rb +5 -1
- data/test/test_tocprinter.rb +46 -0
- data/test/test_topbuilder.rb +324 -20
- data/test/test_update.rb +44 -44
- data/test/test_webtocprinter.rb +75 -43
- data/test/test_zip_exporter.rb +5 -6
- data/vendor/gentombow/LICENSE +1 -1
- data/vendor/gentombow/Makefile +0 -1
- data/vendor/gentombow/bounddvi-en.pdf +0 -0
- data/vendor/gentombow/bounddvi-en.tex +1 -0
- data/vendor/gentombow/bounddvi.pdf +0 -0
- data/vendor/gentombow/bounddvi.sty +30 -7
- data/vendor/gentombow/bounddvi.tex +1 -0
- data/vendor/gentombow/create_archive.sh +1 -0
- data/vendor/gentombow/gentombow-ja.pdf +0 -0
- data/vendor/gentombow/gentombow-ja.tex +9 -0
- data/vendor/gentombow/gentombow.pdf +0 -0
- data/vendor/gentombow/gentombow.sty +32 -10
- data/vendor/gentombow/gentombow.tex +8 -0
- data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
- data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
- data/vendor/jsclasses/Makefile +3 -2
- data/vendor/jsclasses/create_archive.sh +5 -5
- data/vendor/jsclasses/jis/Makefile +3 -2
- data/vendor/jsclasses/jis/jsarticle.cls +22 -18
- data/vendor/jsclasses/jis/jsbook.cls +22 -18
- data/vendor/jsclasses/jis/jsclasses.dtx +94 -13
- data/vendor/jsclasses/jis/jsclasses.ins +15 -5
- data/vendor/jsclasses/jis/jslogo.ins +9 -0
- data/vendor/jsclasses/jis/jslogo.sty +1 -13
- data/vendor/jsclasses/jis/jspf.cls +22 -18
- data/vendor/jsclasses/jis/jsreport.cls +22 -18
- data/vendor/jsclasses/jis/jsverb.ins +9 -0
- data/vendor/jsclasses/jis/jsverb.sty +1 -13
- data/vendor/jsclasses/jis/kiyou.cls +22 -18
- data/vendor/jsclasses/jis/minijs.sty +65 -22
- data/vendor/jsclasses/jis/okumacro.ins +9 -0
- data/vendor/jsclasses/jis/okumacro.sty +1 -13
- data/vendor/jsclasses/jis/okuverb.ins +9 -0
- data/vendor/jsclasses/jis/okuverb.sty +1 -13
- data/vendor/jsclasses/jis/winjis.sty +23 -19
- data/vendor/jsclasses/jsarticle.cls +22 -18
- data/vendor/jsclasses/jsbook.cls +22 -18
- data/vendor/jsclasses/jsclasses.dtx +94 -13
- data/vendor/jsclasses/jsclasses.ins +15 -5
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.ins +9 -0
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +1 -13
- data/vendor/jsclasses/jspf.cls +22 -18
- data/vendor/jsclasses/jsreport.cls +22 -18
- data/vendor/jsclasses/jsverb.ins +9 -0
- data/vendor/jsclasses/jsverb.pdf +0 -0
- data/vendor/jsclasses/jsverb.sty +1 -13
- data/vendor/jsclasses/kiyou.cls +22 -18
- data/vendor/jsclasses/minijs.sty +68 -22
- data/vendor/jsclasses/okumacro.ins +9 -0
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +1 -13
- data/vendor/jsclasses/okuverb.ins +9 -0
- data/vendor/jsclasses/okuverb.pdf +0 -0
- data/vendor/jsclasses/okuverb.sty +1 -13
- data/vendor/jsclasses/tests/relfont.tex +10 -0
- data/vendor/jsclasses/winjis.sty +23 -19
- metadata +106 -22
- data/.rubocop_todo.yml +0 -7
- data/lib/epubmaker.rb +0 -23
- data/lib/epubmaker/content.rb +0 -110
- data/lib/epubmaker/epubcommon.rb +0 -441
- data/lib/epubmaker/epubv2.rb +0 -143
- data/lib/epubmaker/epubv3.rb +0 -233
- data/lib/epubmaker/producer.rb +0 -375
- data/lib/epubmaker/zip_exporter.rb +0 -81
- data/lib/lineinput.rb +0 -155
- data/lib/review/book/compilable.rb +0 -178
- data/lib/review/tocparser.rb +0 -275
- data/test/test_tocparser.rb +0 -25
data/test/test_update.rb
CHANGED
@@ -20,7 +20,7 @@ class UpdateTest < Test::Unit::TestCase
|
|
20
20
|
def test_broken_yml
|
21
21
|
File.write(File.join(@tmpdir, 'test.yml'), "invalid: [,]\n")
|
22
22
|
io = StringIO.new
|
23
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
23
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
24
24
|
@u.parse_ymls(@tmpdir)
|
25
25
|
assert_match(/test\.yml is broken\. Ignored\./, io.string)
|
26
26
|
end
|
@@ -62,9 +62,9 @@ EOT
|
|
62
62
|
File.write(File.join(@tmpdir, fname), '')
|
63
63
|
|
64
64
|
io = StringIO.new
|
65
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
65
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
66
66
|
assert_raise(ApplicationError) { @u.check_old_catalogs(@tmpdir) }
|
67
|
-
assert_match(/review
|
67
|
+
assert_match(/review-catalog-converter/, io.string)
|
68
68
|
|
69
69
|
File.unlink(File.join(@tmpdir, fname))
|
70
70
|
end
|
@@ -75,7 +75,7 @@ EOT
|
|
75
75
|
File.write(File.join(@tmpdir, 'layouts/layout.tex.erb'), '')
|
76
76
|
|
77
77
|
io = StringIO.new
|
78
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
78
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
79
79
|
assert_raise(ApplicationError) { @u.check_own_files(@tmpdir) }
|
80
80
|
assert_match(%r{There is custom layouts/layout\.tex\.erb file}, io.string)
|
81
81
|
end
|
@@ -84,56 +84,56 @@ EOT
|
|
84
84
|
File.write(File.join(@tmpdir, 'review-ext.rb'), '')
|
85
85
|
|
86
86
|
io = StringIO.new
|
87
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
87
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
88
88
|
@u.check_own_files(@tmpdir)
|
89
|
-
assert_match(/There is review
|
89
|
+
assert_match(/There is review-ext\.rb file/, io.string)
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_update_version_older
|
93
93
|
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 2.0\n")
|
94
94
|
|
95
95
|
io = StringIO.new
|
96
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
96
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
97
97
|
@u.parse_ymls(@tmpdir)
|
98
98
|
@u.update_version
|
99
|
-
assert_match(/Update 'review_version' to '
|
100
|
-
assert_equal 'review_version:
|
99
|
+
assert_match(/Update 'review_version' to '5.0'/, io.string)
|
100
|
+
assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
101
101
|
|
102
102
|
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 3.0\n")
|
103
103
|
|
104
104
|
io = StringIO.new
|
105
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
105
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
106
106
|
@u.parse_ymls(@tmpdir)
|
107
107
|
@u.update_version
|
108
|
-
assert_match(/Update 'review_version' to '
|
109
|
-
assert_equal 'review_version:
|
108
|
+
assert_match(/Update 'review_version' to '5.0'/, io.string)
|
109
|
+
assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
110
110
|
end
|
111
111
|
|
112
112
|
def test_update_version_current
|
113
|
-
File.write(File.join(@tmpdir, 'config.yml'), "review_version:
|
113
|
+
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 5.0\n")
|
114
114
|
|
115
115
|
io = StringIO.new
|
116
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
116
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
117
117
|
@u.parse_ymls(@tmpdir)
|
118
118
|
@u.update_version
|
119
119
|
assert_equal '', io.string
|
120
|
-
assert_equal 'review_version:
|
120
|
+
assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
121
121
|
end
|
122
122
|
|
123
123
|
def test_update_version_newer
|
124
124
|
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 99.0\n")
|
125
125
|
|
126
126
|
io = StringIO.new
|
127
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
127
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
128
128
|
@u.parse_ymls(@tmpdir)
|
129
129
|
@u.update_version
|
130
|
-
assert_match(/Update 'review_version' to '
|
130
|
+
assert_match(/Update 'review_version' to '5.0'/, io.string)
|
131
131
|
assert_equal 'review_version: 99.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
132
132
|
end
|
133
133
|
|
134
134
|
def test_update_rakefile
|
135
135
|
io = StringIO.new
|
136
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
136
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
137
137
|
@u.update_rakefile(@tmpdir)
|
138
138
|
assert_equal '', io.string
|
139
139
|
assert_equal true, File.exist?(File.join(@tmpdir, 'Rakefile'))
|
@@ -142,7 +142,7 @@ EOT
|
|
142
142
|
|
143
143
|
def test_update_rakefile_same
|
144
144
|
io = StringIO.new
|
145
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
145
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
146
146
|
@u.update_rakefile(@tmpdir)
|
147
147
|
@u.update_rakefile(@tmpdir)
|
148
148
|
assert_equal '', io.string
|
@@ -155,7 +155,7 @@ EOT
|
|
155
155
|
FileUtils.mkdir_p(File.join(@tmpdir, 'lib/tasks'))
|
156
156
|
File.write(File.join(@tmpdir, 'lib/tasks/review.rake'), '')
|
157
157
|
io = StringIO.new
|
158
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
158
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
159
159
|
@u.update_rakefile(@tmpdir)
|
160
160
|
assert_match(/Rakefile will be overridden with/, io.string)
|
161
161
|
assert_match(%r{lib/tasks/review\.rake will be overridden}, io.string)
|
@@ -166,7 +166,7 @@ EOT
|
|
166
166
|
def test_update_epub_version_older
|
167
167
|
File.write(File.join(@tmpdir, 'config.yml'), "epubversion: 2\nhtmlversion: 4\n")
|
168
168
|
io = StringIO.new
|
169
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
169
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
170
170
|
@u.parse_ymls(@tmpdir)
|
171
171
|
@u.update_epub_version
|
172
172
|
assert_match(/Update 'epubversion'/, io.string)
|
@@ -181,7 +181,7 @@ EOT
|
|
181
181
|
def test_update_epub_version_current
|
182
182
|
File.write(File.join(@tmpdir, 'config.yml'), "epubversion: 3\nhtmlversion: 5\n")
|
183
183
|
io = StringIO.new
|
184
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
184
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
185
185
|
@u.parse_ymls(@tmpdir)
|
186
186
|
@u.update_epub_version
|
187
187
|
assert_equal '', io.string
|
@@ -195,7 +195,7 @@ EOT
|
|
195
195
|
def test_update_epub_version_newer
|
196
196
|
File.write(File.join(@tmpdir, 'config.yml'), "epubversion: 99\nhtmlversion: 99\n")
|
197
197
|
io = StringIO.new
|
198
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
198
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
199
199
|
@u.parse_ymls(@tmpdir)
|
200
200
|
@u.update_epub_version
|
201
201
|
assert_equal '', io.string
|
@@ -209,7 +209,7 @@ EOT
|
|
209
209
|
def test_update_locale_older
|
210
210
|
File.write(File.join(@tmpdir, 'locale.yml'), %Q(locale: en\nchapter_quote: "'%s'"\n))
|
211
211
|
io = StringIO.new
|
212
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
212
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
213
213
|
@u.parse_ymls(@tmpdir)
|
214
214
|
@u.update_locale
|
215
215
|
assert_match(/'chapter_quote' now takes 2 values/, io.string)
|
@@ -223,7 +223,7 @@ EOT
|
|
223
223
|
def test_update_locale_current
|
224
224
|
File.write(File.join(@tmpdir, 'locale.yml'), %Q(locale: en\nchapter_quote: "'%s...%s'"\n))
|
225
225
|
io = StringIO.new
|
226
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
226
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
227
227
|
@u.parse_ymls(@tmpdir)
|
228
228
|
@u.update_locale
|
229
229
|
assert_equal '', io.string
|
@@ -237,7 +237,7 @@ EOT
|
|
237
237
|
def test_update_tex_parameters_jsbook_to_review_jsbook
|
238
238
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["jsbook", "a5j,11pt,landscape,oneside,twoside,vartwoside,onecolumn,twocolumn,titlepage,notitlepage,openright,openany,leqno,fleqn,disablejfam,draft,final,mingoth,winjis,jis,papersize,english,report,jslogo,nojslogo,uplatex,nomag,usemag,nomag*,tombow,tombo,mentuke,autodetect-engine"]\n))
|
239
239
|
io = StringIO.new
|
240
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
240
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
241
241
|
@u.parse_ymls(@tmpdir)
|
242
242
|
@u.update_tex_parameters
|
243
243
|
assert_match(/By default it is migrated to/, io.string)
|
@@ -251,7 +251,7 @@ EOT
|
|
251
251
|
def test_update_tex_parameters_jsbook_to_review_jsbook_invalid
|
252
252
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["jsbook", "a5paper,invalid"]\n))
|
253
253
|
io = StringIO.new
|
254
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
254
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
255
255
|
@u.parse_ymls(@tmpdir)
|
256
256
|
@u.update_tex_parameters
|
257
257
|
assert_match(/couldn't be converted fully/, io.string)
|
@@ -265,7 +265,7 @@ EOT
|
|
265
265
|
def test_update_tex_parameters_review_jsbook
|
266
266
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["review-jsbook", ""]\n))
|
267
267
|
io = StringIO.new
|
268
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
268
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
269
269
|
@u.parse_ymls(@tmpdir)
|
270
270
|
@u.update_tex_parameters
|
271
271
|
assert_equal '', io.string
|
@@ -278,7 +278,7 @@ EOT
|
|
278
278
|
def test_update_tex_parameters_review_jsbook_obsoletekey
|
279
279
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["review-jsbook", "Q=13.5, H=20, W=40, L=34, head=20mm, gutter=20mm"]\n))
|
280
280
|
io = StringIO.new
|
281
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
281
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
282
282
|
@u.parse_ymls(@tmpdir)
|
283
283
|
@u.update_tex_parameters
|
284
284
|
cont = <<EOT
|
@@ -290,7 +290,7 @@ EOT
|
|
290
290
|
def test_update_tex_parameters_review_jlreq
|
291
291
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["review-jlreq", ""]\n))
|
292
292
|
io = StringIO.new
|
293
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
293
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
294
294
|
@u.parse_ymls(@tmpdir)
|
295
295
|
@u.update_tex_parameters
|
296
296
|
assert_equal '', io.string
|
@@ -303,7 +303,7 @@ EOT
|
|
303
303
|
def test_update_tex_parameters_review_jsbook_review_jlreq
|
304
304
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["review-jsbook", ""]\n))
|
305
305
|
io = StringIO.new
|
306
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
306
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
307
307
|
@u.parse_ymls(@tmpdir)
|
308
308
|
@u.specified_template = 'review-jlreq'
|
309
309
|
@u.update_tex_parameters
|
@@ -317,7 +317,7 @@ EOT
|
|
317
317
|
def test_update_tex_parameters_unknownclass
|
318
318
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["unknown", ""]\n))
|
319
319
|
io = StringIO.new
|
320
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
320
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
321
321
|
@u.parse_ymls(@tmpdir)
|
322
322
|
@u.update_tex_parameters
|
323
323
|
assert_match(/unknown class/, io.string)
|
@@ -330,7 +330,7 @@ EOT
|
|
330
330
|
def test_update_tex_parameters_jsbook_unknownclass
|
331
331
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["jsbook", ""]\n))
|
332
332
|
io = StringIO.new
|
333
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
333
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
334
334
|
@u.parse_ymls(@tmpdir)
|
335
335
|
@u.specified_template = 'unknown'
|
336
336
|
@u.update_tex_parameters
|
@@ -344,7 +344,7 @@ EOT
|
|
344
344
|
def test_update_tex_parameters_jsbook_to_review_jlreq
|
345
345
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texdocumentclass: ["jsbook", "a5j,11pt,landscape,oneside,twoside,onecolumn,twocolumn,titlepage,notitlepage,openright,openany,leqno,fleqn,draft,final,report,uplatex,nomag,usemag,nomag*,tombow,tombo,mentuke,autodetect-engine"]\n))
|
346
346
|
io = StringIO.new
|
347
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
347
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
348
348
|
@u.parse_ymls(@tmpdir)
|
349
349
|
@u.specified_template = 'review-jlreq'
|
350
350
|
@u.update_tex_parameters
|
@@ -358,7 +358,7 @@ EOT
|
|
358
358
|
|
359
359
|
def test_update_stys_new
|
360
360
|
io = StringIO.new
|
361
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
361
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
362
362
|
@u.update_tex_stys('review-jsbook', @tmpdir)
|
363
363
|
assert_equal '', io.string
|
364
364
|
assert_equal true, File.exist?(File.join(@tmpdir, 'sty/review-base.sty'))
|
@@ -368,7 +368,7 @@ EOT
|
|
368
368
|
|
369
369
|
def test_update_stys_new_custom
|
370
370
|
io = StringIO.new
|
371
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
371
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
372
372
|
@u.update_tex_stys('review-jsbook', @tmpdir)
|
373
373
|
assert_equal '', io.string
|
374
374
|
File.write(File.join(@tmpdir, 'sty/review-custom.sty'), "% MY CUSTOM\n")
|
@@ -379,20 +379,20 @@ EOT
|
|
379
379
|
|
380
380
|
def test_update_stys_modified
|
381
381
|
io = StringIO.new
|
382
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
382
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
383
383
|
@u.update_tex_stys('review-jsbook', @tmpdir)
|
384
384
|
cont = File.read(File.join(@tmpdir, 'sty/review-base.sty'))
|
385
385
|
|
386
386
|
File.write(File.join(@tmpdir, 'sty/review-base.sty'), "% MODIFIED\n")
|
387
387
|
@u.update_tex_stys('review-jsbook', @tmpdir)
|
388
|
-
assert_match(/review
|
388
|
+
assert_match(/review-base\.sty will be overridden/, io.string)
|
389
389
|
assert_equal cont, File.read(File.join(@tmpdir, 'sty/review-base.sty'))
|
390
390
|
end
|
391
391
|
|
392
392
|
def test_update_tex_command
|
393
393
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texcommand: "/Program Files/up-latex --shell-escape -v"\n))
|
394
394
|
io = StringIO.new
|
395
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
395
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
396
396
|
@u.parse_ymls(@tmpdir)
|
397
397
|
@u.update_tex_command
|
398
398
|
assert_match(/has options/, io.string)
|
@@ -406,7 +406,7 @@ EOT
|
|
406
406
|
def test_update_tex_command_noopt
|
407
407
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texcommand: "/Program Files/up-latex"\n))
|
408
408
|
io = StringIO.new
|
409
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
409
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
410
410
|
@u.parse_ymls(@tmpdir)
|
411
411
|
@u.update_tex_command
|
412
412
|
assert_equal '', io.string
|
@@ -419,7 +419,7 @@ EOT
|
|
419
419
|
def test_update_tex_command_withopt
|
420
420
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(texcommand: "/Program Files/up-latex --shell-escape -v"\ntexoptions: "-myopt"\n))
|
421
421
|
io = StringIO.new
|
422
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
422
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
423
423
|
@u.parse_ymls(@tmpdir)
|
424
424
|
@u.update_tex_command
|
425
425
|
assert_match(/has options/, io.string)
|
@@ -433,7 +433,7 @@ EOT
|
|
433
433
|
def test_update_dvi_command
|
434
434
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(dvicommand: "/Program Files/dvi-pdfmx -q --quiet"\n))
|
435
435
|
io = StringIO.new
|
436
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
436
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
437
437
|
@u.parse_ymls(@tmpdir)
|
438
438
|
@u.update_dvi_command
|
439
439
|
assert_match(/has options/, io.string)
|
@@ -447,7 +447,7 @@ EOT
|
|
447
447
|
def test_update_dvi_command_noopt
|
448
448
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(dvicommand: "/Program Files/dvi-pdfmx"\n))
|
449
449
|
io = StringIO.new
|
450
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
450
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
451
451
|
@u.parse_ymls(@tmpdir)
|
452
452
|
@u.update_dvi_command
|
453
453
|
assert_equal '', io.string
|
@@ -460,7 +460,7 @@ EOT
|
|
460
460
|
def test_update_dvi_command_withopt
|
461
461
|
File.write(File.join(@tmpdir, 'config.yml'), %Q(dvicommand: "/Program Files/dvi-pdfmx -q --quiet"\ndvioptions: "-myopt"\n))
|
462
462
|
io = StringIO.new
|
463
|
-
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
463
|
+
@u.instance_eval { @logger = ReVIEW::Logger.new(io) }
|
464
464
|
@u.parse_ymls(@tmpdir)
|
465
465
|
@u.update_dvi_command
|
466
466
|
assert_match(/has options/, io.string)
|
data/test/test_webtocprinter.rb
CHANGED
@@ -11,7 +11,7 @@ class WEBTOCPrinterTest < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_webtocprinter_null
|
14
|
-
dummy_book = ReVIEW::Book::Base.
|
14
|
+
dummy_book = ReVIEW::Book::Base.new
|
15
15
|
# chap = ReVIEW::Book::Chapter.new(dummy_book, 1, '-', nil, StringIO.new)
|
16
16
|
str = WEBTOCPrinter.book_to_string(dummy_book)
|
17
17
|
expect = <<-EOB
|
@@ -28,15 +28,15 @@ CHAPS:
|
|
28
28
|
- ch1.re
|
29
29
|
- ch2.re
|
30
30
|
EOB
|
31
|
-
mktmpbookdir
|
31
|
+
mktmpbookdir('catalog.yml' => catalog_yml,
|
32
32
|
'ch1.re' => "= ch. 1\n\n111\n",
|
33
|
-
'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
|
33
|
+
'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
|
34
34
|
str = WEBTOCPrinter.book_to_string(book)
|
35
35
|
expect = <<-EOB
|
36
36
|
<ul class="book-toc">
|
37
37
|
<li><a href="index.html">TOP</a></li>
|
38
|
-
<li><a href="ch1.html"
|
39
|
-
<li><a href="ch2.html"
|
38
|
+
<li><a href="ch1.html">第1章 ch. 1</a></li>
|
39
|
+
<li><a href="ch2.html">第2章 ch. 2</a></li>
|
40
40
|
</ul>
|
41
41
|
EOB
|
42
42
|
assert_equal expect, str
|
@@ -51,23 +51,19 @@ CHAPS:
|
|
51
51
|
- part2:
|
52
52
|
- ch2.re
|
53
53
|
EOB
|
54
|
-
mktmpbookdir
|
54
|
+
mktmpbookdir('catalog.yml' => catalog_yml,
|
55
55
|
'ch1.re' => "= ch. 1\n\n111\n",
|
56
|
-
'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
|
56
|
+
'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
|
57
57
|
str = WEBTOCPrinter.book_to_string(book)
|
58
58
|
expect = <<-EOB
|
59
59
|
<ul class="book-toc">
|
60
60
|
<li><a href="index.html">TOP</a></li>
|
61
|
-
<li
|
62
|
-
<ul>
|
63
|
-
|
64
|
-
|
65
|
-
</li>
|
66
|
-
|
67
|
-
<ul>
|
68
|
-
<li><a href="ch2.html">2 ch. 2</a></li>
|
69
|
-
</ul>
|
70
|
-
</li>
|
61
|
+
<li>第I部 part1
|
62
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
63
|
+
</ul></li>
|
64
|
+
<li>第II部 part2
|
65
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
66
|
+
</ul></li>
|
71
67
|
</ul>
|
72
68
|
EOB
|
73
69
|
assert_equal expect, str
|
@@ -82,25 +78,21 @@ CHAPS:
|
|
82
78
|
- p2.re:
|
83
79
|
- ch2.re
|
84
80
|
EOB
|
85
|
-
mktmpbookdir
|
81
|
+
mktmpbookdir('catalog.yml' => catalog_yml,
|
86
82
|
'p1.re' => "= This is PART1\n\np111\n",
|
87
83
|
'p2.re' => "= This is PART2\n\np111\n",
|
88
84
|
'ch1.re' => "= ch. 1\n\n111\n",
|
89
|
-
'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
|
85
|
+
'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
|
90
86
|
str = WEBTOCPrinter.book_to_string(book)
|
91
87
|
expect = <<-EOB
|
92
88
|
<ul class="book-toc">
|
93
89
|
<li><a href="index.html">TOP</a></li>
|
94
|
-
<li><a href="p1.html"
|
95
|
-
<ul>
|
96
|
-
|
97
|
-
</
|
98
|
-
</li>
|
99
|
-
|
100
|
-
<ul>
|
101
|
-
<li><a href="ch2.html">2 ch. 2</a></li>
|
102
|
-
</ul>
|
103
|
-
</li>
|
90
|
+
<li><a href="p1.html">第I部 This is PART1</a>
|
91
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
92
|
+
</ul></li>
|
93
|
+
<li><a href="p2.html">第II部 This is PART2</a>
|
94
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
95
|
+
</ul></li>
|
104
96
|
</ul>
|
105
97
|
EOB
|
106
98
|
assert_equal expect, str
|
@@ -124,7 +116,7 @@ POSTDEF:
|
|
124
116
|
- post1.re
|
125
117
|
- post2.re
|
126
118
|
EOB
|
127
|
-
mktmpbookdir
|
119
|
+
mktmpbookdir('catalog.yml' => catalog_yml,
|
128
120
|
'pre1.re' => "= PRE1\n\npre111\n",
|
129
121
|
'pre2.re' => "= PRE2\n\npre222\n",
|
130
122
|
'app1.re' => "= APP1\n\napp111\n",
|
@@ -134,28 +126,68 @@ EOB
|
|
134
126
|
'post1.re' => "= POST1\n\npo111\n",
|
135
127
|
'post2.re' => "= POST2\n\npo222\n",
|
136
128
|
'ch1.re' => "= ch. 1\n\n111\n",
|
137
|
-
'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
|
129
|
+
'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
|
138
130
|
str = WEBTOCPrinter.book_to_string(book)
|
139
131
|
expect = <<-EOB
|
140
132
|
<ul class="book-toc">
|
141
133
|
<li><a href="index.html">TOP</a></li>
|
142
134
|
<li><a href="pre1.html">PRE1</a></li>
|
143
135
|
<li><a href="pre2.html">PRE2</a></li>
|
144
|
-
<li><a href="part1.html"
|
145
|
-
<ul>
|
146
|
-
|
147
|
-
</
|
148
|
-
</li>
|
149
|
-
|
150
|
-
<
|
151
|
-
<li><a href="
|
152
|
-
</ul>
|
153
|
-
</li>
|
154
|
-
<li><a href="app1.html">APP1</a></li>
|
155
|
-
<li><a href="app2.html">APP2</a></li>
|
136
|
+
<li><a href="part1.html">第I部 PART1</a>
|
137
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
138
|
+
</ul></li>
|
139
|
+
<li><a href="part2.html">第II部 PART2</a>
|
140
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
141
|
+
</ul></li>
|
142
|
+
<li><a href="app1.html">付録A APP1</a></li>
|
143
|
+
<li><a href="app2.html">付録B APP2</a></li>
|
156
144
|
<li><a href="post1.html">POST1</a></li>
|
157
145
|
<li><a href="post2.html">POST2</a></li>
|
158
146
|
</ul>
|
147
|
+
EOB
|
148
|
+
assert_equal expect, str
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_webtocprinter_nochapter
|
153
|
+
catalog_yml = <<-EOB
|
154
|
+
CHAPS:
|
155
|
+
EOB
|
156
|
+
mktmpbookdir('catalog.yml' => catalog_yml) do |_dir, book, _files|
|
157
|
+
str = WEBTOCPrinter.book_to_string(book)
|
158
|
+
expect = <<-EOB
|
159
|
+
<ul class="book-toc">
|
160
|
+
<li><a href="index.html">TOP</a></li>
|
161
|
+
</ul>
|
162
|
+
EOB
|
163
|
+
assert_equal expect, str
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def test_webtocprinter_noheadline
|
168
|
+
catalog_yml = <<-EOB
|
169
|
+
CHAPS:
|
170
|
+
- ch1.re
|
171
|
+
- ch2.re
|
172
|
+
- ch3.re
|
173
|
+
- ch4.re
|
174
|
+
EOB
|
175
|
+
mktmpbookdir('catalog.yml' => catalog_yml,
|
176
|
+
'ch1.re' => "A\n",
|
177
|
+
'ch2.re' => "B\n\n= C\n== D\n",
|
178
|
+
'ch3.re' => "//emlist{\nLIST\n//}\n",
|
179
|
+
'ch4.re' => "==[column] E\n\n= F") do |_dir, book, _files|
|
180
|
+
str = WEBTOCPrinter.book_to_string(book)
|
181
|
+
expect = <<-EOB
|
182
|
+
<ul class="book-toc">
|
183
|
+
<li><a href="index.html">TOP</a></li>
|
184
|
+
<li><a href="ch1.html">-</a></li>
|
185
|
+
<li><a href="ch2.html">-</a></li>
|
186
|
+
<li><a href="ch2.html">第2章 C</a></li>
|
187
|
+
<li><a href="ch3.html">-</a></li>
|
188
|
+
<li><a href="ch4.html">-</a></li>
|
189
|
+
<li><a href="ch4.html">第4章 F</a></li>
|
190
|
+
</ul>
|
159
191
|
EOB
|
160
192
|
assert_equal expect, str
|
161
193
|
end
|