review 2.3.0 → 2.4.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 +90 -66
- data/.travis.yml +1 -1
- data/Gemfile +0 -1
- data/NEWS.ja.md +82 -0
- data/NEWS.md +83 -0
- data/README.md +5 -3
- data/Rakefile +8 -8
- data/bin/review +1 -5
- data/bin/review-catalog-converter +22 -27
- data/bin/review-check +36 -43
- data/bin/review-checkdep +10 -15
- data/bin/review-compile +37 -55
- data/bin/review-epubmaker +4 -5
- data/bin/review-index +21 -29
- data/bin/review-init +26 -37
- data/bin/review-pdfmaker +0 -2
- data/bin/review-preproc +25 -45
- data/bin/review-validate +19 -18
- data/bin/review-vol +15 -27
- data/doc/config.yml.sample +5 -2
- data/doc/format.ja.md +20 -1
- data/doc/format.md +21 -5
- data/doc/images/review-generate.png +0 -0
- data/lib/epubmaker.rb +1 -3
- data/lib/epubmaker/content.rb +24 -27
- data/lib/epubmaker/epubcommon.rb +135 -148
- data/lib/epubmaker/epubv2.rb +39 -46
- data/lib/epubmaker/epubv3.rb +93 -103
- data/lib/epubmaker/producer.rb +138 -151
- data/lib/epubmaker/zip_exporter.rb +21 -26
- data/lib/review/book.rb +3 -6
- data/lib/review/book/base.rb +78 -103
- data/lib/review/book/chapter.rb +36 -40
- data/lib/review/book/compilable.rb +28 -31
- data/lib/review/book/image_finder.rb +6 -13
- data/lib/review/book/index.rb +100 -121
- data/lib/review/book/page_metric.rb +2 -7
- data/lib/review/book/part.rb +18 -20
- data/lib/review/book/volume.rb +9 -13
- data/lib/review/builder.rb +81 -116
- data/lib/review/catalog.rb +15 -19
- data/lib/review/compiler.rb +64 -83
- data/lib/review/configure.rb +87 -97
- data/lib/review/converter.rb +2 -7
- data/lib/review/epubbuilder.rb +1 -3
- data/lib/review/epubmaker.rb +213 -205
- data/lib/review/exception.rb +2 -4
- data/lib/review/extentions.rb +0 -1
- data/lib/review/extentions/hash.rb +2 -2
- data/lib/review/extentions/string.rb +5 -30
- data/lib/review/htmlbuilder.rb +320 -375
- data/lib/review/htmltoc.rb +4 -7
- data/lib/review/htmlutils.rb +29 -32
- data/lib/review/i18n.rb +33 -44
- data/lib/review/i18n.yml +3 -3
- data/lib/review/idgxmlbuilder.rb +309 -345
- data/lib/review/latexbuilder.rb +175 -212
- data/lib/review/latexindex.rb +2 -8
- data/lib/review/latexutils.rb +33 -43
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/logger.rb +21 -0
- data/lib/review/makerhelper.rb +1 -4
- data/lib/review/markdownbuilder.rb +44 -53
- data/lib/review/md2inaobuilder.rb +6 -12
- data/lib/review/pdfmaker.rb +143 -173
- data/lib/review/preprocessor.rb +64 -101
- data/lib/review/rstbuilder.rb +126 -158
- data/lib/review/sec_counter.rb +18 -34
- data/lib/review/template.rb +4 -5
- data/lib/review/textbuilder.rb +2 -3
- data/lib/review/textutils.rb +7 -13
- data/lib/review/tocparser.rb +31 -56
- data/lib/review/tocprinter.rb +26 -52
- data/lib/review/topbuilder.rb +219 -247
- data/lib/review/unfold.rb +15 -24
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +75 -99
- data/lib/review/webtocprinter.rb +15 -20
- data/lib/review/yamlloader.rb +13 -15
- data/review.gemspec +20 -22
- data/templates/latex/layout.tex.erb +2 -2
- data/templates/opf/epubv2.opf.erb +7 -7
- data/templates/opf/epubv3.opf.erb +7 -7
- data/templates/web/html/layout-html5.html.erb +2 -2
- data/test/assets/black.eps +280 -0
- data/test/assets/fit.png +0 -0
- data/test/assets/large.gif +0 -0
- data/test/assets/large.jpg +0 -0
- data/test/assets/large.png +0 -0
- data/test/assets/large.svg +65 -0
- data/test/assets/test_template.tex +1 -1
- data/test/book_test_helper.rb +2 -2
- data/test/run_test.rb +4 -4
- data/test/sample-book/src/Rakefile +21 -22
- data/test/syntax-book/Gemfile +4 -0
- data/test/syntax-book/Rakefile +72 -0
- data/test/syntax-book/appA.re +22 -0
- data/test/syntax-book/bib.re +6 -0
- data/test/syntax-book/catalog.yml +15 -0
- data/test/syntax-book/ch01.re +136 -0
- data/test/syntax-book/ch02.re +351 -0
- data/test/syntax-book/ch03.re +82 -0
- data/test/syntax-book/config.yml +35 -0
- data/test/syntax-book/images/ball.png +0 -0
- data/test/syntax-book/images/cover.jpg +0 -0
- data/test/syntax-book/images/fractal.png +0 -0
- data/test/syntax-book/images/img3-1.png +0 -0
- data/test/syntax-book/images/inlineicon.jpg +0 -0
- data/test/syntax-book/images/logic.png +0 -0
- data/test/syntax-book/images/logic2.png +0 -0
- data/test/syntax-book/images/puzzle.jpg +0 -0
- data/test/syntax-book/images/table.jpg +0 -0
- data/test/syntax-book/part2.re +6 -0
- data/test/syntax-book/pre01.re +26 -0
- data/test/syntax-book/review-ext.rb +14 -0
- data/test/syntax-book/sty/jumoline.sty +310 -0
- data/test/syntax-book/sty/reviewmacro.sty +39 -0
- data/test/syntax-book/style.css +494 -0
- data/test/syntax-book/syntax.dic +2 -0
- data/test/test_book.rb +106 -111
- data/test/test_book_chapter.rb +21 -22
- data/test/test_book_part.rb +3 -5
- data/test/test_builder.rb +11 -22
- data/test/test_catalog.rb +17 -18
- data/test/test_catalog_converter_cmd.rb +5 -5
- data/test/test_compiler.rb +18 -16
- data/test/test_configure.rb +35 -38
- data/test/test_converter.rb +3 -4
- data/test/test_epub3maker.rb +136 -117
- data/test/test_epubmaker.rb +107 -114
- data/test/test_epubmaker_cmd.rb +2 -4
- data/test/test_extentions_hash.rb +32 -33
- data/test/test_helper.rb +9 -11
- data/test/test_htmlbuilder.rb +454 -420
- data/test/test_htmltoc.rb +8 -12
- data/test/test_htmlutils.rb +0 -2
- data/test/test_i18n.rb +159 -150
- data/test/test_idgxmlbuilder.rb +190 -197
- data/test/test_image_finder.rb +21 -22
- data/test/test_index.rb +24 -29
- data/test/test_latexbuilder.rb +274 -264
- data/test/test_lineinput.rb +7 -10
- data/test/test_location.rb +7 -7
- data/test/test_makerhelper.rb +13 -25
- data/test/test_markdownbuilder.rb +23 -26
- data/test/test_md2inaobuilder.rb +8 -11
- data/test/test_pdfmaker.rb +114 -123
- data/test/test_pdfmaker_cmd.rb +1 -3
- data/test/test_review_ext.rb +3 -5
- data/test/test_rstbuilder.rb +92 -97
- data/test/test_template.rb +3 -7
- data/test/test_textutils.rb +27 -27
- data/test/test_tocparser.rb +2 -2
- data/test/test_topbuilder.rb +98 -103
- data/test/test_webtocprinter.rb +5 -6
- data/test/test_yamlloader.rb +42 -42
- data/test/test_zip_exporter.rb +12 -18
- metadata +86 -9
- data/lib/review/ewbbuilder.rb +0 -382
data/test/test_book_chapter.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
require 'book_test_helper'
|
|
3
2
|
class ChapterTest < Test::Unit::TestCase
|
|
4
3
|
include BookTestHelper
|
|
@@ -8,7 +7,7 @@ class ChapterTest < Test::Unit::TestCase
|
|
|
8
7
|
assert_equal :book, ch.book
|
|
9
8
|
assert_equal :number, ch.number
|
|
10
9
|
assert_equal '/foo/bar', ch.path
|
|
11
|
-
assert_equal
|
|
10
|
+
assert_equal '#<ReVIEW::Book::Chapter number /foo/bar>', ch.inspect
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
def test_dirname_and_basename
|
|
@@ -39,7 +38,7 @@ class ChapterTest < Test::Unit::TestCase
|
|
|
39
38
|
def test_open
|
|
40
39
|
ch = Book::Chapter.new(nil, nil, nil, __FILE__, :io)
|
|
41
40
|
assert_equal :io, ch.open
|
|
42
|
-
assert_equal [:io], (ch.open {|io| [io] })
|
|
41
|
+
assert_equal [:io], (ch.open { |io| [io] })
|
|
43
42
|
end
|
|
44
43
|
|
|
45
44
|
def test_size
|
|
@@ -64,22 +63,22 @@ class ChapterTest < Test::Unit::TestCase
|
|
|
64
63
|
end
|
|
65
64
|
|
|
66
65
|
def test_lines
|
|
67
|
-
lines = ["1\n", "2\n",
|
|
66
|
+
lines = ["1\n", "2\n", '3']
|
|
68
67
|
tf = Tempfile.new('chapter_test')
|
|
69
|
-
tf.print lines.join
|
|
68
|
+
tf.print lines.join
|
|
70
69
|
tf.close
|
|
71
70
|
|
|
72
71
|
book = Book::Base.new(nil)
|
|
73
72
|
ch = Book::Chapter.new(book, nil, nil, tf.path)
|
|
74
73
|
assert_equal lines, ch.lines
|
|
75
74
|
|
|
76
|
-
lines = ["1\n", "2\n",
|
|
75
|
+
lines = ["1\n", "2\n", '3']
|
|
77
76
|
tf1 = Tempfile.new('chapter_test1')
|
|
78
|
-
tf1.print lines.join
|
|
77
|
+
tf1.print lines.join
|
|
79
78
|
tf1.close
|
|
80
79
|
tf2 = Tempfile.new('chapter_test2')
|
|
81
|
-
tf2.puts lines.join
|
|
82
|
-
tf2.puts lines.join
|
|
80
|
+
tf2.puts lines.join
|
|
81
|
+
tf2.puts lines.join
|
|
83
82
|
tf2.close
|
|
84
83
|
|
|
85
84
|
ch = Book::Chapter.new(book, nil, nil, tf1.path, tf2.path)
|
|
@@ -107,14 +106,14 @@ class ChapterTest < Test::Unit::TestCase
|
|
|
107
106
|
assert_equal content.gsub(/\s/, '').size, ch.volume.bytes # XXX: OK?
|
|
108
107
|
end
|
|
109
108
|
|
|
110
|
-
def
|
|
109
|
+
def test_on_chaps?
|
|
111
110
|
mktmpbookdir 'CHAPS' => "chapter1.re\nchapter2.re",
|
|
112
111
|
'chapter1.re' => '12345', 'preface.re' => 'abcde' do |dir, book, files|
|
|
113
112
|
ch1 = Book::Chapter.new(book, 1, 'chapter1', files['chapter1.re'])
|
|
114
113
|
pre = Book::Chapter.new(book, nil, 'preface', files['preface.re'])
|
|
115
114
|
|
|
116
|
-
assert ch1.
|
|
117
|
-
assert !pre.
|
|
115
|
+
assert ch1.on_chaps?
|
|
116
|
+
assert !pre.on_chaps?
|
|
118
117
|
|
|
119
118
|
ch2_path = File.join(dir, 'chapter2.er')
|
|
120
119
|
File.open(ch2_path, 'w') {}
|
|
@@ -124,8 +123,8 @@ class ChapterTest < Test::Unit::TestCase
|
|
|
124
123
|
File.open(ch3_path, 'w') {}
|
|
125
124
|
ch3 = Book::Chapter.new(book, 3, 'chapter3', ch3_path)
|
|
126
125
|
|
|
127
|
-
assert ch2.
|
|
128
|
-
assert !ch3.
|
|
126
|
+
assert ch2.on_chaps?
|
|
127
|
+
assert !ch3.on_chaps?
|
|
129
128
|
end
|
|
130
129
|
end
|
|
131
130
|
|
|
@@ -166,7 +165,7 @@ E
|
|
|
166
165
|
end
|
|
167
166
|
|
|
168
167
|
def test_bibpaper
|
|
169
|
-
do_test_index(<<E, Book::BibpaperIndex, :bibpaper_index, :bibpaper, :
|
|
168
|
+
do_test_index(<<E, Book::BibpaperIndex, :bibpaper_index, :bibpaper, filename: 'bib.re')
|
|
170
169
|
//bibpaper
|
|
171
170
|
//bibpaper [abc][text...]
|
|
172
171
|
//bibpaper [def][text...]
|
|
@@ -175,12 +174,12 @@ E
|
|
|
175
174
|
//list [others]
|
|
176
175
|
E
|
|
177
176
|
assert_raises FileNotFound do
|
|
178
|
-
do_test_index('', Book::BibpaperIndex, :bibpaper_index, :bibpaper, :
|
|
177
|
+
do_test_index('', Book::BibpaperIndex, :bibpaper_index, :bibpaper, filename: 'bib')
|
|
179
178
|
end
|
|
180
179
|
end
|
|
181
180
|
|
|
182
181
|
def test_headline_index
|
|
183
|
-
do_test_index(<<E, Book::HeadlineIndex, :headline_index, :headline, :
|
|
182
|
+
do_test_index(<<E, Book::HeadlineIndex, :headline_index, :headline, propagate: false)
|
|
184
183
|
==
|
|
185
184
|
== abc
|
|
186
185
|
== def
|
|
@@ -190,7 +189,7 @@ E
|
|
|
190
189
|
end
|
|
191
190
|
|
|
192
191
|
def test_headline_index_nullsection
|
|
193
|
-
do_test_index(<<E, Book::HeadlineIndex, :headline_index, :headline, :
|
|
192
|
+
do_test_index(<<E, Book::HeadlineIndex, :headline_index, :headline, propagate: false)
|
|
194
193
|
== abc
|
|
195
194
|
==== dummy
|
|
196
195
|
== def
|
|
@@ -198,7 +197,7 @@ E
|
|
|
198
197
|
end
|
|
199
198
|
|
|
200
199
|
def test_column_index
|
|
201
|
-
do_test_index(<<E, Book::ColumnIndex, :column_index, :column, :
|
|
200
|
+
do_test_index(<<E, Book::ColumnIndex, :column_index, :column, propagate: false)
|
|
202
201
|
= dummy1
|
|
203
202
|
===[column]{abc} aaaa
|
|
204
203
|
= dummy2
|
|
@@ -216,7 +215,7 @@ E
|
|
|
216
215
|
//list [others]
|
|
217
216
|
E
|
|
218
217
|
|
|
219
|
-
do_test_index(<<E, Book::NumberlessImageIndex, :numberless_image_index, :image, :
|
|
218
|
+
do_test_index(<<E, Book::NumberlessImageIndex, :numberless_image_index, :image, propagate: false)
|
|
220
219
|
//numberlessimage
|
|
221
220
|
//numberlessimage [abc]
|
|
222
221
|
//numberlessimage [def]
|
|
@@ -232,7 +231,7 @@ E
|
|
|
232
231
|
//list [others]
|
|
233
232
|
E
|
|
234
233
|
|
|
235
|
-
do_test_index(<<E, Book::NumberlessImageIndex, :numberless_image_index, :image, :
|
|
234
|
+
do_test_index(<<E, Book::NumberlessImageIndex, :numberless_image_index, :image, propagate: false)
|
|
236
235
|
//image
|
|
237
236
|
//numberlessimage [abc]
|
|
238
237
|
//image [def]
|
|
@@ -241,7 +240,7 @@ E
|
|
|
241
240
|
E
|
|
242
241
|
end
|
|
243
242
|
|
|
244
|
-
def do_test_index(content,
|
|
243
|
+
def do_test_index(content, _klass, _list_method, ref_method, opts = {})
|
|
245
244
|
Dir.mktmpdir do |dir|
|
|
246
245
|
path = File.join(dir, opts[:filename] || 'chapter.re')
|
|
247
246
|
|
data/test/test_book_part.rb
CHANGED
|
@@ -18,9 +18,7 @@ class PartTest < Test::Unit::TestCase
|
|
|
18
18
|
part = Book::Part.new(nil, nil, [1, 2, 3])
|
|
19
19
|
|
|
20
20
|
tmp = []
|
|
21
|
-
part.each_chapter
|
|
22
|
-
tmp << ch
|
|
23
|
-
end
|
|
21
|
+
part.each_chapter { |ch| tmp << ch }
|
|
24
22
|
assert_equal [1, 2, 3], tmp
|
|
25
23
|
end
|
|
26
24
|
|
|
@@ -35,12 +33,12 @@ class PartTest < Test::Unit::TestCase
|
|
|
35
33
|
chs = []
|
|
36
34
|
tfs = [] ## prevent from removing Tempfile
|
|
37
35
|
Tempfile.open('part_test') do |o|
|
|
38
|
-
o.print
|
|
36
|
+
o.print '12345'
|
|
39
37
|
chs << Book::Chapter.new(book, nil, nil, o.path)
|
|
40
38
|
tfs << o
|
|
41
39
|
end
|
|
42
40
|
Tempfile.open('part_test') do |o|
|
|
43
|
-
o.print
|
|
41
|
+
o.print '67890'
|
|
44
42
|
chs << Book::Chapter.new(book, nil, nil, o.path)
|
|
45
43
|
tfs << o
|
|
46
44
|
end
|
data/test/test_builder.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
1
|
require 'test_helper'
|
|
4
2
|
require 'review/builder'
|
|
5
3
|
|
|
@@ -47,46 +45,38 @@ class BuidlerTest < Test::Unit::TestCase
|
|
|
47
45
|
def test_print_and_puts
|
|
48
46
|
b = Builder.new
|
|
49
47
|
assert_raises(NoMethodError) do # XXX: OK?
|
|
50
|
-
b.print
|
|
48
|
+
b.print ''
|
|
51
49
|
end
|
|
52
50
|
assert_raises(NoMethodError) do # XXX: OK?
|
|
53
|
-
b.puts
|
|
51
|
+
b.puts ''
|
|
54
52
|
end
|
|
55
53
|
end
|
|
56
54
|
|
|
57
55
|
def test_not_implemented_methods
|
|
58
56
|
ex = NoMethodError # XXX: OK?
|
|
59
|
-
[
|
|
60
|
-
:list_header, :list_body, :listnum_body,
|
|
61
|
-
:source_header, :source_body,
|
|
62
|
-
:image_image, :image_dummy,
|
|
63
|
-
:table_header, :table_begin, :tr, :th, :table_end,
|
|
64
|
-
:compile_ruby, :compile_kw, :compile_href,
|
|
65
|
-
:bibpaper_header, :bibpaper_bibpaper,
|
|
66
|
-
:inline_hd_chap,
|
|
67
|
-
].each do |m|
|
|
57
|
+
%i[list_header list_body listnum_body source_header source_body image_image image_dummy table_header table_begin tr th table_end compile_ruby compile_kw compile_href bibpaper_header bibpaper_bibpaper inline_hd_chap].each do |m|
|
|
68
58
|
b = Builder.new
|
|
69
59
|
assert_raises(ex) { b.__send__(m) }
|
|
70
60
|
end
|
|
71
61
|
end
|
|
72
62
|
|
|
73
63
|
def test_compile_inline
|
|
74
|
-
text =
|
|
64
|
+
text = 'abc'
|
|
75
65
|
assert_equal [:text, text], @b.compile_inline(text)
|
|
76
66
|
end
|
|
77
67
|
|
|
78
68
|
def test_inline_ruby
|
|
79
|
-
def @b.compile_ruby(base,ruby)
|
|
80
|
-
[base,ruby]
|
|
69
|
+
def @b.compile_ruby(base, ruby)
|
|
70
|
+
[base, ruby]
|
|
81
71
|
end
|
|
82
|
-
str = @b.inline_ruby(
|
|
83
|
-
assert_equal str, [
|
|
84
|
-
str = @b.inline_ruby(
|
|
85
|
-
assert_equal str, [
|
|
72
|
+
str = @b.inline_ruby('foo,bar')
|
|
73
|
+
assert_equal str, ['foo', 'bar']
|
|
74
|
+
str = @b.inline_ruby('foo\\,\\,,\\,bar,buz')
|
|
75
|
+
assert_equal str, ['foo,,', ',bar,buz']
|
|
86
76
|
end
|
|
87
77
|
|
|
88
78
|
def test_compile_inline_backslash
|
|
89
|
-
text =
|
|
79
|
+
text = 'abc\\d\\#a'
|
|
90
80
|
assert_equal [:text, text], @b.compile_inline(text)
|
|
91
81
|
end
|
|
92
82
|
|
|
@@ -107,4 +97,3 @@ class BuidlerTest < Test::Unit::TestCase
|
|
|
107
97
|
end
|
|
108
98
|
end
|
|
109
99
|
end
|
|
110
|
-
|
data/test/test_catalog.rb
CHANGED
|
@@ -6,7 +6,7 @@ class CatalogTest < Test::Unit::TestCase
|
|
|
6
6
|
|
|
7
7
|
def test_predef
|
|
8
8
|
sut = Catalog.new(yaml)
|
|
9
|
-
exp
|
|
9
|
+
exp = <<-EOS
|
|
10
10
|
pre01.re
|
|
11
11
|
pre02.re
|
|
12
12
|
EOS
|
|
@@ -15,7 +15,7 @@ pre02.re
|
|
|
15
15
|
|
|
16
16
|
def test_chaps
|
|
17
17
|
sut = Catalog.new(yaml)
|
|
18
|
-
exp
|
|
18
|
+
exp = <<-EOS
|
|
19
19
|
ch01.re
|
|
20
20
|
ch02.re
|
|
21
21
|
EOS
|
|
@@ -25,12 +25,12 @@ ch02.re
|
|
|
25
25
|
def test_chaps_empty
|
|
26
26
|
yaml = StringIO.new
|
|
27
27
|
sut = Catalog.new(yaml)
|
|
28
|
-
assert_equal(
|
|
28
|
+
assert_equal('', sut.chaps)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def test_appendix
|
|
32
32
|
sut = Catalog.new(yaml)
|
|
33
|
-
exp
|
|
33
|
+
exp = <<-EOS
|
|
34
34
|
post01.re
|
|
35
35
|
post02.re
|
|
36
36
|
EOS
|
|
@@ -39,7 +39,7 @@ post02.re
|
|
|
39
39
|
|
|
40
40
|
def test_chaps_with_parts
|
|
41
41
|
sut = Catalog.new(yaml_with_parts)
|
|
42
|
-
exp
|
|
42
|
+
exp = <<-EOS
|
|
43
43
|
ch01.re
|
|
44
44
|
ch02.re
|
|
45
45
|
ch03.re
|
|
@@ -51,7 +51,7 @@ ch05.re
|
|
|
51
51
|
|
|
52
52
|
def test_parts
|
|
53
53
|
sut = Catalog.new(yaml_with_parts)
|
|
54
|
-
exp
|
|
54
|
+
exp = <<-EOS
|
|
55
55
|
part1.re
|
|
56
56
|
part2.re
|
|
57
57
|
EOS
|
|
@@ -60,21 +60,21 @@ part2.re
|
|
|
60
60
|
|
|
61
61
|
def test_parts_with_empty
|
|
62
62
|
sut = Catalog.new(yaml)
|
|
63
|
-
assert_equal(
|
|
63
|
+
assert_equal('', sut.parts)
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def test_parts2
|
|
67
67
|
sut = Catalog.new(yaml_with_parts)
|
|
68
|
-
assert_equal([
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
{
|
|
68
|
+
assert_equal(['ch01.re',
|
|
69
|
+
{ 'part1.re' => ['ch02.re'] },
|
|
70
|
+
'ch03.re',
|
|
71
|
+
{ 'part2.re' => ['ch04.re', 'ch05.re'] }],
|
|
72
72
|
sut.parts_with_chaps)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def test_postdef
|
|
76
76
|
sut = Catalog.new(yaml)
|
|
77
|
-
exp
|
|
77
|
+
exp = <<-EOS
|
|
78
78
|
back01.re
|
|
79
79
|
back02.re
|
|
80
80
|
EOS
|
|
@@ -83,14 +83,13 @@ back02.re
|
|
|
83
83
|
|
|
84
84
|
def test_from_object
|
|
85
85
|
sut = Catalog.new(yaml_hash)
|
|
86
|
-
exp
|
|
86
|
+
exp = <<-EOS
|
|
87
87
|
ch01.re
|
|
88
88
|
ch02.re
|
|
89
89
|
EOS
|
|
90
90
|
assert_equal(exp.chomp, sut.chaps)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
|
|
94
93
|
private
|
|
95
94
|
|
|
96
95
|
def yaml
|
|
@@ -115,10 +114,10 @@ POSTDEF:
|
|
|
115
114
|
end
|
|
116
115
|
|
|
117
116
|
def yaml_hash
|
|
118
|
-
{
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
117
|
+
{ 'PREDEF' => %w[pre01.re pre02.re],
|
|
118
|
+
'CHAPS' => %w[ch01.re ch02.re],
|
|
119
|
+
'APPENDIX' => %w[post01.re post02.re],
|
|
120
|
+
'POSTDEF' => %w[back01.re back02.re] }
|
|
122
121
|
end
|
|
123
122
|
|
|
124
123
|
def yaml_with_parts
|
|
@@ -25,7 +25,7 @@ CHAPS:
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def test_parse_chaps_empty
|
|
28
|
-
assert_equal "CHAPS:\n\n", parse_chaps(
|
|
28
|
+
assert_equal "CHAPS:\n\n", parse_chaps('')
|
|
29
29
|
assert_equal "CHAPS:\n\n", parse_chaps(nil)
|
|
30
30
|
end
|
|
31
31
|
|
|
@@ -61,13 +61,13 @@ CHAPS:
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def test_parse_parts_chaps_empty
|
|
64
|
-
assert_equal "CHAPS:\n\n", parse_parts(
|
|
64
|
+
assert_equal "CHAPS:\n\n", parse_parts('', '')
|
|
65
65
|
assert_equal "CHAPS:\n\n", parse_parts(nil, nil)
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
def test_parse_postdef
|
|
69
|
-
assert_equal "APPENDIX:\n\n", parse_postdef(
|
|
70
|
-
assert_equal "POSTDEF:\n\n", parse_postdef(
|
|
71
|
-
assert_equal "POSTDEF:\n\n", parse_postdef(
|
|
69
|
+
assert_equal "APPENDIX:\n\n", parse_postdef('', true)
|
|
70
|
+
assert_equal "POSTDEF:\n\n", parse_postdef('')
|
|
71
|
+
assert_equal "POSTDEF:\n\n", parse_postdef('', false)
|
|
72
72
|
end
|
|
73
73
|
end
|
data/test/test_compiler.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
1
|
require 'test_helper'
|
|
4
2
|
require 'review/compiler'
|
|
5
3
|
require 'review/book'
|
|
@@ -9,38 +7,42 @@ class CompilerTest < Test::Unit::TestCase
|
|
|
9
7
|
include ReVIEW
|
|
10
8
|
|
|
11
9
|
def setup
|
|
12
|
-
@builder = LATEXBuilder.new
|
|
10
|
+
@builder = LATEXBuilder.new
|
|
13
11
|
@c = Compiler.new(@builder)
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
def test_parse_args
|
|
17
|
-
args = @c.__send__(:parse_args,
|
|
18
|
-
assert_equal [
|
|
15
|
+
args = @c.__send__(:parse_args, '[foo][bar]')
|
|
16
|
+
assert_equal ['foo', 'bar'], args
|
|
19
17
|
end
|
|
20
18
|
|
|
21
19
|
def test_parse_args_with_brace1
|
|
22
|
-
args = @c.__send__(:parse_args,
|
|
23
|
-
assert_equal [
|
|
20
|
+
args = @c.__send__(:parse_args, '[fo[\\][\\]o][bar]')
|
|
21
|
+
assert_equal ['fo[][]o', 'bar'], args
|
|
24
22
|
end
|
|
25
23
|
|
|
26
24
|
def test_parse_args_with_brace2
|
|
27
|
-
args = @c.__send__(:parse_args,
|
|
28
|
-
assert_equal [
|
|
25
|
+
args = @c.__send__(:parse_args, '[f\\]o\\]o][bar]')
|
|
26
|
+
assert_equal ['f]o]o', 'bar'], args
|
|
29
27
|
end
|
|
30
28
|
|
|
31
29
|
def test_parse_args_with_backslash
|
|
32
|
-
args = @c.__send__(:parse_args,
|
|
33
|
-
assert_equal [
|
|
30
|
+
args = @c.__send__(:parse_args, '[foo][bar\\buz]')
|
|
31
|
+
assert_equal ['foo', 'bar\\buz'], args
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
def test_parse_args_with_backslash2
|
|
37
|
-
args = @c.__send__(:parse_args,
|
|
38
|
-
assert_equal [
|
|
35
|
+
args = @c.__send__(:parse_args, '[foo][bar\\#\\[\\!]')
|
|
36
|
+
assert_equal ['foo', 'bar\\#\\[\\!'], args
|
|
39
37
|
end
|
|
40
38
|
|
|
41
39
|
def test_parse_args_with_backslash3
|
|
42
|
-
args = @c.__send__(:parse_args,
|
|
43
|
-
assert_equal [
|
|
40
|
+
args = @c.__send__(:parse_args, '[foo][bar\\\\buz]')
|
|
41
|
+
assert_equal ['foo', 'bar\\buz'], args
|
|
44
42
|
end
|
|
45
|
-
end
|
|
46
43
|
|
|
44
|
+
def test_replace_fence
|
|
45
|
+
actual = @c.__send__(:replace_fence, '@<m>${}\\}|$, @<m>|{}\\}\\$|, @<m>|\\{\\a\\}|, @<tt>|}|, @<tt>|\\|, @<tt>|\\\\|, @<tt>|\\\\\\|')
|
|
46
|
+
assert_equal '@<m>{{\\}\\\\\\}|}, @<m>{{\\}\\\\\\}\\$}, @<m>{\\{\\a\\\\\\}}, @<tt>{\\}}, @<tt>{\\\\}, @<tt>{\\\\\\\\}, @<tt>{\\\\\\\\\\\\}', actual
|
|
47
|
+
end
|
|
48
|
+
end
|
data/test/test_configure.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
|
|
3
1
|
require 'test_helper'
|
|
4
2
|
require 'review/epubmaker'
|
|
5
3
|
|
|
@@ -9,18 +7,18 @@ class ConfigureTest < Test::Unit::TestCase
|
|
|
9
7
|
def setup
|
|
10
8
|
@maker = ReVIEW::EPUBMaker.new
|
|
11
9
|
@config = ReVIEW::Configure.values
|
|
12
|
-
@config.merge!(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
@config.merge!(
|
|
11
|
+
'bookname' => 'sample',
|
|
12
|
+
'title' => 'Sample Book',
|
|
13
|
+
'version' => 2,
|
|
14
|
+
'urnid' => 'http://example.jp/',
|
|
15
|
+
'date' => '2011-01-01',
|
|
16
|
+
'language' => 'ja',
|
|
17
|
+
'epubmaker' => { 'flattocindent' => true,
|
|
18
|
+
'title' => 'Sample Book(EPUB)' }
|
|
19
|
+
)
|
|
22
20
|
@output = StringIO.new
|
|
23
|
-
I18n.setup(@config[
|
|
21
|
+
I18n.setup(@config['language'])
|
|
24
22
|
end
|
|
25
23
|
|
|
26
24
|
def test_configure_class
|
|
@@ -28,67 +26,66 @@ class ConfigureTest < Test::Unit::TestCase
|
|
|
28
26
|
end
|
|
29
27
|
|
|
30
28
|
def test_configure_get
|
|
31
|
-
bookname = @config[
|
|
32
|
-
assert_equal
|
|
29
|
+
bookname = @config['bookname']
|
|
30
|
+
assert_equal 'sample', bookname
|
|
33
31
|
end
|
|
34
32
|
|
|
35
33
|
def test_configure_get2
|
|
36
|
-
assert_equal true, @config[
|
|
34
|
+
assert_equal true, @config['epubmaker']['flattocindent']
|
|
37
35
|
end
|
|
38
36
|
|
|
39
37
|
def test_configure_with_maker
|
|
40
|
-
@config.maker =
|
|
41
|
-
assert_equal true, @config[
|
|
42
|
-
assert_equal true, @config[
|
|
38
|
+
@config.maker = 'epubmaker'
|
|
39
|
+
assert_equal true, @config['flattocindent']
|
|
40
|
+
assert_equal true, @config['epubmaker']['flattocindent']
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def test_configure_with_maker_override
|
|
46
|
-
@config.maker =
|
|
47
|
-
assert_equal
|
|
48
|
-
@config.maker =
|
|
49
|
-
assert_equal
|
|
44
|
+
@config.maker = 'epubmaker'
|
|
45
|
+
assert_equal 'Sample Book(EPUB)', @config['title']
|
|
46
|
+
@config.maker = 'pdfmaker'
|
|
47
|
+
assert_equal 'Sample Book', @config['title']
|
|
50
48
|
end
|
|
51
49
|
|
|
52
50
|
def test_configure_with_invalidmaker
|
|
53
|
-
@config.maker =
|
|
54
|
-
assert_equal nil, @config[
|
|
55
|
-
assert_equal true, @config[
|
|
51
|
+
@config.maker = 'pdfmaker'
|
|
52
|
+
assert_equal nil, @config['flattocindent']
|
|
53
|
+
assert_equal true, @config['epubmaker']['flattocindent']
|
|
56
54
|
end
|
|
57
55
|
|
|
58
56
|
def test_check_version_nosetting
|
|
59
|
-
@config.delete(
|
|
57
|
+
@config.delete('review_version')
|
|
60
58
|
assert_raise ReVIEW::ConfigError do
|
|
61
|
-
@config.check_version(
|
|
59
|
+
@config.check_version('2.0.0')
|
|
62
60
|
end
|
|
63
61
|
end
|
|
64
62
|
|
|
65
63
|
def test_check_version_noversion
|
|
66
|
-
@config[
|
|
64
|
+
@config['review_version'] = nil
|
|
67
65
|
assert_nothing_raised ReVIEW::ConfigError do
|
|
68
|
-
@config.check_version(
|
|
66
|
+
@config.check_version('2.0.0')
|
|
69
67
|
end
|
|
70
68
|
end
|
|
71
69
|
|
|
72
70
|
def test_check_version
|
|
73
|
-
@config[
|
|
71
|
+
@config['review_version'] = '2.1'
|
|
74
72
|
assert_nothing_raised do
|
|
75
|
-
@config.check_version(
|
|
73
|
+
@config.check_version('2.1.0')
|
|
76
74
|
end
|
|
77
75
|
assert_nothing_raised do
|
|
78
|
-
@config.check_version(
|
|
76
|
+
@config.check_version('2.2.0')
|
|
79
77
|
end
|
|
80
78
|
assert_nothing_raised do
|
|
81
|
-
@config.check_version(
|
|
79
|
+
@config.check_version('2.2.5')
|
|
82
80
|
end
|
|
83
81
|
assert_raise ReVIEW::ConfigError do
|
|
84
|
-
@config.check_version(
|
|
82
|
+
@config.check_version('2.0.0')
|
|
85
83
|
end
|
|
86
84
|
assert_raise ReVIEW::ConfigError do
|
|
87
|
-
@config.check_version(
|
|
85
|
+
@config.check_version('3.0.0')
|
|
88
86
|
end
|
|
89
87
|
assert_raise ReVIEW::ConfigError do
|
|
90
|
-
@config.check_version(
|
|
88
|
+
@config.check_version('1.8.0')
|
|
91
89
|
end
|
|
92
90
|
end
|
|
93
|
-
|
|
94
91
|
end
|