review 5.5.0 → 5.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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_epubmaker_cmd.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'tmpdir'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'yaml'
|
5
|
-
require 'rbconfig'
|
6
|
-
require 'zip'
|
7
|
-
|
8
|
-
REVIEW_EPUBMAKER = File.expand_path('../bin/review-epubmaker', __dir__)
|
9
|
-
|
10
|
-
class EPUBMakerCmdTest < Test::Unit::TestCase
|
11
|
-
def setup
|
12
|
-
@tmpdir1 = Dir.mktmpdir
|
13
|
-
|
14
|
-
@old_rubylib = ENV['RUBYLIB']
|
15
|
-
ENV['RUBYLIB'] = File.expand_path('lib', __dir__)
|
16
|
-
end
|
17
|
-
|
18
|
-
def teardown
|
19
|
-
FileUtils.rm_rf(@tmpdir1)
|
20
|
-
ENV['RUBYLIB'] = @old_rubylib
|
21
|
-
end
|
22
|
-
|
23
|
-
def common_buildepub(bookdir, configfile, targetepubfile)
|
24
|
-
unless /mswin|mingw|cygwin/.match?(RUBY_PLATFORM)
|
25
|
-
config = prepare_samplebook(@tmpdir1, bookdir, nil, configfile)
|
26
|
-
builddir = File.join(@tmpdir1, config['bookname'] + '-epub')
|
27
|
-
assert !File.exist?(builddir)
|
28
|
-
|
29
|
-
ruby_cmd = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name']) + RbConfig::CONFIG['EXEEXT']
|
30
|
-
Dir.chdir(@tmpdir1) do
|
31
|
-
system("#{ruby_cmd} -S #{REVIEW_EPUBMAKER} #{configfile} 1>/dev/null 2>/dev/null")
|
32
|
-
end
|
33
|
-
assert File.exist?(File.join(@tmpdir1, targetepubfile))
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def check_filesize(epubfile)
|
38
|
-
unless /mswin|mingw|cygwin/.match?(RUBY_PLATFORM)
|
39
|
-
Zip::File.open(epubfile) do |zio|
|
40
|
-
zio.each do |entry|
|
41
|
-
assert_not_equal(0, entry.size, "#{entry.name} is 0 byte.")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_epubmaker_cmd_samplebook
|
48
|
-
common_buildepub('sample-book/src', 'config.yml', 'book.epub')
|
49
|
-
check_filesize(File.join(@tmpdir1, 'book.epub'))
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_epubmaker_cmd_syntaxbook
|
53
|
-
common_buildepub('syntax-book', 'config.yml', 'syntax-book.epub')
|
54
|
-
check_filesize(File.join(@tmpdir1, 'syntax-book.epub'))
|
55
|
-
end
|
56
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'review/extentions/hash'
|
3
|
-
|
4
|
-
class TestExtentionsHash < Test::Unit::TestCase
|
5
|
-
def test_deep_merge_simple
|
6
|
-
assert_equal({ a: 1, b: 3, c: 4 },
|
7
|
-
{ a: 1, b: 2 }.deep_merge(b: 3, c: 4))
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_deep_empty_r
|
11
|
-
assert_equal({ b: 3, c: 4 },
|
12
|
-
{}.deep_merge(b: 3, c: 4))
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_deep_empty_l
|
16
|
-
assert_equal({ a: 1, b: 2 },
|
17
|
-
{ a: 1, b: 2 }.deep_merge({}))
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_deep_merge_nested
|
21
|
-
assert_equal({ a: { aa: 1, ab: 2 },
|
22
|
-
b: { ba: 5, bb: 4, bc: 6 },
|
23
|
-
c: { ca: 1 } },
|
24
|
-
{ a: { aa: 1, ab: 2 },
|
25
|
-
b: { ba: 3, bb: 4 } }.deep_merge(b: { ba: 5, bc: 6 },
|
26
|
-
c: { ca: 1 }))
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_deep_merge_with_array
|
30
|
-
assert_equal({ a: 'string', b: ['BA'],
|
31
|
-
c: { ca: [cab: 'CAB'], cb: 3 } },
|
32
|
-
{ a: 1, b: ['shouldoverriden'],
|
33
|
-
c: { ca: [caa: 'shouldoverriden'], cb: 3 } }.
|
34
|
-
deep_merge(a: 'string', b: ['BA'],
|
35
|
-
c: { ca: [cab: 'CAB'] }))
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_deep_merge_b_simple
|
39
|
-
a = { a: 1, b: 2 }
|
40
|
-
a.deep_merge!(b: 3, c: 4)
|
41
|
-
assert_equal({ a: 1, b: 3, c: 4 }, a)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_deep_b_empty_r
|
45
|
-
a = {}
|
46
|
-
a.deep_merge!(b: 3, c: 4)
|
47
|
-
assert_equal({ b: 3, c: 4 }, a)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_deep_b_empty_l
|
51
|
-
a = { a: 1, b: 2 }
|
52
|
-
a.deep_merge!({})
|
53
|
-
assert_equal({ a: 1, b: 2 }, a)
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_deep_merge_b_nested
|
57
|
-
a = { a: { aa: 1, ab: 2 },
|
58
|
-
b: { ba: 3, bb: 4 } }
|
59
|
-
a.deep_merge!(b: { ba: 5, bc: 6 },
|
60
|
-
c: { ca: 1 })
|
61
|
-
assert_equal({ a: { aa: 1, ab: 2 },
|
62
|
-
b: { ba: 5, bb: 4, bc: 6 },
|
63
|
-
c: { ca: 1 } },
|
64
|
-
a)
|
65
|
-
end
|
66
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.realpath('../lib', __dir__))
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'review/yamlloader'
|
6
|
-
require 'review/extentions'
|
7
|
-
|
8
|
-
def touch_file(path)
|
9
|
-
FileUtils.touch(path)
|
10
|
-
end
|
11
|
-
|
12
|
-
def assets_dir
|
13
|
-
File.join(__dir__, 'assets')
|
14
|
-
end
|
15
|
-
|
16
|
-
def prepare_samplebook(srcdir, bookdir, latextemplatedir, configfile)
|
17
|
-
samplebook_dir = File.expand_path("../samples/#{bookdir}/", __dir__)
|
18
|
-
files = Dir.glob(File.join(samplebook_dir, '*'))
|
19
|
-
# ignore temporary built files
|
20
|
-
files.delete_if { |file| file =~ /.*-(pdf|epub|text)/ || file == 'webroot' }
|
21
|
-
FileUtils.cp_r(files, srcdir)
|
22
|
-
if latextemplatedir
|
23
|
-
# copy from review-jsbook or review-jlreq
|
24
|
-
template_dir = File.expand_path("../templates/latex/#{latextemplatedir}/", __dir__)
|
25
|
-
FileUtils.cp(Dir.glob(File.join(template_dir, '*')), File.join(srcdir, 'sty'))
|
26
|
-
end
|
27
|
-
loader = ReVIEW::YAMLLoader.new
|
28
|
-
loader.load_file(File.open(File.join(srcdir, configfile)))
|
29
|
-
end
|
30
|
-
|
31
|
-
def compile_inline(text)
|
32
|
-
@builder.compile_inline(text)
|
33
|
-
end
|
34
|
-
|
35
|
-
def compile_block(text)
|
36
|
-
method_name = "compile_block_#{@builder.target_name}"
|
37
|
-
method_name = 'compile_block_default' unless self.respond_to?(method_name, true)
|
38
|
-
self.__send__(method_name, text)
|
39
|
-
end
|
40
|
-
|
41
|
-
def compile_block_default(text)
|
42
|
-
@chapter.content = text
|
43
|
-
@chapter.execute_indexer(force: true)
|
44
|
-
@compiler.compile(@chapter)
|
45
|
-
end
|
46
|
-
|
47
|
-
def compile_block_html(text)
|
48
|
-
@chapter.content = text
|
49
|
-
@chapter.execute_indexer(force: true)
|
50
|
-
matched = @compiler.compile(@chapter).match(Regexp.new(%Q(<body>\n(.+)</body>), Regexp::MULTILINE))
|
51
|
-
if matched && matched.size > 1
|
52
|
-
matched[1]
|
53
|
-
else
|
54
|
-
''
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def compile_block_idgxml(text)
|
59
|
-
@chapter.content = text
|
60
|
-
@chapter.execute_indexer(force: true)
|
61
|
-
@compiler.compile(@chapter).gsub(Regexp.new(%Q(.*<doc xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">), Regexp::MULTILINE), '').gsub("</doc>\n", '')
|
62
|
-
end
|