review 2.0.0.beta1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +66 -1
- data/.rubocop_todo.yml +617 -0
- data/.travis.yml +16 -1
- data/ChangeLog +48 -0
- data/Dockerfile +22 -0
- data/Gemfile +0 -1
- data/README.md +97 -0
- data/Rakefile +10 -11
- data/appveyor.yml +9 -0
- data/bin/review +46 -0
- data/bin/review-check +8 -21
- data/bin/review-compile +26 -43
- data/bin/review-index +9 -22
- data/bin/review-init +21 -25
- data/bin/review-preproc +9 -13
- data/bin/review-validate +1 -1
- data/bin/review-vol +3 -17
- data/bin/review-webmaker +15 -0
- data/doc/NEWS.ja.md +534 -0
- data/doc/NEWS.md +538 -0
- data/doc/catalog.ja.md +10 -18
- data/doc/catalog.md +5 -9
- data/doc/config.yml.sample +319 -0
- data/doc/customize_epub.ja.md +42 -0
- data/doc/format.ja.md +320 -288
- data/doc/format.md +277 -170
- data/doc/format_idg.ja.md +82 -175
- data/doc/pdfmaker.ja.md +61 -0
- data/doc/pdfmaker.md +65 -0
- data/doc/quickstart.ja.md +88 -98
- data/doc/quickstart.md +72 -110
- data/doc/sample.css +41 -0
- data/doc/writing_vertical.ja.md +55 -0
- data/doc/writing_vertical.md +5 -0
- data/lib/epubmaker/content.rb +3 -3
- data/lib/epubmaker/epubcommon.rb +173 -145
- data/lib/epubmaker/epubv2.rb +24 -77
- data/lib/epubmaker/epubv3.rb +72 -73
- data/lib/epubmaker/producer.rb +54 -30
- data/lib/lineinput.rb +48 -0
- data/lib/review/book.rb +0 -1
- data/lib/review/book/base.rb +47 -27
- data/lib/review/book/chapter.rb +48 -19
- data/lib/review/book/compilable.rb +10 -14
- data/lib/review/book/index.rb +10 -19
- data/lib/review/book/page_metric.rb +0 -10
- data/lib/review/book/part.rb +17 -3
- data/lib/review/builder.rb +84 -68
- data/lib/review/catalog.rb +5 -1
- data/lib/review/compiler.rb +327 -4657
- data/lib/review/configure.rb +84 -10
- data/lib/review/converter.rb +28 -0
- data/lib/review/epubbuilder.rb +1 -1
- data/lib/review/epubmaker.rb +142 -158
- data/lib/review/ewbbuilder.rb +5 -5
- data/lib/review/exception.rb +1 -1
- data/lib/review/extentions.rb +1 -1
- data/lib/review/extentions/hash.rb +15 -0
- data/lib/review/extentions/string.rb +2 -1
- data/lib/review/htmlbuilder.rb +364 -348
- data/lib/review/htmltoc.rb +44 -0
- data/lib/review/htmlutils.rb +12 -6
- data/lib/review/i18n.rb +78 -6
- data/lib/review/i18n.yml +7 -4
- data/lib/review/idgxmlbuilder.rb +226 -267
- data/lib/review/latexbuilder.rb +281 -274
- data/lib/review/latexutils.rb +56 -49
- data/lib/review/makerhelper.rb +8 -4
- data/lib/review/markdownbuilder.rb +80 -124
- data/lib/review/pdfmaker.rb +197 -138
- data/lib/review/preprocessor.rb +16 -67
- data/lib/review/template.rb +24 -0
- data/lib/review/textbuilder.rb +1 -1
- data/lib/review/textutils.rb +18 -24
- data/lib/review/tocparser.rb +51 -106
- data/lib/review/tocprinter.rb +61 -117
- data/lib/review/topbuilder.rb +119 -126
- data/lib/review/unfold.rb +2 -2
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +302 -0
- data/lib/review/webtocprinter.rb +48 -0
- data/lib/review/yamlloader.rb +47 -0
- data/review.gemspec +3 -3
- data/templates/html/layout-html5.html.erb +17 -0
- data/templates/html/layout-xhtml1.html.erb +20 -0
- data/{lib/review → templates/latex}/layout.tex.erb +107 -115
- data/templates/ncx/epubv2.ncx.erb +11 -0
- data/templates/opf/epubv2.opf.erb +21 -0
- data/templates/opf/epubv3.opf.erb +18 -0
- data/templates/web/html/layout-html5.html.erb +56 -0
- data/templates/web/html/layout-xhtml1.html.erb +20 -0
- data/templates/xml/container.xml.erb +6 -0
- data/test/assets/test.xml.erb +3 -0
- data/test/assets/test_template.tex +28 -71
- data/test/assets/test_template_backmatter.tex +1 -9
- data/test/sample-book/src/Rakefile +12 -3
- data/{doc/sample.yml → test/sample-book/src/config-epub2.yml} +92 -147
- data/test/sample-book/src/config.yml +40 -154
- data/test/sample-book/src/style-web.css +45 -0
- data/test/sample-book/src/style.css +23 -1
- data/test/test.re +1 -1
- data/test/test_book.rb +15 -17
- data/test/test_book_chapter.rb +2 -80
- data/test/test_book_part.rb +1 -1
- data/test/test_builder.rb +28 -6
- data/test/test_catalog.rb +17 -0
- data/test/test_compiler.rb +14 -59
- data/test/test_configure.rb +94 -0
- data/test/test_converter.rb +21 -0
- data/test/test_epub3maker.rb +155 -3
- data/test/test_epubmaker.rb +245 -30
- data/test/test_epubmaker_cmd.rb +2 -2
- data/test/test_extentions_hash.rb +60 -0
- data/test/test_helper.rb +4 -47
- data/test/test_htmlbuilder.rb +282 -175
- data/test/test_htmltoc.rb +33 -0
- data/test/test_i18n.rb +134 -70
- data/test/test_idgxmlbuilder.rb +58 -39
- data/test/test_latexbuilder.rb +132 -14
- data/test/test_lineinput.rb +5 -26
- data/test/test_makerhelper.rb +6 -4
- data/test/test_markdownbuilder.rb +23 -5
- data/test/test_pdfmaker.rb +86 -20
- data/test/test_pdfmaker_cmd.rb +1 -3
- data/test/test_review_ext.rb +1 -1
- data/test/test_template.rb +27 -0
- data/test/test_textutils.rb +36 -0
- data/test/test_tocparser.rb +25 -0
- data/test/test_topbuilder.rb +34 -2
- data/test/test_yamlloader.rb +188 -0
- metadata +71 -29
- data/README.rdoc +0 -81
- data/bin/review-epubmaker-legacy +0 -1024
- data/doc/ruby-uuid/README +0 -11
- data/doc/ruby-uuid/README.ja +0 -34
- data/lib/review/compiler/literals_1_8.kpeg +0 -19
- data/lib/review/compiler/literals_1_8.rb +0 -432
- data/lib/review/compiler/literals_1_9.kpeg +0 -22
- data/lib/review/compiler/literals_1_9.rb +0 -435
- data/lib/review/extentions/array.rb +0 -25
- data/lib/review/htmllayout.rb +0 -41
- data/lib/review/inaobuilder.rb +0 -357
- data/lib/review/location.rb +0 -24
- data/lib/review/node.rb +0 -267
- data/lib/review/review.kpeg +0 -724
- data/lib/uuid.rb +0 -312
- data/rubocop-todo.yml +0 -456
- data/test/test_inaobuilder.rb +0 -247
- data/test/test_uuid.rb +0 -157
data/test/test_lineinput.rb
CHANGED
@@ -54,10 +54,9 @@ class LineInputTest < Test::Unit::TestCase
|
|
54
54
|
li.ungets('xyz')
|
55
55
|
assert_equal 0, li.lineno
|
56
56
|
li.ungets('xyz')
|
57
|
-
assert_equal
|
57
|
+
assert_equal(-1, li.lineno) # XXX: OK?
|
58
58
|
end
|
59
59
|
|
60
|
-
=begin
|
61
60
|
def test_peek
|
62
61
|
li = LineInput.new(StringIO.new)
|
63
62
|
assert_equal nil, li.peek
|
@@ -74,25 +73,6 @@ class LineInputTest < Test::Unit::TestCase
|
|
74
73
|
assert li.next?
|
75
74
|
end
|
76
75
|
|
77
|
-
def test_skip_blank_lines
|
78
|
-
if "".respond_to?(:encode)
|
79
|
-
euc_jp_spc = " ".encode("EUC-JP")
|
80
|
-
else
|
81
|
-
euc_jp_spc = "\xa1\xa1" # EUC-JP 全角空白
|
82
|
-
end
|
83
|
-
[
|
84
|
-
["", 0, nil],
|
85
|
-
["\n \n \nabc", 3, 'abc'],
|
86
|
-
["\t", 1, nil],
|
87
|
-
[euc_jp_spc, 0, euc_jp_spc],
|
88
|
-
].each do |text, n, rest|
|
89
|
-
li = LineInput.new(StringIO.new(text))
|
90
|
-
assert_equal n, li.skip_blank_lines
|
91
|
-
assert_equal rest, li.gets
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
|
96
76
|
def test_gets_if
|
97
77
|
io = StringIO.new
|
98
78
|
li = LineInput.new(io)
|
@@ -119,7 +99,7 @@ class LineInputTest < Test::Unit::TestCase
|
|
119
99
|
assert_equal "abc\n", li.gets_unless(/^X/)
|
120
100
|
assert_equal nil, li.gets_unless(/^d/)
|
121
101
|
end
|
122
|
-
|
102
|
+
|
123
103
|
def test_each
|
124
104
|
content = "abc\ndef\nghi"
|
125
105
|
io = StringIO.new(content)
|
@@ -138,7 +118,7 @@ class LineInputTest < Test::Unit::TestCase
|
|
138
118
|
assert_equal 2, li.lineno
|
139
119
|
assert_equal "ghi", li.gets
|
140
120
|
end
|
141
|
-
|
121
|
+
|
142
122
|
def test_getlines_while
|
143
123
|
io = StringIO.new("abc\ndef\nghi")
|
144
124
|
li = LineInput.new(io)
|
@@ -148,7 +128,7 @@ class LineInputTest < Test::Unit::TestCase
|
|
148
128
|
assert_equal 2, li.lineno
|
149
129
|
assert_equal "ghi", li.gets
|
150
130
|
end
|
151
|
-
|
131
|
+
|
152
132
|
def test_until_match
|
153
133
|
io = StringIO.new("abc\ndef\nghi")
|
154
134
|
li = LineInput.new(io)
|
@@ -157,7 +137,7 @@ class LineInputTest < Test::Unit::TestCase
|
|
157
137
|
assert_equal 1, li.lineno
|
158
138
|
assert_equal "def\n", li.gets
|
159
139
|
end
|
160
|
-
|
140
|
+
|
161
141
|
def test_getlines_until
|
162
142
|
io = StringIO.new("abc\ndef\nghi")
|
163
143
|
li = LineInput.new(io)
|
@@ -196,6 +176,5 @@ class LineInputTest < Test::Unit::TestCase
|
|
196
176
|
assert_equal ["abc\n", "def\n"], data
|
197
177
|
assert_equal 3, li.lineno
|
198
178
|
end
|
199
|
-
=end
|
200
179
|
end
|
201
180
|
|
data/test/test_makerhelper.rb
CHANGED
@@ -38,13 +38,15 @@ class MakerHelperTest < Test::Unit::TestCase
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_copy_images_to_dir_convert
|
41
|
-
|
41
|
+
if /mswin|mingw|cygwin/ !~ RUBY_PLATFORM
|
42
|
+
touch_file("#{@tmpdir1}/foo.eps")
|
42
43
|
|
43
|
-
|
44
|
+
image_files = MakerHelper.copy_images_to_dir(@tmpdir1, @tmpdir2,
|
44
45
|
:convert => {:eps => :png})
|
45
46
|
|
46
|
-
|
47
|
-
|
47
|
+
assert File.exist?("#{@tmpdir2}/foo.eps.png"), "EPS to PNG conversion failed"
|
48
|
+
assert image_files.include?("#{@tmpdir1}/foo.eps.png")
|
49
|
+
end
|
48
50
|
end
|
49
51
|
|
50
52
|
def test_copy_images_to_dir_with_exts
|
@@ -12,12 +12,10 @@ class MARKDOWNBuilderTest < Test::Unit::TestCase
|
|
12
12
|
def setup
|
13
13
|
@builder = MARKDOWNBuilder.new()
|
14
14
|
@config = {
|
15
|
-
"secnolevel" => 2,
|
16
|
-
"
|
17
|
-
"outencoding" => "UTF-8",
|
18
|
-
"stylesheet" => nil, # for HTMLBuilder
|
15
|
+
"secnolevel" => 2, # for IDGXMLBuilder, HTMLBuilder
|
16
|
+
"stylesheet" => nil, # for HTMLBuilder
|
19
17
|
}
|
20
|
-
@book = Book::Base.new(
|
18
|
+
@book = Book::Base.new(".")
|
21
19
|
@book.config = @config
|
22
20
|
@compiler = ReVIEW::Compiler.new(@builder)
|
23
21
|
@chapter = Book::Chapter.new(@book, 1, '-', nil, StringIO.new)
|
@@ -64,6 +62,23 @@ EOS
|
|
64
62
|
assert_equal "```shell-session\nlineA\nlineB\n```\n", actual
|
65
63
|
end
|
66
64
|
|
65
|
+
|
66
|
+
def test_dlist
|
67
|
+
actual = compile_block(": foo\n foo.\n bar.\n")
|
68
|
+
assert_equal %Q|<dl>\n<dt>foo</dt>\n<dd>foo.bar.</dd>\n</dl>\n|, actual
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_dlist_with_bracket
|
72
|
+
actual = compile_block(": foo[bar]\n foo.\n bar.\n")
|
73
|
+
assert_equal %Q|<dl>\n<dt>foo[bar]</dt>\n<dd>foo.bar.</dd>\n</dl>\n|, actual
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_dlist_with_comment
|
77
|
+
source = ": title\n body\n\#@ comment\n\#@ comment\n: title2\n body2\n"
|
78
|
+
actual = compile_block(source)
|
79
|
+
assert_equal %Q|<dl>\n<dt>title</dt>\n<dd>body</dd>\n<dt>title2</dt>\n<dd>body2</dd>\n</dl>\n|, actual
|
80
|
+
end
|
81
|
+
|
67
82
|
def test_list
|
68
83
|
actual = compile_block(<<-EOS)
|
69
84
|
//list[name][caption]{
|
@@ -74,6 +89,7 @@ BBB
|
|
74
89
|
|
75
90
|
assert_equal <<-EOS, actual
|
76
91
|
リスト1.1 caption
|
92
|
+
|
77
93
|
```
|
78
94
|
AAA
|
79
95
|
BBB
|
@@ -91,6 +107,7 @@ BBB
|
|
91
107
|
|
92
108
|
assert_equal <<-EOS, actual
|
93
109
|
リスト1.1 caption
|
110
|
+
|
94
111
|
```ruby
|
95
112
|
AAA
|
96
113
|
BBB
|
@@ -109,6 +126,7 @@ BBB
|
|
109
126
|
assert_equal <<-EOS, actual
|
110
127
|
|
111
128
|
caption
|
129
|
+
|
112
130
|
```ruby
|
113
131
|
AAA
|
114
132
|
BBB
|
data/test/test_pdfmaker.rb
CHANGED
@@ -16,7 +16,9 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
16
16
|
"urnid" => "http://example.jp/",
|
17
17
|
"date" => "2011-01-01",
|
18
18
|
"language" => "ja",
|
19
|
+
"texcommand" => "uplatex",
|
19
20
|
})
|
21
|
+
@maker.config = @config
|
20
22
|
@output = StringIO.new
|
21
23
|
I18n.setup(@config["language"])
|
22
24
|
end
|
@@ -26,24 +28,30 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
26
28
|
Dir.chdir(dir) do
|
27
29
|
pdf_file = File.join(dir, "sample.pdf")
|
28
30
|
FileUtils.touch(pdf_file)
|
29
|
-
@maker.
|
31
|
+
@maker.basedir = Dir.pwd
|
32
|
+
@maker.remove_old_file
|
30
33
|
assert !File.exist?(pdf_file)
|
31
34
|
end
|
32
35
|
end
|
33
|
-
ensure
|
34
|
-
$stderr = STDERR
|
35
36
|
end
|
36
37
|
|
37
38
|
def test_check_book_none
|
38
39
|
Dir.mktmpdir do |dir|
|
39
40
|
assert_nothing_raised do
|
40
|
-
@maker.
|
41
|
+
@maker.basedir = Dir.pwd
|
42
|
+
@maker.remove_old_file
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
def
|
46
|
-
|
47
|
+
def test_buildpath_debug
|
48
|
+
@maker.config["debug"] = true
|
49
|
+
path = @maker.build_path
|
50
|
+
begin
|
51
|
+
assert_equal(path, "sample-pdf")
|
52
|
+
ensure
|
53
|
+
FileUtils.remove_entry_secure path
|
54
|
+
end
|
47
55
|
end
|
48
56
|
|
49
57
|
def test_parse_opts_help
|
@@ -59,7 +67,6 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
59
67
|
end
|
60
68
|
|
61
69
|
def test_parse_opts_ignore_errors
|
62
|
-
io = StringIO.new
|
63
70
|
conf, yml = @maker.parse_opts(["--ignore-errors", "hoge.yml"])
|
64
71
|
assert_equal conf["ignore-errors"], true
|
65
72
|
assert_equal yml, "hoge.yml"
|
@@ -80,7 +87,7 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
80
87
|
"csl"=>["監修三郎"],
|
81
88
|
"trl"=>["翻訳四郎","翻訳五郎",]})
|
82
89
|
Dir.mktmpdir do |dir|
|
83
|
-
authors = @maker.make_authors
|
90
|
+
authors = @maker.make_authors
|
84
91
|
assert_equal("テスト太郎、テスト次郎 著 \\\\\n監修三郎 監修 \\\\\n翻訳四郎、翻訳五郎 訳",
|
85
92
|
authors)
|
86
93
|
end
|
@@ -89,7 +96,7 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
89
96
|
def test_make_authors_only_aut
|
90
97
|
@config.merge!({"aut"=>"テスト太郎"})
|
91
98
|
Dir.mktmpdir do |dir|
|
92
|
-
authors = @maker.make_authors
|
99
|
+
authors = @maker.make_authors
|
93
100
|
assert_equal("テスト太郎 著", authors)
|
94
101
|
end
|
95
102
|
end
|
@@ -103,11 +110,12 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
103
110
|
"ill"=>["イラスト七郎","イラスト八郎"],
|
104
111
|
"cov"=>["表紙九郎"],
|
105
112
|
"edt"=>["編集十郎"],
|
106
|
-
"
|
113
|
+
"pbl"=>"テスト出版",
|
114
|
+
"prt"=>"テスト印刷",
|
107
115
|
})
|
108
116
|
Dir.mktmpdir do |dir|
|
109
|
-
okuduke = @maker.make_colophon
|
110
|
-
assert_equal("著 者 & テスト太郎、テスト次郎 \\\\\n監 修 & 監修三郎 \\\\\n翻 訳 & 翻訳四郎、翻訳五郎 \\\\\nデザイン & デザイン六郎 \\\\\nイラスト & イラスト七郎、イラスト八郎 \\\\\n表 紙 & 表紙九郎 \\\\\n編 集 & 編集十郎 \\\\\n発行所 & テスト出版 \\\\\n",
|
117
|
+
okuduke = @maker.make_colophon
|
118
|
+
assert_equal("著 者 & テスト太郎、テスト次郎 \\\\\n監 修 & 監修三郎 \\\\\n翻 訳 & 翻訳四郎、翻訳五郎 \\\\\nデザイン & デザイン六郎 \\\\\nイラスト & イラスト七郎、イラスト八郎 \\\\\n表 紙 & 表紙九郎 \\\\\n編 集 & 編集十郎 \\\\\n発行所 & テスト出版 \\\\\n印刷所 & テスト印刷 \\\\\n",
|
111
119
|
okuduke)
|
112
120
|
end
|
113
121
|
end
|
@@ -124,7 +132,7 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
124
132
|
})
|
125
133
|
Dir.mktmpdir do |dir|
|
126
134
|
I18n.update({"prt" => "印刷所"},"ja")
|
127
|
-
okuduke = @maker.make_colophon
|
135
|
+
okuduke = @maker.make_colophon
|
128
136
|
assert_equal("著 者 & テスト太郎、テスト次郎 \\\\\n監 修 & 監修三郎 \\\\\nイラスト & イラスト七郎、イラスト八郎 \\\\\n発行所 & テスト出版 \\\\\n連絡先 & tarou@example.jp \\\\\n印刷所 & テスト印刷 \\\\\n",
|
129
137
|
okuduke)
|
130
138
|
end
|
@@ -132,17 +140,14 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
132
140
|
|
133
141
|
def test_gettemplate
|
134
142
|
Dir.mktmpdir do |dir|
|
135
|
-
|
143
|
+
@maker.basedir = Dir.pwd
|
144
|
+
tmpl = @maker.get_template
|
136
145
|
expect = File.read(File.join(assets_dir,"test_template.tex"))
|
137
146
|
assert_equal(expect, tmpl)
|
138
147
|
end
|
139
148
|
end
|
140
149
|
|
141
150
|
def test_gettemplate_with_backmatter
|
142
|
-
if RUBY_VERSION =~ /^1.8/
|
143
|
-
$stderr.puts "skip test_gettemplate_with_backmatter (for travis error)"
|
144
|
-
return
|
145
|
-
end
|
146
151
|
@config.merge!({
|
147
152
|
"backcover"=>"backcover.html",
|
148
153
|
"profile"=>"profile.html",
|
@@ -159,12 +164,73 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
159
164
|
|
160
165
|
expect = File.read(File.join(assets_dir,"test_template_backmatter.tex"))
|
161
166
|
|
162
|
-
maker =
|
163
|
-
tmpl = maker.get_template
|
167
|
+
@maker.basedir = Dir.pwd
|
168
|
+
tmpl = @maker.get_template
|
164
169
|
tmpl.gsub!(/\A.*%% backmatter begins\n/m,"")
|
165
170
|
assert_equal(expect, tmpl)
|
166
171
|
end
|
167
172
|
end
|
168
173
|
end
|
169
174
|
|
175
|
+
def test_colophon_history
|
176
|
+
@config["aut"] = ["Mr.Smith"]
|
177
|
+
@config["pbl"] = ["BLUEPRINT"]
|
178
|
+
@config["pht"] = ["Mrs.Smith"]
|
179
|
+
@config.merge!({"language" => "ja"})
|
180
|
+
history = @maker.make_history_list
|
181
|
+
expect = ["2011年1月1日 発行"]
|
182
|
+
assert_equal expect, history
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_colophon_history_2
|
186
|
+
@config["aut"] = ["Mr.Smith"]
|
187
|
+
@config["pbl"] = ["BLUEPRINT"]
|
188
|
+
@config["pht"] = ["Mrs.Smith"]
|
189
|
+
@config.merge!({"language" => "ja",
|
190
|
+
"history" => [[
|
191
|
+
"2011-08-03 v1.0.0版発行",
|
192
|
+
"2012-02-15 v1.1.0版発行",
|
193
|
+
]] })
|
194
|
+
history = @maker.make_history_list
|
195
|
+
expect = ["2011年8月3日 v1.0.0版発行",
|
196
|
+
"2012年2月15日 v1.1.0版発行"]
|
197
|
+
assert_equal expect, history
|
198
|
+
end
|
199
|
+
|
200
|
+
def test_colophon_history_date
|
201
|
+
@config["aut"] = ["Mr.Smith"]
|
202
|
+
@config["pbl"] = ["BLUEPRINT"]
|
203
|
+
@config["pht"] = ["Mrs.Smith"]
|
204
|
+
@config.merge!({"language" => "ja",
|
205
|
+
"history" => [[
|
206
|
+
"2011-08-03",
|
207
|
+
"2012-02-15",
|
208
|
+
]] })
|
209
|
+
history = @maker.make_history_list
|
210
|
+
expect = ["2011年8月3日 初版第1刷 発行",
|
211
|
+
"2012年2月15日 初版第2刷 発行"]
|
212
|
+
assert_equal expect, history
|
213
|
+
end
|
214
|
+
|
215
|
+
def test_colophon_history_date2
|
216
|
+
@config["aut"] = ["Mr.Smith"]
|
217
|
+
@config["pbl"] = ["BLUEPRINT"]
|
218
|
+
@config["pht"] = ["Mrs.Smith"]
|
219
|
+
@config.merge!({"language" => "ja",
|
220
|
+
"history" => [[
|
221
|
+
"2011-08-03",
|
222
|
+
"2012-02-15",
|
223
|
+
],[
|
224
|
+
"2012-10-01",
|
225
|
+
],[
|
226
|
+
"2013-03-01",
|
227
|
+
]] })
|
228
|
+
history = @maker.make_history_list
|
229
|
+
expect = ["2011年8月3日 初版第1刷 発行",
|
230
|
+
"2012年2月15日 初版第2刷 発行",
|
231
|
+
"2012年10月1日 第2版第1刷 発行",
|
232
|
+
"2013年3月1日 第3版第1刷 発行"]
|
233
|
+
assert_equal expect, history
|
234
|
+
end
|
235
|
+
|
170
236
|
end
|
data/test/test_pdfmaker_cmd.rb
CHANGED
@@ -11,7 +11,6 @@ REVIEW_PDFMAKER = File.expand_path('../bin/review-pdfmaker', File.dirname(__FILE
|
|
11
11
|
class PDFMakerCmdTest < Test::Unit::TestCase
|
12
12
|
def setup
|
13
13
|
@tmpdir1 = Dir.mktmpdir
|
14
|
-
@tmpdir2 = Dir.mktmpdir
|
15
14
|
|
16
15
|
@old_rubylib = ENV['RUBYLIB']
|
17
16
|
ENV['RUBYLIB'] = File.expand_path('../lib', File.dirname(__FILE__))
|
@@ -19,12 +18,11 @@ class PDFMakerCmdTest < Test::Unit::TestCase
|
|
19
18
|
|
20
19
|
def teardown
|
21
20
|
FileUtils.rm_rf @tmpdir1
|
22
|
-
FileUtils.rm_rf @tmpdir2
|
23
21
|
ENV['RUBYLIB'] = @old_rubylib
|
24
22
|
end
|
25
23
|
|
26
24
|
def test_pdfmaker_cmd
|
27
|
-
if
|
25
|
+
if /mswin|mingw|cygwin/ !~ RUBY_PLATFORM
|
28
26
|
config = prepare_samplebook(@tmpdir1)
|
29
27
|
builddir = @tmpdir1 + "/" + config['bookname'] + '-pdf'
|
30
28
|
assert ! File.exist?(builddir)
|
data/test/test_review_ext.rb
CHANGED
@@ -24,7 +24,7 @@ end
|
|
24
24
|
"ch01.re" => "= test\n\ntest.\n",
|
25
25
|
"review-ext.rb" => review_ext) do |dir, book, files|
|
26
26
|
builder = ReVIEW::HTMLBuilder.new(false)
|
27
|
-
|
27
|
+
ReVIEW::Compiler.new(builder)
|
28
28
|
assert_equal "test", builder.instance_eval{@builder_init_test}
|
29
29
|
end
|
30
30
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
require 'review/template'
|
5
|
+
|
6
|
+
class TemplateTest < Test::Unit::TestCase
|
7
|
+
include ReVIEW
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@name = nil
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_load
|
14
|
+
tmplfile = File.expand_path('./assets/test.xml.erb', File.dirname(__FILE__))
|
15
|
+
tmpl = ReVIEW::Template.load(tmplfile)
|
16
|
+
assert_equal("<test>\n<name></name>\n</test>\n",tmpl.result(binding))
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_open_with_value
|
20
|
+
tmplfile = File.expand_path('./assets/test.xml.erb', File.dirname(__FILE__))
|
21
|
+
tmpl = ReVIEW::Template.load(tmplfile)
|
22
|
+
@name = "test"
|
23
|
+
assert_equal("<test>\n<name>test</name>\n</test>\n",tmpl.result(binding))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
data/test/test_textutils.rb
CHANGED
@@ -29,4 +29,40 @@ class TextUtilsTest < Test::Unit::TestCase
|
|
29
29
|
detabed = detab("\tabc\tdef", 4)
|
30
30
|
assert_equal " abc def", detabed
|
31
31
|
end
|
32
|
+
|
33
|
+
def test_split_paragraph_empty_nil
|
34
|
+
ret = @tu_nil.split_paragraph([])
|
35
|
+
assert_equal ret, [""]
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_split_paragraph_empty_p
|
39
|
+
ret = @tu_p.split_paragraph([])
|
40
|
+
assert_equal ret, ["<p></p>"]
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_split_paragraph_p
|
44
|
+
ret = @tu_p.split_paragraph(["abc"])
|
45
|
+
assert_equal ["<p>abc</p>"], ret
|
46
|
+
ret = @tu_p.split_paragraph(["abc","def"])
|
47
|
+
assert_equal ["<p>abcdef</p>"], ret
|
48
|
+
ret = @tu_p.split_paragraph(["abc","","def"])
|
49
|
+
assert_equal ["<p>abc</p>","<p>def</p>"], ret
|
50
|
+
ret = @tu_p.split_paragraph(["abc","","","def"])
|
51
|
+
assert_equal ["<p>abc</p>","<p>def</p>"], ret
|
52
|
+
ret = @tu_p.split_paragraph(["abc","","","def","ghi"])
|
53
|
+
assert_equal ["<p>abc</p>","<p>defghi</p>"], ret
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_split_paragraph_nil
|
57
|
+
ret = @tu_nil.split_paragraph(["abc"])
|
58
|
+
assert_equal ["abc"], ret
|
59
|
+
ret = @tu_nil.split_paragraph(["abc","def"])
|
60
|
+
assert_equal ["abcdef"], ret
|
61
|
+
ret = @tu_nil.split_paragraph(["abc","","def"])
|
62
|
+
assert_equal ["abc","def"], ret
|
63
|
+
ret = @tu_nil.split_paragraph(["abc","","","def"])
|
64
|
+
assert_equal ["abc","def"], ret
|
65
|
+
ret = @tu_nil.split_paragraph(["abc","","","def","ghi"])
|
66
|
+
assert_equal ["abc","defghi"], ret
|
67
|
+
end
|
32
68
|
end
|