review 5.5.0 → 5.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yml +31 -0
  3. data/.github/workflows/ruby-tex.yml +1 -1
  4. data/.github/workflows/ruby-win.yml +1 -1
  5. data/.github/workflows/ruby.yml +2 -2
  6. data/.rubocop.yml +13 -2
  7. data/NEWS.ja.md +40 -0
  8. data/NEWS.md +39 -0
  9. data/README.md +1 -1
  10. data/doc/format.ja.md +70 -33
  11. data/doc/format.md +69 -34
  12. data/doc/quickstart.ja.md +7 -1
  13. data/doc/quickstart.md +7 -1
  14. data/lib/review/book/base.rb +1 -1
  15. data/lib/review/builder.rb +6 -10
  16. data/lib/review/epubmaker/epubcommon.rb +13 -7
  17. data/lib/review/epubmaker/epubv2.rb +0 -5
  18. data/lib/review/epubmaker/epubv3.rb +9 -1
  19. data/lib/review/epubmaker/producer.rb +2 -3
  20. data/lib/review/epubmaker.rb +2 -4
  21. data/lib/review/htmlbuilder.rb +2 -2
  22. data/lib/review/i18n.yml +24 -2
  23. data/lib/review/idgxmlbuilder.rb +29 -10
  24. data/lib/review/idgxmlmaker.rb +11 -1
  25. data/lib/review/img_math.rb +9 -2
  26. data/lib/review/init.rb +10 -5
  27. data/lib/review/latexbuilder.rb +2 -2
  28. data/lib/review/lineinput.rb +2 -2
  29. data/lib/review/makerhelper.rb +2 -2
  30. data/lib/review/pdfmaker.rb +3 -5
  31. data/lib/review/update.rb +3 -7
  32. data/lib/review/version.rb +1 -1
  33. data/lib/review/yamlloader.rb +0 -3
  34. data/review.gemspec +3 -3
  35. data/samples/syntax-book/Gemfile +1 -1
  36. data/templates/latex/config.erb +6 -1
  37. data/templates/latex/review-jlreq/review-base.sty +11 -8
  38. data/templates/latex/review-jsbook/review-base.sty +15 -11
  39. data/templates/opf/epubv2.opf.erb +2 -0
  40. data/templates/opf/epubv3.opf.erb +2 -0
  41. data/templates/opf/opf_manifest_epubv2.opf.erb +2 -0
  42. data/templates/opf/opf_manifest_epubv3.opf.erb +2 -0
  43. data/templates/opf/opf_tocx_epubv3.opf.erb +2 -0
  44. metadata +24 -139
  45. data/test/assets/black.eps +0 -280
  46. data/test/assets/fit.png +0 -0
  47. data/test/assets/header_listener.html +0 -35
  48. data/test/assets/img_math/img1.png +0 -0
  49. data/test/assets/img_math/img2.png +0 -0
  50. data/test/assets/img_math/img3.png +0 -0
  51. data/test/assets/large.gif +0 -0
  52. data/test/assets/large.jpg +0 -0
  53. data/test/assets/large.png +0 -0
  54. data/test/assets/large.svg +0 -65
  55. data/test/assets/syntax_book_index_detail.txt +0 -60
  56. data/test/assets/test.xml.erb +0 -3
  57. data/test/assets/test_template.tex +0 -179
  58. data/test/assets/test_template_backmatter.tex +0 -190
  59. data/test/book_test_helper.rb +0 -44
  60. data/test/run_test.rb +0 -12
  61. data/test/test_book.rb +0 -588
  62. data/test/test_book_chapter.rb +0 -329
  63. data/test/test_book_part.rb +0 -53
  64. data/test/test_builder.rb +0 -126
  65. data/test/test_catalog.rb +0 -174
  66. data/test/test_catalog_converter_cmd.rb +0 -73
  67. data/test/test_compiler.rb +0 -52
  68. data/test/test_configure.rb +0 -91
  69. data/test/test_converter.rb +0 -21
  70. data/test/test_epub3maker.rb +0 -733
  71. data/test/test_epubmaker.rb +0 -931
  72. data/test/test_epubmaker_cmd.rb +0 -56
  73. data/test/test_extentions_hash.rb +0 -66
  74. data/test/test_helper.rb +0 -62
  75. data/test/test_htmlbuilder.rb +0 -3312
  76. data/test/test_htmltoc.rb +0 -29
  77. data/test/test_htmlutils.rb +0 -43
  78. data/test/test_i18n.rb +0 -300
  79. data/test/test_idgxmlbuilder.rb +0 -1487
  80. data/test/test_idgxmlmaker_cmd.rb +0 -50
  81. data/test/test_image_finder.rb +0 -81
  82. data/test/test_img_math.rb +0 -120
  83. data/test/test_index.rb +0 -287
  84. data/test/test_indexbuilder.rb +0 -52
  85. data/test/test_latexbuilder.rb +0 -2964
  86. data/test/test_latexbuilder_v2.rb +0 -1654
  87. data/test/test_lineinput.rb +0 -104
  88. data/test/test_location.rb +0 -30
  89. data/test/test_logger.rb +0 -33
  90. data/test/test_makerhelper.rb +0 -44
  91. data/test/test_markdownbuilder.rb +0 -371
  92. data/test/test_md2inaobuilder.rb +0 -90
  93. data/test/test_pdfmaker.rb +0 -354
  94. data/test/test_pdfmaker_cmd.rb +0 -130
  95. data/test/test_plaintextbuilder.rb +0 -1211
  96. data/test/test_preprocessor.rb +0 -196
  97. data/test/test_review_ext.rb +0 -30
  98. data/test/test_reviewheaderlistener.rb +0 -49
  99. data/test/test_rstbuilder.rb +0 -616
  100. data/test/test_sec_counter.rb +0 -156
  101. data/test/test_template.rb +0 -33
  102. data/test/test_textmaker_cmd.rb +0 -58
  103. data/test/test_textutils.rb +0 -187
  104. data/test/test_tocprinter.rb +0 -46
  105. data/test/test_topbuilder.rb +0 -1298
  106. data/test/test_update.rb +0 -473
  107. data/test/test_webtocprinter.rb +0 -195
  108. data/test/test_yamlloader.rb +0 -186
  109. data/test/test_zip_exporter.rb +0 -106
@@ -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
@@ -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