review 5.5.0 → 5.7.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/.github/workflows/rubocop.yml +31 -0
- data/.github/workflows/ruby-tex.yml +1 -1
- data/.github/workflows/ruby-win.yml +1 -1
- data/.github/workflows/ruby.yml +2 -2
- data/.rubocop.yml +13 -2
- data/NEWS.ja.md +40 -0
- data/NEWS.md +39 -0
- data/README.md +1 -1
- data/doc/format.ja.md +70 -33
- data/doc/format.md +69 -34
- data/doc/quickstart.ja.md +7 -1
- data/doc/quickstart.md +7 -1
- data/lib/review/book/base.rb +1 -1
- data/lib/review/builder.rb +6 -10
- data/lib/review/epubmaker/epubcommon.rb +13 -7
- data/lib/review/epubmaker/epubv2.rb +0 -5
- data/lib/review/epubmaker/epubv3.rb +9 -1
- data/lib/review/epubmaker/producer.rb +2 -3
- data/lib/review/epubmaker.rb +2 -4
- data/lib/review/htmlbuilder.rb +2 -2
- data/lib/review/i18n.yml +24 -2
- data/lib/review/idgxmlbuilder.rb +29 -10
- data/lib/review/idgxmlmaker.rb +11 -1
- data/lib/review/img_math.rb +9 -2
- data/lib/review/init.rb +10 -5
- data/lib/review/latexbuilder.rb +2 -2
- data/lib/review/lineinput.rb +2 -2
- data/lib/review/makerhelper.rb +2 -2
- data/lib/review/pdfmaker.rb +3 -5
- data/lib/review/update.rb +3 -7
- data/lib/review/version.rb +1 -1
- data/lib/review/yamlloader.rb +0 -3
- data/review.gemspec +3 -3
- data/samples/syntax-book/Gemfile +1 -1
- data/templates/latex/config.erb +6 -1
- data/templates/latex/review-jlreq/review-base.sty +11 -8
- data/templates/latex/review-jsbook/review-base.sty +15 -11
- data/templates/opf/epubv2.opf.erb +2 -0
- data/templates/opf/epubv3.opf.erb +2 -0
- data/templates/opf/opf_manifest_epubv2.opf.erb +2 -0
- data/templates/opf/opf_manifest_epubv3.opf.erb +2 -0
- data/templates/opf/opf_tocx_epubv3.opf.erb +2 -0
- metadata +24 -139
- data/test/assets/black.eps +0 -280
- data/test/assets/fit.png +0 -0
- data/test/assets/header_listener.html +0 -35
- 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/large.gif +0 -0
- data/test/assets/large.jpg +0 -0
- data/test/assets/large.png +0 -0
- data/test/assets/large.svg +0 -65
- data/test/assets/syntax_book_index_detail.txt +0 -60
- data/test/assets/test.xml.erb +0 -3
- data/test/assets/test_template.tex +0 -179
- data/test/assets/test_template_backmatter.tex +0 -190
- data/test/book_test_helper.rb +0 -44
- data/test/run_test.rb +0 -12
- data/test/test_book.rb +0 -588
- data/test/test_book_chapter.rb +0 -329
- data/test/test_book_part.rb +0 -53
- data/test/test_builder.rb +0 -126
- data/test/test_catalog.rb +0 -174
- data/test/test_catalog_converter_cmd.rb +0 -73
- data/test/test_compiler.rb +0 -52
- data/test/test_configure.rb +0 -91
- data/test/test_converter.rb +0 -21
- data/test/test_epub3maker.rb +0 -733
- data/test/test_epubmaker.rb +0 -931
- data/test/test_epubmaker_cmd.rb +0 -56
- data/test/test_extentions_hash.rb +0 -66
- data/test/test_helper.rb +0 -62
- data/test/test_htmlbuilder.rb +0 -3312
- data/test/test_htmltoc.rb +0 -29
- data/test/test_htmlutils.rb +0 -43
- data/test/test_i18n.rb +0 -300
- data/test/test_idgxmlbuilder.rb +0 -1487
- data/test/test_idgxmlmaker_cmd.rb +0 -50
- data/test/test_image_finder.rb +0 -81
- data/test/test_img_math.rb +0 -120
- data/test/test_index.rb +0 -287
- data/test/test_indexbuilder.rb +0 -52
- data/test/test_latexbuilder.rb +0 -2964
- data/test/test_latexbuilder_v2.rb +0 -1654
- data/test/test_lineinput.rb +0 -104
- data/test/test_location.rb +0 -30
- data/test/test_logger.rb +0 -33
- data/test/test_makerhelper.rb +0 -44
- data/test/test_markdownbuilder.rb +0 -371
- data/test/test_md2inaobuilder.rb +0 -90
- data/test/test_pdfmaker.rb +0 -354
- data/test/test_pdfmaker_cmd.rb +0 -130
- data/test/test_plaintextbuilder.rb +0 -1211
- data/test/test_preprocessor.rb +0 -196
- data/test/test_review_ext.rb +0 -30
- data/test/test_reviewheaderlistener.rb +0 -49
- data/test/test_rstbuilder.rb +0 -616
- data/test/test_sec_counter.rb +0 -156
- data/test/test_template.rb +0 -33
- data/test/test_textmaker_cmd.rb +0 -58
- data/test/test_textutils.rb +0 -187
- data/test/test_tocprinter.rb +0 -46
- data/test/test_topbuilder.rb +0 -1298
- data/test/test_update.rb +0 -473
- data/test/test_webtocprinter.rb +0 -195
- data/test/test_yamlloader.rb +0 -186
- data/test/test_zip_exporter.rb +0 -106
data/test/test_yamlloader.rb
DELETED
@@ -1,186 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'review/yamlloader'
|
3
|
-
require 'review/extentions'
|
4
|
-
require 'tmpdir'
|
5
|
-
|
6
|
-
class YAMLLoaderTest < Test::Unit::TestCase
|
7
|
-
def setup
|
8
|
-
@loader = ReVIEW::YAMLLoader.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_load_file
|
15
|
-
Dir.mktmpdir do |dir|
|
16
|
-
yaml_file = File.join(dir, 'test.yml')
|
17
|
-
File.write(yaml_file, <<EOB
|
18
|
-
foo:
|
19
|
-
bar: "test"
|
20
|
-
EOB
|
21
|
-
)
|
22
|
-
yaml = @loader.load_file(yaml_file)
|
23
|
-
assert_equal yaml, 'foo' => { 'bar' => 'test' }
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_load_file_inherit
|
28
|
-
Dir.mktmpdir do |dir|
|
29
|
-
yaml_file = File.join(dir, 'test.yml')
|
30
|
-
yaml_file2 = File.join(dir, 'test2.yml')
|
31
|
-
File.write(yaml_file, <<EOB
|
32
|
-
k0: 2
|
33
|
-
k1:
|
34
|
-
name: "test"
|
35
|
-
array: [{name: "N", val: "V"}]
|
36
|
-
inherit: ["test2.yml"]
|
37
|
-
EOB
|
38
|
-
)
|
39
|
-
File.write(yaml_file2, <<EOB
|
40
|
-
k1:
|
41
|
-
name: "test2"
|
42
|
-
name2: "value2"
|
43
|
-
array: [{name: "shoudoverridden_name", val: "shouldoverridden_val"}]
|
44
|
-
k2: "3"
|
45
|
-
EOB
|
46
|
-
)
|
47
|
-
yaml = @loader.load_file(yaml_file)
|
48
|
-
assert_equal({ 'k0' => 2,
|
49
|
-
'k1' => { 'name' => 'test', 'name2' => 'value2',
|
50
|
-
'array' => [{ 'name' => 'N', 'val' => 'V' }] },
|
51
|
-
'k2' => '3' },
|
52
|
-
yaml)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_load_file_inherit2
|
57
|
-
Dir.mktmpdir do |dir|
|
58
|
-
yaml_file = File.join(dir, 'test.yml')
|
59
|
-
yaml_file2 = File.join(dir, 'test2.yml')
|
60
|
-
yaml_file3 = File.join(dir, 'test3.yml')
|
61
|
-
File.write(yaml_file, <<EOB
|
62
|
-
k0: 2
|
63
|
-
k1:
|
64
|
-
name1: "value1-1"
|
65
|
-
inherit: ["test3.yml", "test2.yml"]
|
66
|
-
EOB
|
67
|
-
)
|
68
|
-
File.write(yaml_file2, <<EOB
|
69
|
-
k1:
|
70
|
-
name1: "value1-2"
|
71
|
-
name2: "value2-2"
|
72
|
-
k2: "B"
|
73
|
-
EOB
|
74
|
-
)
|
75
|
-
File.write(yaml_file3, <<EOB
|
76
|
-
k1:
|
77
|
-
name1: "value1-3"
|
78
|
-
name2: "value2-3"
|
79
|
-
name3: "value3-3"
|
80
|
-
k3: "C"
|
81
|
-
EOB
|
82
|
-
)
|
83
|
-
yaml = @loader.load_file(yaml_file)
|
84
|
-
assert_equal({
|
85
|
-
'k0' => 2,
|
86
|
-
'k1' => { 'name1' => 'value1-1', 'name2' => 'value2-2', 'name3' => 'value3-3' },
|
87
|
-
'k2' => 'B',
|
88
|
-
'k3' => 'C'
|
89
|
-
},
|
90
|
-
yaml)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_load_file_inherit3
|
95
|
-
Dir.mktmpdir do |dir|
|
96
|
-
yaml_file1 = File.join(dir, 'test1.yml')
|
97
|
-
yaml_file2 = File.join(dir, 'test2.yml')
|
98
|
-
yaml_file3 = File.join(dir, 'test3.yml')
|
99
|
-
yaml_file4 = File.join(dir, 'test4.yml')
|
100
|
-
yaml_file5 = File.join(dir, 'test5.yml')
|
101
|
-
yaml_file6 = File.join(dir, 'test6.yml')
|
102
|
-
yaml_file7 = File.join(dir, 'test7.yml')
|
103
|
-
File.write(yaml_file7, <<EOB
|
104
|
-
k1:
|
105
|
-
name1: "N7"
|
106
|
-
inherit: ["test3.yml", "test6.yml"]
|
107
|
-
EOB
|
108
|
-
)
|
109
|
-
File.write(yaml_file6, <<EOB
|
110
|
-
k1:
|
111
|
-
name1: "N6"
|
112
|
-
name2: "N6"
|
113
|
-
inherit: ["test4.yml", "test5.yml"]
|
114
|
-
EOB
|
115
|
-
)
|
116
|
-
File.write(yaml_file5, <<EOB
|
117
|
-
k1:
|
118
|
-
name1: "N5"
|
119
|
-
name2: "N5"
|
120
|
-
name3: "N5"
|
121
|
-
EOB
|
122
|
-
)
|
123
|
-
File.write(yaml_file4, <<EOB
|
124
|
-
k1:
|
125
|
-
name1: "N4"
|
126
|
-
name2: "N4"
|
127
|
-
name3: "N4"
|
128
|
-
name4: "N4"
|
129
|
-
EOB
|
130
|
-
)
|
131
|
-
File.write(yaml_file3, <<EOB
|
132
|
-
k1:
|
133
|
-
name1: "N3"
|
134
|
-
name2: "N3"
|
135
|
-
name3: "N3"
|
136
|
-
name4: "N3"
|
137
|
-
name5: "N3"
|
138
|
-
inherit: ["test1.yml", "test2.yml"]
|
139
|
-
EOB
|
140
|
-
)
|
141
|
-
File.write(yaml_file2, <<EOB
|
142
|
-
k1:
|
143
|
-
name1: "N2"
|
144
|
-
name2: "N2"
|
145
|
-
name3: "N2"
|
146
|
-
name4: "N2"
|
147
|
-
name5: "N2"
|
148
|
-
name6: "N2"
|
149
|
-
EOB
|
150
|
-
)
|
151
|
-
File.write(yaml_file1, <<EOB
|
152
|
-
k1:
|
153
|
-
name1: "N1"
|
154
|
-
name2: "N1"
|
155
|
-
name3: "N1"
|
156
|
-
name4: "N1"
|
157
|
-
name5: "N1"
|
158
|
-
name6: "N1"
|
159
|
-
name7: "N1"
|
160
|
-
EOB
|
161
|
-
)
|
162
|
-
|
163
|
-
yaml = @loader.load_file(yaml_file7)
|
164
|
-
assert_equal({ 'k1' => { 'name1' => 'N7',
|
165
|
-
'name2' => 'N6',
|
166
|
-
'name3' => 'N5',
|
167
|
-
'name4' => 'N4',
|
168
|
-
'name5' => 'N3',
|
169
|
-
'name6' => 'N2',
|
170
|
-
'name7' => 'N1' } },
|
171
|
-
yaml)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
def test_empty_file
|
176
|
-
Dir.mktmpdir do |dir|
|
177
|
-
yaml_file = File.join(dir, 'test.yml')
|
178
|
-
File.write(yaml_file, <<EOB
|
179
|
-
#
|
180
|
-
EOB
|
181
|
-
)
|
182
|
-
e = assert_raise(RuntimeError) { @loader.load_file(yaml_file) }
|
183
|
-
assert_match('test.yml is malformed.', e.message)
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
data/test/test_zip_exporter.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'review/epubmaker'
|
3
|
-
require 'review/epubmaker/zip_exporter'
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
class ZipExporterTest < Test::Unit::TestCase
|
7
|
-
def setup
|
8
|
-
@tmpdir = Dir.mktmpdir
|
9
|
-
@epubdir = File.join(@tmpdir, 'epubdir')
|
10
|
-
FileUtils.mkdir_p(File.join(@epubdir, 'META-INF'))
|
11
|
-
FileUtils.mkdir_p(File.join(@epubdir, 'OEBPS'))
|
12
|
-
File.write(File.join(@epubdir, 'mimetype'), 'application/epub+zip')
|
13
|
-
|
14
|
-
container_xml = <<-EOB
|
15
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
16
|
-
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
|
17
|
-
<rootfiles>
|
18
|
-
<rootfile full-path="OEBPS/book.opf" media-type="application/oebps-package+xml" />
|
19
|
-
</rootfiles>
|
20
|
-
</container>
|
21
|
-
EOB
|
22
|
-
|
23
|
-
book_opf = <<-EOB
|
24
|
-
<?xml version="1.0"?>
|
25
|
-
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookID" version="2.0">
|
26
|
-
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
|
27
|
-
<dc:title>sample epub</dc:title>
|
28
|
-
<dc:creator opf:role="aut">AUTHOR</dc:creator>
|
29
|
-
<dc:language>ja</dc:language>
|
30
|
-
<dc:identifier id="BookID" opf:scheme="URL">http://example.com/epub/sample/sample1.epub</dc:identifier>
|
31
|
-
</metadata>
|
32
|
-
<manifest>
|
33
|
-
<item id="ch1.xhtml" href="OEBPS/ch1.xhtml" media-type="application/xhtml+xml"/>
|
34
|
-
</manifest>
|
35
|
-
<spine toc="ncx">
|
36
|
-
<itemref idref="ch1.xhtml"/>
|
37
|
-
</spine>
|
38
|
-
<guide>
|
39
|
-
<reference type="cover" title="Cover Page" href="OEPBS/ch1.xhtml"/>
|
40
|
-
</guide>
|
41
|
-
</package>
|
42
|
-
EOB
|
43
|
-
|
44
|
-
ch1_xhtml = <<-EOB
|
45
|
-
<html>
|
46
|
-
<head>
|
47
|
-
<title>test</title>
|
48
|
-
</head>
|
49
|
-
<body>
|
50
|
-
<p>hello, world!</p>
|
51
|
-
</body>
|
52
|
-
</html>
|
53
|
-
EOB
|
54
|
-
|
55
|
-
File.write(File.join(@epubdir, 'META-INF/container.xml'), container_xml)
|
56
|
-
File.write(File.join(@epubdir, 'OEBPS/book.opf'), book_opf)
|
57
|
-
File.write(File.join(@epubdir, 'OEBPS/ch1.xhtml'), ch1_xhtml)
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_export_zipcmd
|
61
|
-
if Gem.win_platform?
|
62
|
-
## skip this test
|
63
|
-
return
|
64
|
-
end
|
65
|
-
|
66
|
-
config = { 'epubmaker' => {} }
|
67
|
-
epubfile = File.join(@tmpdir, 'test.epub')
|
68
|
-
exporter = ReVIEW::EPUBMaker::ZipExporter.new(@epubdir, config)
|
69
|
-
exporter.export_zip_extcmd(epubfile)
|
70
|
-
assert_true(File.exist?(epubfile))
|
71
|
-
|
72
|
-
if defined?(Zip)
|
73
|
-
File.open(epubfile) do |f|
|
74
|
-
::Zip::InputStream.open(f) do |fzip|
|
75
|
-
## get first entry
|
76
|
-
entry = fzip.get_next_entry
|
77
|
-
assert_equal 'mimetype', entry.name
|
78
|
-
assert_equal 'application/epub+zip', fzip.read
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def test_export_rubyzip
|
85
|
-
return unless defined?(Zip) ## skip test
|
86
|
-
|
87
|
-
config = { 'epubmaker' => {} }
|
88
|
-
epubfile = File.join(@tmpdir, 'test.epub')
|
89
|
-
exporter = ReVIEW::EPUBMaker::ZipExporter.new(@epubdir, config)
|
90
|
-
exporter.export_zip_rubyzip(epubfile)
|
91
|
-
assert_true(File.exist?(epubfile))
|
92
|
-
|
93
|
-
File.open(epubfile) do |f|
|
94
|
-
::Zip::InputStream.open(f) do |fzip|
|
95
|
-
## get first entry
|
96
|
-
entry = fzip.get_next_entry
|
97
|
-
assert_equal 'mimetype', entry.name
|
98
|
-
assert_equal 'application/epub+zip', fzip.read
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def teardown
|
104
|
-
FileUtils.remove_entry_secure(@tmpdir)
|
105
|
-
end
|
106
|
-
end
|