review 1.2.0 → 1.3.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/.gitignore +36 -0
- data/.rubocop.yml +1 -0
- data/ChangeLog +102 -0
- data/README.rdoc +2 -2
- data/bin/review-check +18 -16
- data/bin/review-compile +49 -42
- data/bin/review-epubmaker +23 -993
- data/bin/review-epubmaker-legacy +1024 -0
- data/bin/review-index +17 -15
- data/bin/review-init +39 -9
- data/bin/review-pdfmaker +124 -89
- data/bin/review-preproc +16 -14
- data/bin/review-vol +17 -15
- data/debian/docs +1 -1
- data/doc/catalog.rdoc +34 -0
- data/doc/format.rdoc +16 -2
- data/doc/libepubmaker/{config.yaml → config.yml} +63 -19
- data/doc/quickstart.rdoc +1 -1
- data/doc/{sample.yaml → sample.yml} +0 -0
- data/lib/epubmaker.rb +1 -1
- data/lib/epubmaker/content.rb +9 -1
- data/lib/epubmaker/epubv2.rb +59 -7
- data/lib/epubmaker/epubv3.rb +14 -9
- data/lib/epubmaker/producer.rb +68 -27
- data/lib/epubmaker/resource.rb +3 -1
- data/lib/lineinput.rb +2 -2
- data/lib/review/book/base.rb +125 -24
- data/lib/review/book/chapter.rb +42 -0
- data/lib/review/book/compilable.rb +23 -4
- data/lib/review/book/image_finder.rb +64 -0
- data/lib/review/book/index.rb +64 -50
- data/lib/review/book/page_metric.rb +1 -1
- data/lib/review/builder.rb +19 -12
- data/lib/review/catalog.rb +47 -0
- data/lib/review/compiler.rb +3 -2
- data/lib/review/configure.rb +5 -3
- data/lib/review/epubmaker.rb +130 -46
- data/lib/review/ewbbuilder.rb +27 -31
- data/lib/review/extentions/string.rb +4 -4
- data/lib/review/htmlbuilder.rb +140 -79
- data/lib/review/htmllayout.rb +26 -4
- data/lib/review/htmlutils.rb +20 -1
- data/lib/review/i18n.rb +5 -2
- data/lib/review/{i18n.yaml → i18n.yml} +4 -2
- data/lib/review/idgxmlbuilder.rb +65 -39
- data/lib/review/latexbuilder.rb +72 -24
- data/lib/review/latexutils.rb +3 -1
- data/lib/review/makerhelper.rb +8 -2
- data/lib/review/preprocessor.rb +20 -20
- data/lib/review/review.tex.erb +4 -0
- data/lib/review/sec_counter.rb +9 -11
- data/lib/review/tocparser.rb +2 -2
- data/lib/review/tocprinter.rb +12 -12
- data/lib/review/topbuilder.rb +15 -15
- data/lib/review/version.rb +1 -1
- data/lib/uuid.rb +7 -7
- data/review.gemspec +2 -2
- data/rubocop-todo.yml +443 -0
- data/test/sample-book/src/config.yml +2 -2
- data/test/sample-book/src/{main.css → style.css} +0 -0
- data/test/test_book.rb +46 -48
- data/test/test_book_chapter.rb +25 -13
- data/test/test_builder.rb +3 -3
- data/test/test_catalog.rb +107 -0
- data/test/test_epubmaker.rb +6 -6
- data/test/test_htmlbuilder.rb +160 -39
- data/test/test_htmlutils.rb +22 -0
- data/test/test_i18n.rb +2 -2
- data/test/test_idgxmlbuilder.rb +33 -47
- data/test/test_image_finder.rb +82 -0
- data/test/test_inaobuilder.rb +1 -1
- data/test/test_latexbuilder.rb +35 -39
- data/test/test_lineinput.rb +2 -2
- data/test/test_markdownbuilder.rb +2 -2
- data/test/test_topbuilder.rb +39 -23
- metadata +23 -14
- data/bin/review-epubmaker-ng +0 -23
data/test/test_idgxmlbuilder.rb
CHANGED
@@ -11,14 +11,14 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
11
11
|
|
12
12
|
def setup
|
13
13
|
@builder = IDGXMLBuilder.new()
|
14
|
-
@
|
14
|
+
@config = {
|
15
15
|
"secnolevel" => 2,
|
16
16
|
"inencoding" => "UTF-8",
|
17
17
|
"outencoding" => "UTF-8",
|
18
18
|
"nolf" => true,
|
19
19
|
"tableopt" => "10"
|
20
20
|
}
|
21
|
-
ReVIEW.book.
|
21
|
+
ReVIEW.book.config = @config
|
22
22
|
@compiler = ReVIEW::Compiler.new(@builder)
|
23
23
|
@chapter = Book::Chapter.new(Book::Base.new(nil), 1, '-', nil, StringIO.new)
|
24
24
|
location = Location.new(nil, nil)
|
@@ -31,7 +31,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_headline_level1_without_secno
|
34
|
-
@
|
34
|
+
@config["secnolevel"] = 0
|
35
35
|
@builder.headline(1,"test","this is test.")
|
36
36
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><title id="test" aid:pstyle="h1">this is test.</title><?dtp level="1" section="this is test."?>|, @builder.raw_result
|
37
37
|
end
|
@@ -48,7 +48,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
48
48
|
|
49
49
|
|
50
50
|
def test_headline_level3_with_secno
|
51
|
-
@
|
51
|
+
@config["secnolevel"] = 3
|
52
52
|
@builder.headline(3,"test","this is test.")
|
53
53
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><title id="test" aid:pstyle="h3">1.0.1 this is test.</title><?dtp level="3" section="1.0.1 this is test."?>|, @builder.raw_result
|
54
54
|
end
|
@@ -94,17 +94,17 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def test_inline_in_table_without_cellwidth
|
97
|
-
@
|
97
|
+
@config["tableopt"] = nil
|
98
98
|
ret = @builder.table(["<b>1</b>\t<i>2</i>", "------------", "<b>3</b>\t<i>4</i><>&"])
|
99
99
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><table><tbody><tr type="header"><b>1</b>\t<i>2</i></tr><tr type="lastline"><b>3</b>\t<i>4</i><>&</tr></tbody></table>|, @builder.raw_result
|
100
|
-
@
|
100
|
+
@config["tableopt"] = 10
|
101
101
|
end
|
102
102
|
|
103
103
|
def test_inline_in_table_without_header_and_cellwidth
|
104
|
-
@
|
104
|
+
@config["tableopt"] = nil
|
105
105
|
ret = @builder.table(["<b>1</b>\t<i>2</i>", "<b>3</b>\t<i>4</i><>&"])
|
106
106
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><table><tbody><tr><b>1</b>\t<i>2</i></tr><tr type="lastline"><b>3</b>\t<i>4</i><>&</tr></tbody></table>|, @builder.raw_result
|
107
|
-
@
|
107
|
+
@config["tableopt"] = 10
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_inline_br
|
@@ -172,9 +172,9 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
172
172
|
|
173
173
|
def test_quote_deprecated
|
174
174
|
lines = ["foo","","buz"]
|
175
|
-
ReVIEW.book.
|
175
|
+
ReVIEW.book.config["deprecated-blocklines"] = true
|
176
176
|
@builder.quote(lines)
|
177
|
-
ReVIEW.book.
|
177
|
+
ReVIEW.book.config["deprecated-blocklines"] = nil
|
178
178
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><quote>foo\n\nbuz</quote>|, @builder.raw_result
|
179
179
|
end
|
180
180
|
|
@@ -194,9 +194,9 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
194
194
|
end
|
195
195
|
|
196
196
|
def test_term_deprecated
|
197
|
-
ReVIEW.book.
|
197
|
+
ReVIEW.book.config["deprecated-blocklines"] = true
|
198
198
|
@builder.term(["test1", "test1.5", "", "test<i>2</i>"])
|
199
|
-
ReVIEW.book.
|
199
|
+
ReVIEW.book.config["deprecated-blocklines"] = nil
|
200
200
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><term>test1\ntest1.5\n\ntest<i>2</i></term>|, @builder.raw_result
|
201
201
|
end
|
202
202
|
|
@@ -226,7 +226,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
226
226
|
end
|
227
227
|
|
228
228
|
def test_emlist_listinfo
|
229
|
-
@
|
229
|
+
@config["listinfo"] = true
|
230
230
|
@builder.emlist(["test1", "test1.5", "", "test<i>2</i>"], "this is @<b>{test}<&>_")
|
231
231
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><list type='emlist'><caption aid:pstyle='emlist-title'>this is <b>test</b><&>_</caption><pre><listinfo line="1" begin="1">test1\n</listinfo><listinfo line="2">test1.5\n</listinfo><listinfo line="3">\n</listinfo><listinfo line="4" end="4">test<i>2</i>\n</listinfo></pre></list>|, @builder.raw_result
|
232
232
|
end
|
@@ -254,22 +254,22 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
254
254
|
def @chapter.list(id)
|
255
255
|
Book::ListIndex::Item.new("samplelist",1)
|
256
256
|
end
|
257
|
-
@
|
257
|
+
@config["listinfo"] = true
|
258
258
|
@builder.list(["test1", "test1.5", "", "test<i>2</i>"], "samplelist", "this is @<b>{test}<&>_")
|
259
259
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><codelist><caption>リスト1.1 this is <b>test</b><&>_</caption><pre><listinfo line="1" begin="1">test1\n</listinfo><listinfo line="2">test1.5\n</listinfo><listinfo line="3">\n</listinfo><listinfo line="4" end="4">test<i>2</i>\n</listinfo></pre></codelist>|, @builder.raw_result
|
260
260
|
end
|
261
261
|
|
262
262
|
def test_insn
|
263
|
-
@
|
263
|
+
@config["listinfo"] = true
|
264
264
|
@builder.insn(["test1", "test1.5", "", "test<i>2</i>"], "this is @<b>{test}<&>_")
|
265
|
-
@
|
265
|
+
@config["listinfo"] = nil
|
266
266
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><insn><floattitle type="insn">this is <b>test</b><&>_</floattitle><listinfo line="1" begin="1">test1\n</listinfo><listinfo line="2">test1.5\n</listinfo><listinfo line="3">\n</listinfo><listinfo line="4" end="4">test<i>2</i>\n</listinfo></insn>|, @builder.raw_result
|
267
267
|
end
|
268
268
|
|
269
269
|
def test_box
|
270
|
-
@
|
270
|
+
@config["listinfo"] = true
|
271
271
|
@builder.box(["test1", "test1.5", "", "test<i>2</i>"], "this is @<b>{test}<&>_")
|
272
|
-
@
|
272
|
+
@config["listinfo"] = nil
|
273
273
|
assert_equal %Q|<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><box><caption aid:pstyle="box-title">this is <b>test</b><&>_</caption><listinfo line="1" begin="1">test1\n</listinfo><listinfo line="2">test1.5\n</listinfo><listinfo line="3">\n</listinfo><listinfo line="4" end="4">test<i>2</i>\n</listinfo></box>|, @builder.raw_result
|
274
274
|
end
|
275
275
|
|
@@ -293,7 +293,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
293
293
|
def test_image
|
294
294
|
def @chapter.image(id)
|
295
295
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
296
|
-
item.instance_eval{@
|
296
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
297
297
|
item
|
298
298
|
end
|
299
299
|
|
@@ -304,7 +304,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
304
304
|
def test_image_with_metric
|
305
305
|
def @chapter.image(id)
|
306
306
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
307
|
-
item.instance_eval{@
|
307
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
308
308
|
item
|
309
309
|
end
|
310
310
|
|
@@ -315,7 +315,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
315
315
|
def test_image_with_metric2
|
316
316
|
def @chapter.image(id)
|
317
317
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
318
|
-
item.instance_eval{@
|
318
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
319
319
|
item
|
320
320
|
end
|
321
321
|
|
@@ -326,7 +326,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
326
326
|
def test_indepimage
|
327
327
|
def @chapter.image(id)
|
328
328
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
329
|
-
item.instance_eval{@
|
329
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
330
330
|
item
|
331
331
|
end
|
332
332
|
|
@@ -337,7 +337,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
337
337
|
def test_indepimage_without_caption
|
338
338
|
def @chapter.image(id)
|
339
339
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
340
|
-
item.instance_eval{@
|
340
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
341
341
|
item
|
342
342
|
end
|
343
343
|
|
@@ -348,7 +348,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
348
348
|
def test_indepimage_with_metric
|
349
349
|
def @chapter.image(id)
|
350
350
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
351
|
-
item.instance_eval{@
|
351
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
352
352
|
item
|
353
353
|
end
|
354
354
|
|
@@ -359,7 +359,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
359
359
|
def test_indepimage_with_metric2
|
360
360
|
def @chapter.image(id)
|
361
361
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
362
|
-
item.instance_eval{@
|
362
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
363
363
|
item
|
364
364
|
end
|
365
365
|
|
@@ -370,7 +370,7 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
370
370
|
def test_indepimage_without_caption_but_with_metric
|
371
371
|
def @chapter.image(id)
|
372
372
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
373
|
-
item.instance_eval{@
|
373
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
374
374
|
item
|
375
375
|
end
|
376
376
|
|
@@ -398,7 +398,7 @@ inside column
|
|
398
398
|
EOS
|
399
399
|
expect =<<-EOS
|
400
400
|
<?xml version="1.0" encoding="UTF-8"?>
|
401
|
-
<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><column><title aid:pstyle="column-title">prev column</title><p>inside prev column</p></column><column><title aid:pstyle="column-title">test</title><p>inside column</p></column></doc>
|
401
|
+
<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><column id="column-1"><title aid:pstyle="column-title">prev column</title><p>inside prev column</p></column><column id="column-2"><title aid:pstyle="column-title">test</title><p>inside column</p></column></doc>
|
402
402
|
EOS
|
403
403
|
assert_equal expect, column_helper(review)
|
404
404
|
end
|
@@ -413,7 +413,7 @@ inside column
|
|
413
413
|
EOS
|
414
414
|
expect =<<-EOS
|
415
415
|
<?xml version="1.0" encoding="UTF-8"?>
|
416
|
-
<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><column><title aid:pstyle="column-title">test</title><p>inside column</p></column><title aid:pstyle=\"h3\">next level</title><?dtp level="3" section="next level"?></doc>
|
416
|
+
<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><column id="column-1"><title aid:pstyle="column-title">test</title><p>inside column</p></column><title aid:pstyle=\"h3\">next level</title><?dtp level="3" section="next level"?></doc>
|
417
417
|
EOS
|
418
418
|
|
419
419
|
assert_equal expect, column_helper(review)
|
@@ -557,45 +557,31 @@ EOS
|
|
557
557
|
|
558
558
|
def test_block_raw0
|
559
559
|
@builder.raw("<>!\"\\n& ")
|
560
|
-
expect
|
561
|
-
<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!"
|
562
|
-
&
|
563
|
-
EOS
|
560
|
+
expect = %Q(<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!\"\n& )
|
564
561
|
assert_equal expect.chomp, @builder.raw_result
|
565
562
|
end
|
566
563
|
|
567
564
|
def test_block_raw1
|
568
565
|
@builder.raw("|idgxml|<>!\"\\n& ")
|
569
|
-
expect
|
570
|
-
<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!"
|
571
|
-
&
|
572
|
-
EOS
|
566
|
+
expect = %Q(<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!\"\n& )
|
573
567
|
assert_equal expect.chomp, @builder.raw_result
|
574
568
|
end
|
575
569
|
|
576
570
|
def test_block_raw2
|
577
571
|
@builder.raw("|idgxml, latex|<>!\"\\n& ")
|
578
|
-
expect
|
579
|
-
<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!\"
|
580
|
-
&
|
581
|
-
EOS
|
572
|
+
expect = %Q(<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"><>!\"\n& )
|
582
573
|
assert_equal expect.chomp, @builder.raw_result
|
583
574
|
end
|
584
575
|
|
585
576
|
def test_block_raw3
|
586
577
|
@builder.raw("|latex, html|<>!\"\\n& ")
|
587
|
-
expect
|
588
|
-
<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">
|
589
|
-
EOS
|
578
|
+
expect = %Q(<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">)
|
590
579
|
assert_equal expect.chomp, @builder.raw_result
|
591
580
|
end
|
592
581
|
|
593
582
|
def test_block_raw4
|
594
583
|
@builder.raw("|idgxml <>!\"\\n& ")
|
595
|
-
expect
|
596
|
-
<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">|idgxml <>!\"
|
597
|
-
&
|
598
|
-
EOS
|
584
|
+
expect = %Q(<?xml version="1.0" encoding="UTF-8"?>\n<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">|idgxml <>!\"\n& )
|
599
585
|
assert_equal expect.chomp, @builder.raw_result
|
600
586
|
end
|
601
587
|
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
require 'review'
|
4
|
+
require 'review/book/image_finder'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
class ImageFinderTest < Test::Unit::TestCase
|
8
|
+
include ReVIEW
|
9
|
+
|
10
|
+
def setup
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_find_path_pattern1
|
14
|
+
dir = Dir.mktmpdir
|
15
|
+
begin
|
16
|
+
path = dir+"/builder/ch01/foo.jpg"
|
17
|
+
FileUtils.mkdir_p(File.dirname(path))
|
18
|
+
FileUtils.touch(path)
|
19
|
+
|
20
|
+
finder = ReVIEW::Book::ImageFinder.new(dir, "ch01", "builder", [".jpg"])
|
21
|
+
assert_equal(path, finder.find_path("foo"))
|
22
|
+
ensure
|
23
|
+
FileUtils.remove_entry_secure dir
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_find_path_pattern2
|
28
|
+
dir = Dir.mktmpdir
|
29
|
+
begin
|
30
|
+
path = dir+"/builder/ch01-foo.jpg"
|
31
|
+
FileUtils.mkdir_p(File.dirname(path))
|
32
|
+
FileUtils.touch(path)
|
33
|
+
|
34
|
+
finder = ReVIEW::Book::ImageFinder.new(dir, "ch01", "builder", [".jpg"])
|
35
|
+
assert_equal(path, finder.find_path("foo"))
|
36
|
+
ensure
|
37
|
+
FileUtils.remove_entry_secure dir
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_find_path_pattern3
|
42
|
+
dir = Dir.mktmpdir
|
43
|
+
begin
|
44
|
+
path = dir+"/builder/foo.jpg"
|
45
|
+
FileUtils.mkdir_p(File.dirname(path))
|
46
|
+
FileUtils.touch(path)
|
47
|
+
|
48
|
+
finder = ReVIEW::Book::ImageFinder.new(dir, "ch01", "builder", [".jpg"])
|
49
|
+
assert_equal(path, finder.find_path("foo"))
|
50
|
+
ensure
|
51
|
+
FileUtils.remove_entry_secure dir
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_find_path_pattern4
|
56
|
+
dir = Dir.mktmpdir
|
57
|
+
begin
|
58
|
+
path = dir+"/ch01/foo.jpg"
|
59
|
+
FileUtils.mkdir_p(File.dirname(path))
|
60
|
+
FileUtils.touch(path)
|
61
|
+
|
62
|
+
finder = ReVIEW::Book::ImageFinder.new(dir, "ch01", "builder", [".jpg"])
|
63
|
+
assert_equal(path, finder.find_path("foo"))
|
64
|
+
ensure
|
65
|
+
FileUtils.remove_entry_secure dir
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_find_path_pattern5
|
70
|
+
dir = Dir.mktmpdir
|
71
|
+
begin
|
72
|
+
path = dir+"/ch01-foo.jpg"
|
73
|
+
FileUtils.mkdir_p(File.dirname(path))
|
74
|
+
FileUtils.touch(path)
|
75
|
+
|
76
|
+
finder = ReVIEW::Book::ImageFinder.new(dir, "ch01", "builder", [".jpg"])
|
77
|
+
assert_equal(path, finder.find_path("foo"))
|
78
|
+
ensure
|
79
|
+
FileUtils.remove_entry_secure dir
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/test/test_inaobuilder.rb
CHANGED
data/test/test_latexbuilder.rb
CHANGED
@@ -10,16 +10,16 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def setup
|
12
12
|
@builder = LATEXBuilder.new()
|
13
|
-
@
|
13
|
+
@config = {
|
14
14
|
"secnolevel" => 2, # for IDGXMLBuilder, EPUBBuilder
|
15
15
|
"toclevel" => 2,
|
16
16
|
"inencoding" => "UTF-8",
|
17
17
|
"outencoding" => "UTF-8",
|
18
18
|
"stylesheet" => nil, # for EPUBBuilder
|
19
19
|
}
|
20
|
-
ReVIEW.book.
|
20
|
+
ReVIEW.book.config = @config
|
21
21
|
@compiler = ReVIEW::Compiler.new(@builder)
|
22
|
-
@chapter = Book::Chapter.new(nil, 1, 'chap1', nil, StringIO.new)
|
22
|
+
@chapter = Book::Chapter.new(Book::Base.new(nil), 1, 'chap1', nil, StringIO.new)
|
23
23
|
location = Location.new(nil, nil)
|
24
24
|
@builder.bind(@compiler, @chapter, location)
|
25
25
|
end
|
@@ -30,7 +30,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_headline_level1_without_secno
|
33
|
-
@
|
33
|
+
@config["secnolevel"] = 0
|
34
34
|
@builder.headline(1,"test","this is test.")
|
35
35
|
assert_equal %Q|\\chapter*{this is test.}\n\\addcontentsline{toc}{chapter}{this is test.}\n\\label{chap:chap1}\n|, @builder.result
|
36
36
|
end
|
@@ -42,19 +42,19 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
42
42
|
|
43
43
|
def test_headline_level2
|
44
44
|
@builder.headline(2,"test","this is test.")
|
45
|
-
assert_equal %Q|\\section{this is test.}\n|, @builder.result
|
45
|
+
assert_equal %Q|\\section{this is test.}\n\\label{sec:1-1}\n|, @builder.result
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_headline_level3
|
49
49
|
@builder.headline(3,"test","this is test.")
|
50
|
-
assert_equal %Q|\\subsection*{this is test.}\n|, @builder.result
|
50
|
+
assert_equal %Q|\\subsection*{this is test.}\n\\label{sec:1-0-1}\n|, @builder.result
|
51
51
|
end
|
52
52
|
|
53
53
|
|
54
54
|
def test_headline_level3_with_secno
|
55
|
-
@
|
55
|
+
@config["secnolevel"] = 3
|
56
56
|
@builder.headline(3,"test","this is test.")
|
57
|
-
assert_equal %Q|\\subsection{this is test.}\n|, @builder.result
|
57
|
+
assert_equal %Q|\\subsection{this is test.}\n\\label{sec:1-0-1}\n|, @builder.result
|
58
58
|
end
|
59
59
|
|
60
60
|
def test_label
|
@@ -97,11 +97,6 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
97
97
|
assert_equal %Q|abc\\\\\ndef|, ret
|
98
98
|
end
|
99
99
|
|
100
|
-
def test_inline_u
|
101
|
-
ret = @builder.compile_inline("abc@<u>{def}ghi")
|
102
|
-
assert_equal %Q|abc\\Underline{def}ghi|, ret
|
103
|
-
end
|
104
|
-
|
105
100
|
def test_inline_i
|
106
101
|
ret = @builder.compile_inline("abc@<i>{def}ghi")
|
107
102
|
assert_equal %Q|abc\\textit{def}ghi|, ret
|
@@ -192,6 +187,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
192
187
|
Book::HeadlineIndex.new(items, self)
|
193
188
|
end
|
194
189
|
|
190
|
+
@config["secnolevel"] = 3
|
195
191
|
ret = @builder.compile_inline("test @<hd>{chap1|test} test2")
|
196
192
|
assert_equal %Q|test 「1.1.1 te\\textunderscore{}st」 test2|, ret
|
197
193
|
end
|
@@ -206,6 +202,11 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
206
202
|
assert_equal %Q|test \\UTF{2460} test2|, ret
|
207
203
|
end
|
208
204
|
|
205
|
+
def test_inline_idx
|
206
|
+
ret = @builder.compile_inline("@<idx>{__TEST%$}, @<hidx>{__TEST%$}")
|
207
|
+
assert_equal %Q|\\textunderscore{}\\textunderscore{}TEST\\%\\textdollar{}\\index{__TEST%$}, \\index{__TEST%$}|, ret
|
208
|
+
end
|
209
|
+
|
209
210
|
def test_jis_x_0201_kana
|
210
211
|
ret = @builder.compile_inline("foo・カンジ、テスト")
|
211
212
|
assert_equal %Q|foo\\aj半角{・}\\aj半角{カ}\\aj半角{ン}\\aj半角{シ}\\aj半角{゛}\\aj半角{、}テスト|, ret
|
@@ -295,7 +296,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
295
296
|
def test_image
|
296
297
|
def @chapter.image(id)
|
297
298
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
298
|
-
item.instance_eval{@
|
299
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
299
300
|
item
|
300
301
|
end
|
301
302
|
|
@@ -306,7 +307,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
306
307
|
def test_image_with_metric
|
307
308
|
def @chapter.image(id)
|
308
309
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
309
|
-
item.instance_eval{@
|
310
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
310
311
|
item
|
311
312
|
end
|
312
313
|
|
@@ -317,7 +318,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
317
318
|
def test_image_with_metric2
|
318
319
|
def @chapter.image(id)
|
319
320
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
320
|
-
item.instance_eval{@
|
321
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
321
322
|
item
|
322
323
|
end
|
323
324
|
|
@@ -328,7 +329,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
328
329
|
def test_indepimage
|
329
330
|
def @chapter.image(id)
|
330
331
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
331
|
-
item.instance_eval{@
|
332
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
332
333
|
item
|
333
334
|
end
|
334
335
|
|
@@ -339,7 +340,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
339
340
|
def test_indepimage_without_caption
|
340
341
|
def @chapter.image(id)
|
341
342
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
342
|
-
item.instance_eval{@
|
343
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
343
344
|
item
|
344
345
|
end
|
345
346
|
|
@@ -351,7 +352,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
351
352
|
def test_indepimage_with_metric
|
352
353
|
def @chapter.image(id)
|
353
354
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
354
|
-
item.instance_eval{@
|
355
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
355
356
|
item
|
356
357
|
end
|
357
358
|
|
@@ -362,7 +363,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
362
363
|
def test_indepimage_with_metric2
|
363
364
|
def @chapter.image(id)
|
364
365
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
365
|
-
item.instance_eval{@
|
366
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
366
367
|
item
|
367
368
|
end
|
368
369
|
|
@@ -373,7 +374,7 @@ class LATEXBuidlerTest < Test::Unit::TestCase
|
|
373
374
|
def test_indepimage_without_caption_but_with_metric
|
374
375
|
def @chapter.image(id)
|
375
376
|
item = Book::ImageIndex::Item.new("sampleimg",1)
|
376
|
-
item.instance_eval{@
|
377
|
+
item.instance_eval{@path="./images/chap1-sampleimg.png"}
|
377
378
|
item
|
378
379
|
end
|
379
380
|
|
@@ -429,19 +430,24 @@ EOS
|
|
429
430
|
expect =<<-EOS
|
430
431
|
|
431
432
|
\\begin{reviewcolumn}
|
433
|
+
\\hypertarget{column:chap1:1}{}
|
432
434
|
\\reviewcolumnhead{}{prev column}
|
435
|
+
\\addcontentsline{toc}{subsection}{prev column}
|
433
436
|
|
434
437
|
inside prev column
|
435
438
|
|
436
439
|
\\end{reviewcolumn}
|
437
440
|
|
438
441
|
\\begin{reviewcolumn}
|
442
|
+
\\hypertarget{column:chap1:2}{}
|
439
443
|
\\reviewcolumnhead{}{test}
|
444
|
+
\\addcontentsline{toc}{subsection}{test}
|
440
445
|
|
441
446
|
inside column
|
442
447
|
|
443
448
|
\\end{reviewcolumn}
|
444
449
|
EOS
|
450
|
+
@config["toclevel"] = 3
|
445
451
|
assert_equal expect, column_helper(review)
|
446
452
|
end
|
447
453
|
|
@@ -456,6 +462,7 @@ EOS
|
|
456
462
|
expect =<<-EOS
|
457
463
|
|
458
464
|
\\begin{reviewcolumn}
|
465
|
+
\\hypertarget{column:chap1:1}{}
|
459
466
|
\\reviewcolumnhead{}{test}
|
460
467
|
|
461
468
|
inside column
|
@@ -463,8 +470,10 @@ inside column
|
|
463
470
|
\\end{reviewcolumn}
|
464
471
|
|
465
472
|
\\subsection*{next level}
|
473
|
+
\\label{sec:1-0-1}
|
466
474
|
EOS
|
467
475
|
|
476
|
+
@config["toclevel"] = 1
|
468
477
|
assert_equal expect, column_helper(review)
|
469
478
|
end
|
470
479
|
|
@@ -638,44 +647,31 @@ EOS
|
|
638
647
|
|
639
648
|
def test_block_raw0
|
640
649
|
@builder.raw("<>!\"\\n& ")
|
641
|
-
expect
|
642
|
-
<>!"
|
643
|
-
&
|
644
|
-
EOS
|
650
|
+
expect = %Q(<>!\"\n& )
|
645
651
|
assert_equal expect.chomp, @builder.raw_result
|
646
652
|
end
|
647
653
|
|
648
654
|
def test_block_raw1
|
649
655
|
@builder.raw("|latex|<>!\"\\n& ")
|
650
|
-
expect
|
651
|
-
<>!"
|
652
|
-
&
|
653
|
-
EOS
|
656
|
+
expect = %Q(<>!\"\n& )
|
654
657
|
assert_equal expect.chomp, @builder.raw_result
|
655
658
|
end
|
656
659
|
|
657
660
|
def test_block_raw2
|
658
661
|
@builder.raw("|html, latex|<>!\"\\n& ")
|
659
|
-
expect
|
660
|
-
<>!\"
|
661
|
-
&
|
662
|
-
EOS
|
662
|
+
expect = %Q(<>!\"\n& )
|
663
663
|
assert_equal expect.chomp, @builder.raw_result
|
664
664
|
end
|
665
665
|
|
666
666
|
def test_block_raw3
|
667
667
|
@builder.raw("|html, idgxml|<>!\"\\n& ")
|
668
|
-
expect
|
669
|
-
EOS
|
668
|
+
expect = ''
|
670
669
|
assert_equal expect.chomp, @builder.raw_result
|
671
670
|
end
|
672
671
|
|
673
672
|
def test_block_raw4
|
674
673
|
@builder.raw("|latex <>!\"\\n& ")
|
675
|
-
expect
|
676
|
-
|latex <>!\"
|
677
|
-
&
|
678
|
-
EOS
|
674
|
+
expect = %Q(|latex <>!\"\n& )
|
679
675
|
assert_equal expect.chomp, @builder.raw_result
|
680
676
|
end
|
681
677
|
|