review 5.6.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.
Files changed (100) 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 +22 -0
  8. data/NEWS.md +21 -0
  9. data/README.md +1 -1
  10. data/lib/review/book/base.rb +1 -1
  11. data/lib/review/builder.rb +4 -8
  12. data/lib/review/epubmaker/epubcommon.rb +13 -7
  13. data/lib/review/epubmaker/epubv2.rb +0 -5
  14. data/lib/review/epubmaker/epubv3.rb +9 -1
  15. data/lib/review/epubmaker/producer.rb +2 -3
  16. data/lib/review/epubmaker.rb +2 -4
  17. data/lib/review/htmlbuilder.rb +2 -2
  18. data/lib/review/idgxmlbuilder.rb +4 -3
  19. data/lib/review/img_math.rb +9 -2
  20. data/lib/review/init.rb +3 -3
  21. data/lib/review/latexbuilder.rb +1 -1
  22. data/lib/review/lineinput.rb +2 -2
  23. data/lib/review/makerhelper.rb +2 -2
  24. data/lib/review/pdfmaker.rb +3 -5
  25. data/lib/review/update.rb +3 -7
  26. data/lib/review/version.rb +1 -1
  27. data/lib/review/yamlloader.rb +0 -3
  28. data/review.gemspec +2 -3
  29. data/samples/syntax-book/Gemfile +1 -1
  30. data/templates/opf/epubv2.opf.erb +2 -0
  31. data/templates/opf/epubv3.opf.erb +2 -0
  32. data/templates/opf/opf_manifest_epubv2.opf.erb +2 -0
  33. data/templates/opf/opf_manifest_epubv3.opf.erb +2 -0
  34. data/templates/opf/opf_tocx_epubv3.opf.erb +2 -0
  35. metadata +10 -139
  36. data/test/assets/black.eps +0 -280
  37. data/test/assets/fit.png +0 -0
  38. data/test/assets/header_listener.html +0 -35
  39. data/test/assets/img_math/img1.png +0 -0
  40. data/test/assets/img_math/img2.png +0 -0
  41. data/test/assets/img_math/img3.png +0 -0
  42. data/test/assets/large.gif +0 -0
  43. data/test/assets/large.jpg +0 -0
  44. data/test/assets/large.png +0 -0
  45. data/test/assets/large.svg +0 -65
  46. data/test/assets/syntax_book_index_detail.txt +0 -60
  47. data/test/assets/test.xml.erb +0 -3
  48. data/test/assets/test_template.tex +0 -189
  49. data/test/assets/test_template_backmatter.tex +0 -200
  50. data/test/book_test_helper.rb +0 -44
  51. data/test/run_test.rb +0 -12
  52. data/test/test_book.rb +0 -588
  53. data/test/test_book_chapter.rb +0 -329
  54. data/test/test_book_part.rb +0 -53
  55. data/test/test_builder.rb +0 -128
  56. data/test/test_catalog.rb +0 -174
  57. data/test/test_catalog_converter_cmd.rb +0 -73
  58. data/test/test_compiler.rb +0 -52
  59. data/test/test_configure.rb +0 -91
  60. data/test/test_converter.rb +0 -21
  61. data/test/test_epub3maker.rb +0 -733
  62. data/test/test_epubmaker.rb +0 -931
  63. data/test/test_epubmaker_cmd.rb +0 -56
  64. data/test/test_extentions_hash.rb +0 -66
  65. data/test/test_helper.rb +0 -62
  66. data/test/test_htmlbuilder.rb +0 -3315
  67. data/test/test_htmltoc.rb +0 -29
  68. data/test/test_htmlutils.rb +0 -43
  69. data/test/test_i18n.rb +0 -300
  70. data/test/test_idgxmlbuilder.rb +0 -1529
  71. data/test/test_idgxmlmaker_cmd.rb +0 -50
  72. data/test/test_image_finder.rb +0 -81
  73. data/test/test_img_math.rb +0 -120
  74. data/test/test_index.rb +0 -287
  75. data/test/test_indexbuilder.rb +0 -52
  76. data/test/test_latexbuilder.rb +0 -2972
  77. data/test/test_latexbuilder_v2.rb +0 -1654
  78. data/test/test_lineinput.rb +0 -104
  79. data/test/test_location.rb +0 -30
  80. data/test/test_logger.rb +0 -33
  81. data/test/test_makerhelper.rb +0 -44
  82. data/test/test_markdownbuilder.rb +0 -371
  83. data/test/test_md2inaobuilder.rb +0 -90
  84. data/test/test_pdfmaker.rb +0 -354
  85. data/test/test_pdfmaker_cmd.rb +0 -130
  86. data/test/test_plaintextbuilder.rb +0 -1214
  87. data/test/test_preprocessor.rb +0 -196
  88. data/test/test_review_ext.rb +0 -30
  89. data/test/test_reviewheaderlistener.rb +0 -49
  90. data/test/test_rstbuilder.rb +0 -619
  91. data/test/test_sec_counter.rb +0 -156
  92. data/test/test_template.rb +0 -33
  93. data/test/test_textmaker_cmd.rb +0 -58
  94. data/test/test_textutils.rb +0 -187
  95. data/test/test_tocprinter.rb +0 -46
  96. data/test/test_topbuilder.rb +0 -1301
  97. data/test/test_update.rb +0 -473
  98. data/test/test_webtocprinter.rb +0 -195
  99. data/test/test_yamlloader.rb +0 -186
  100. 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