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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +66 -1
  3. data/.rubocop_todo.yml +617 -0
  4. data/.travis.yml +16 -1
  5. data/ChangeLog +48 -0
  6. data/Dockerfile +22 -0
  7. data/Gemfile +0 -1
  8. data/README.md +97 -0
  9. data/Rakefile +10 -11
  10. data/appveyor.yml +9 -0
  11. data/bin/review +46 -0
  12. data/bin/review-check +8 -21
  13. data/bin/review-compile +26 -43
  14. data/bin/review-index +9 -22
  15. data/bin/review-init +21 -25
  16. data/bin/review-preproc +9 -13
  17. data/bin/review-validate +1 -1
  18. data/bin/review-vol +3 -17
  19. data/bin/review-webmaker +15 -0
  20. data/doc/NEWS.ja.md +534 -0
  21. data/doc/NEWS.md +538 -0
  22. data/doc/catalog.ja.md +10 -18
  23. data/doc/catalog.md +5 -9
  24. data/doc/config.yml.sample +319 -0
  25. data/doc/customize_epub.ja.md +42 -0
  26. data/doc/format.ja.md +320 -288
  27. data/doc/format.md +277 -170
  28. data/doc/format_idg.ja.md +82 -175
  29. data/doc/pdfmaker.ja.md +61 -0
  30. data/doc/pdfmaker.md +65 -0
  31. data/doc/quickstart.ja.md +88 -98
  32. data/doc/quickstart.md +72 -110
  33. data/doc/sample.css +41 -0
  34. data/doc/writing_vertical.ja.md +55 -0
  35. data/doc/writing_vertical.md +5 -0
  36. data/lib/epubmaker/content.rb +3 -3
  37. data/lib/epubmaker/epubcommon.rb +173 -145
  38. data/lib/epubmaker/epubv2.rb +24 -77
  39. data/lib/epubmaker/epubv3.rb +72 -73
  40. data/lib/epubmaker/producer.rb +54 -30
  41. data/lib/lineinput.rb +48 -0
  42. data/lib/review/book.rb +0 -1
  43. data/lib/review/book/base.rb +47 -27
  44. data/lib/review/book/chapter.rb +48 -19
  45. data/lib/review/book/compilable.rb +10 -14
  46. data/lib/review/book/index.rb +10 -19
  47. data/lib/review/book/page_metric.rb +0 -10
  48. data/lib/review/book/part.rb +17 -3
  49. data/lib/review/builder.rb +84 -68
  50. data/lib/review/catalog.rb +5 -1
  51. data/lib/review/compiler.rb +327 -4657
  52. data/lib/review/configure.rb +84 -10
  53. data/lib/review/converter.rb +28 -0
  54. data/lib/review/epubbuilder.rb +1 -1
  55. data/lib/review/epubmaker.rb +142 -158
  56. data/lib/review/ewbbuilder.rb +5 -5
  57. data/lib/review/exception.rb +1 -1
  58. data/lib/review/extentions.rb +1 -1
  59. data/lib/review/extentions/hash.rb +15 -0
  60. data/lib/review/extentions/string.rb +2 -1
  61. data/lib/review/htmlbuilder.rb +364 -348
  62. data/lib/review/htmltoc.rb +44 -0
  63. data/lib/review/htmlutils.rb +12 -6
  64. data/lib/review/i18n.rb +78 -6
  65. data/lib/review/i18n.yml +7 -4
  66. data/lib/review/idgxmlbuilder.rb +226 -267
  67. data/lib/review/latexbuilder.rb +281 -274
  68. data/lib/review/latexutils.rb +56 -49
  69. data/lib/review/makerhelper.rb +8 -4
  70. data/lib/review/markdownbuilder.rb +80 -124
  71. data/lib/review/pdfmaker.rb +197 -138
  72. data/lib/review/preprocessor.rb +16 -67
  73. data/lib/review/template.rb +24 -0
  74. data/lib/review/textbuilder.rb +1 -1
  75. data/lib/review/textutils.rb +18 -24
  76. data/lib/review/tocparser.rb +51 -106
  77. data/lib/review/tocprinter.rb +61 -117
  78. data/lib/review/topbuilder.rb +119 -126
  79. data/lib/review/unfold.rb +2 -2
  80. data/lib/review/version.rb +1 -1
  81. data/lib/review/webmaker.rb +302 -0
  82. data/lib/review/webtocprinter.rb +48 -0
  83. data/lib/review/yamlloader.rb +47 -0
  84. data/review.gemspec +3 -3
  85. data/templates/html/layout-html5.html.erb +17 -0
  86. data/templates/html/layout-xhtml1.html.erb +20 -0
  87. data/{lib/review → templates/latex}/layout.tex.erb +107 -115
  88. data/templates/ncx/epubv2.ncx.erb +11 -0
  89. data/templates/opf/epubv2.opf.erb +21 -0
  90. data/templates/opf/epubv3.opf.erb +18 -0
  91. data/templates/web/html/layout-html5.html.erb +56 -0
  92. data/templates/web/html/layout-xhtml1.html.erb +20 -0
  93. data/templates/xml/container.xml.erb +6 -0
  94. data/test/assets/test.xml.erb +3 -0
  95. data/test/assets/test_template.tex +28 -71
  96. data/test/assets/test_template_backmatter.tex +1 -9
  97. data/test/sample-book/src/Rakefile +12 -3
  98. data/{doc/sample.yml → test/sample-book/src/config-epub2.yml} +92 -147
  99. data/test/sample-book/src/config.yml +40 -154
  100. data/test/sample-book/src/style-web.css +45 -0
  101. data/test/sample-book/src/style.css +23 -1
  102. data/test/test.re +1 -1
  103. data/test/test_book.rb +15 -17
  104. data/test/test_book_chapter.rb +2 -80
  105. data/test/test_book_part.rb +1 -1
  106. data/test/test_builder.rb +28 -6
  107. data/test/test_catalog.rb +17 -0
  108. data/test/test_compiler.rb +14 -59
  109. data/test/test_configure.rb +94 -0
  110. data/test/test_converter.rb +21 -0
  111. data/test/test_epub3maker.rb +155 -3
  112. data/test/test_epubmaker.rb +245 -30
  113. data/test/test_epubmaker_cmd.rb +2 -2
  114. data/test/test_extentions_hash.rb +60 -0
  115. data/test/test_helper.rb +4 -47
  116. data/test/test_htmlbuilder.rb +282 -175
  117. data/test/test_htmltoc.rb +33 -0
  118. data/test/test_i18n.rb +134 -70
  119. data/test/test_idgxmlbuilder.rb +58 -39
  120. data/test/test_latexbuilder.rb +132 -14
  121. data/test/test_lineinput.rb +5 -26
  122. data/test/test_makerhelper.rb +6 -4
  123. data/test/test_markdownbuilder.rb +23 -5
  124. data/test/test_pdfmaker.rb +86 -20
  125. data/test/test_pdfmaker_cmd.rb +1 -3
  126. data/test/test_review_ext.rb +1 -1
  127. data/test/test_template.rb +27 -0
  128. data/test/test_textutils.rb +36 -0
  129. data/test/test_tocparser.rb +25 -0
  130. data/test/test_topbuilder.rb +34 -2
  131. data/test/test_yamlloader.rb +188 -0
  132. metadata +71 -29
  133. data/README.rdoc +0 -81
  134. data/bin/review-epubmaker-legacy +0 -1024
  135. data/doc/ruby-uuid/README +0 -11
  136. data/doc/ruby-uuid/README.ja +0 -34
  137. data/lib/review/compiler/literals_1_8.kpeg +0 -19
  138. data/lib/review/compiler/literals_1_8.rb +0 -432
  139. data/lib/review/compiler/literals_1_9.kpeg +0 -22
  140. data/lib/review/compiler/literals_1_9.rb +0 -435
  141. data/lib/review/extentions/array.rb +0 -25
  142. data/lib/review/htmllayout.rb +0 -41
  143. data/lib/review/inaobuilder.rb +0 -357
  144. data/lib/review/location.rb +0 -24
  145. data/lib/review/node.rb +0 -267
  146. data/lib/review/review.kpeg +0 -724
  147. data/lib/uuid.rb +0 -312
  148. data/rubocop-todo.yml +0 -456
  149. data/test/test_inaobuilder.rb +0 -247
  150. data/test/test_uuid.rb +0 -157
@@ -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 -1, li.lineno # XXX: OK?
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
- =end
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
- =begin
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
- =end
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
- =begin
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
 
@@ -38,13 +38,15 @@ class MakerHelperTest < Test::Unit::TestCase
38
38
  end
39
39
 
40
40
  def test_copy_images_to_dir_convert
41
- touch_file("#{@tmpdir1}/foo.eps")
41
+ if /mswin|mingw|cygwin/ !~ RUBY_PLATFORM
42
+ touch_file("#{@tmpdir1}/foo.eps")
42
43
 
43
- image_files = MakerHelper.copy_images_to_dir(@tmpdir1, @tmpdir2,
44
+ image_files = MakerHelper.copy_images_to_dir(@tmpdir1, @tmpdir2,
44
45
  :convert => {:eps => :png})
45
46
 
46
- assert File.exist?("#{@tmpdir2}/foo.eps.png"), "EPS to PNG conversion failed"
47
- assert image_files.include?("#{@tmpdir1}/foo.eps.png")
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, # for IDGXMLBuilder, HTMLBuilder
16
- "inencoding" => "UTF-8",
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(nil)
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
@@ -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.check_book(@config)
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.check_book(@config)
41
+ @maker.basedir = Dir.pwd
42
+ @maker.remove_old_file
41
43
  end
42
44
  end
43
45
  end
44
46
 
45
- def test_buildpath
46
- assert_equal(@maker.build_path(@config), "./sample-pdf")
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(@config)
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(@config)
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
- "prt"=>"テスト出版",
113
+ "pbl"=>"テスト出版",
114
+ "prt"=>"テスト印刷",
107
115
  })
108
116
  Dir.mktmpdir do |dir|
109
- okuduke = @maker.make_colophon(@config)
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(@config)
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
- tmpl = @maker.get_template(@config)
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 = ReVIEW::PDFMaker.new
163
- tmpl = maker.get_template(@config)
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
@@ -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 RUBY_VERSION !~ /^1.8/
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)
@@ -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
- c = ReVIEW::Compiler.new(builder)
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
+
@@ -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