aozora2html 0.7.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +34 -0
- data/.gitignore +8 -3
- data/.rubocop.yml +227 -0
- data/.travis.yml +5 -0
- data/CHANGELOG.md +33 -0
- data/LICENSE +116 -0
- data/README.md +16 -11
- data/aozora2html.gemspec +6 -6
- data/bin/aozora2html +6 -54
- data/lib/aozora2html/accent_parser.rb +91 -0
- data/lib/aozora2html/error.rb +16 -0
- data/lib/aozora2html/header.rb +139 -0
- data/lib/aozora2html/i18n.rb +28 -0
- data/lib/aozora2html/ruby_buffer.rb +81 -0
- data/lib/aozora2html/style_stack.rb +27 -0
- data/lib/aozora2html/tag/accent.rb +39 -0
- data/lib/aozora2html/tag/block.rb +19 -0
- data/lib/aozora2html/tag/chitsuki.rb +15 -0
- data/lib/aozora2html/tag/dakuten_katakana.rb +23 -0
- data/lib/aozora2html/tag/decorate.rb +18 -0
- data/lib/aozora2html/tag/dir.rb +15 -0
- data/lib/aozora2html/tag/editor_note.rb +16 -0
- data/lib/aozora2html/tag/embed_gaiji.rb +48 -0
- data/lib/aozora2html/tag/font_size.rb +17 -0
- data/lib/aozora2html/tag/gaiji.rb +11 -0
- data/lib/aozora2html/tag/img.rb +21 -0
- data/lib/aozora2html/tag/indent.rb +8 -0
- data/lib/aozora2html/tag/inline.rb +13 -0
- data/lib/aozora2html/tag/inline_caption.rb +15 -0
- data/lib/aozora2html/tag/inline_font_size.rb +18 -0
- data/lib/aozora2html/tag/inline_keigakomi.rb +15 -0
- data/lib/aozora2html/tag/inline_yokogumi.rb +16 -0
- data/lib/aozora2html/tag/jisage.rb +15 -0
- data/lib/aozora2html/tag/jizume.rb +16 -0
- data/lib/aozora2html/tag/kaeriten.rb +15 -0
- data/lib/aozora2html/tag/keigakomi.rb +13 -0
- data/lib/aozora2html/tag/kunten.rb +12 -0
- data/lib/aozora2html/tag/midashi.rb +18 -0
- data/lib/aozora2html/tag/multiline.rb +6 -0
- data/lib/aozora2html/tag/multiline_caption.rb +15 -0
- data/lib/aozora2html/tag/multiline_chitsuki.rb +8 -0
- data/lib/aozora2html/tag/multiline_jisage.rb +8 -0
- data/lib/aozora2html/tag/multiline_midashi.rb +22 -0
- data/lib/aozora2html/tag/multiline_style.rb +17 -0
- data/lib/aozora2html/tag/multiline_yokogumi.rb +17 -0
- data/lib/aozora2html/tag/okurigana.rb +15 -0
- data/lib/aozora2html/tag/oneline_chitsuki.rb +9 -0
- data/lib/aozora2html/tag/oneline_indent.rb +2 -0
- data/lib/aozora2html/tag/oneline_jisage.rb +7 -0
- data/lib/aozora2html/tag/reference_mentioned.rb +46 -0
- data/lib/aozora2html/tag/ruby.rb +98 -0
- data/lib/aozora2html/tag/un_embed_gaiji.rb +24 -0
- data/lib/aozora2html/tag.rb +55 -0
- data/lib/aozora2html/tag_parser.rb +53 -0
- data/lib/aozora2html/utils.rb +93 -0
- data/lib/aozora2html/version.rb +1 -1
- data/lib/aozora2html/yaml_loader.rb +31 -0
- data/lib/aozora2html.rb +0 -4
- data/lib/extensions.rb +44 -0
- data/lib/jstream.rb +68 -0
- data/lib/t2hs.rb +837 -1765
- data/test/test_aozora2html.rb +320 -43
- data/test/test_aozora_accent_parser.rb +13 -2
- data/test/test_command_parse.rb +213 -0
- data/test/test_dakuten_katakana_tag.rb +5 -4
- data/test/test_decorate_tag.rb +5 -4
- data/test/test_dir_tag.rb +5 -4
- data/test/test_editor_note_tag.rb +4 -4
- data/test/test_exception.rb +4 -4
- data/test/test_font_size_tag.rb +15 -7
- data/test/test_gaiji_tag.rb +14 -7
- data/test/test_header.rb +60 -0
- data/test/test_i18n.rb +23 -0
- data/test/test_img_tag.rb +5 -4
- data/test/test_inline_caption_tag.rb +5 -4
- data/test/test_inline_font_size_tag.rb +7 -6
- data/test/test_inline_keigakomi_tag.rb +5 -4
- data/test/test_inline_yokogumi_tag.rb +5 -4
- data/test/test_jizume_tag.rb +7 -6
- data/test/test_jstream.rb +5 -5
- data/test/test_kaeriten_tag.rb +5 -4
- data/test/test_keigakomi_tag.rb +8 -7
- data/test/test_midashi_tag.rb +38 -0
- data/test/test_multiline_caption_tag.rb +7 -6
- data/test/test_multiline_midashi_tag.rb +24 -7
- data/test/test_multiline_style_tag.rb +7 -6
- data/test/test_multiline_yokogumi_tag.rb +7 -6
- data/test/test_okurigana_tag.rb +5 -4
- data/test/test_ruby_parse.rb +130 -0
- data/test/test_ruby_tag.rb +5 -4
- data/test/test_tag_parser.rb +10 -10
- data/vendor/jis2ucs/README.md +3 -6
- data/yml/accent_table.yml +240 -0
- data/yml/command_table.yml +61 -0
- data/yml/jis2ucs.yml +11234 -0
- metadata +74 -42
- data/appveyor.yml +0 -19
- data/lib/accent_tag.rb +0 -23
- data/lib/aozora2html/jis2ucs.rb +0 -11237
- data/lib/embed_gaiji_tag.rb +0 -34
@@ -4,19 +4,20 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class DakutenKatakanaTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
@orig_gaiji_dir = $gaiji_dir
|
8
9
|
$gaiji_dir = "g_dir"
|
9
10
|
stub(@parser).block_allowed_context?{true}
|
10
11
|
end
|
11
12
|
|
12
13
|
def test_dakuten_katakana_new
|
13
|
-
tag =
|
14
|
-
assert_equal
|
15
|
-
assert_equal true, tag.kind_of?(
|
14
|
+
tag = Aozora2Html::Tag::DakutenKatakana.new(@parser,1,"ア".encode("shift_jis"))
|
15
|
+
assert_equal Aozora2Html::Tag::DakutenKatakana, tag.class
|
16
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
16
17
|
end
|
17
18
|
|
18
19
|
def test_to_s
|
19
|
-
tag =
|
20
|
+
tag = Aozora2Html::Tag::DakutenKatakana.new(@parser,1,"ア".encode("shift_jis"))
|
20
21
|
assert_equal "<img src=\"g_dir/1-07/1-07-81.png\" alt=\"※(濁点付き片仮名「ア」、1-07-81)\" class=\"gaiji\" />", tag.to_s.encode("utf-8")
|
21
22
|
end
|
22
23
|
|
data/test/test_decorate_tag.rb
CHANGED
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class DecorateTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_decorate_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::Decorate.new(@parser,"aa",1,:dai)
|
13
|
+
assert_equal Aozora2Html::Tag::Decorate, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::Decorate.new(@parser,"テスト".encode("shift_jis"),"foo","span")
|
18
19
|
assert_equal "<span class=\"foo\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
data/test/test_dir_tag.rb
CHANGED
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class DirTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_dir_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::Dir.new(@parser,"テスト".encode("shift_jis"))
|
13
|
+
assert_equal Aozora2Html::Tag::Dir, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::Dir.new(@parser,"テスト".encode("shift_jis"))
|
18
19
|
assert_equal "<span dir=\"ltr\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
@@ -7,13 +7,13 @@ class EditorNoteTagTest < Test::Unit::TestCase
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_editor_note_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
10
|
+
tag = Aozora2Html::Tag::EditorNote.new(nil,"注記のテスト".encode("shift_jis"))
|
11
|
+
assert_equal Aozora2Html::Tag::EditorNote, tag.class
|
12
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_to_s
|
16
|
-
tag =
|
16
|
+
tag = Aozora2Html::Tag::EditorNote.new(nil,"注記のテスト".encode("shift_jis"))
|
17
17
|
assert_equal "<span class=\"notes\">[#注記のテスト]</span>", tag.to_s.encode("utf-8")
|
18
18
|
end
|
19
19
|
|
data/test/test_exception.rb
CHANGED
@@ -4,16 +4,16 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class ExceptionTest < Test::Unit::TestCase
|
6
6
|
def test_raise_aozora_exception
|
7
|
-
assert_raises(
|
8
|
-
raise
|
7
|
+
assert_raises(Aozora2Html::Error) do
|
8
|
+
raise Aozora2Html::Error, "error!"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def test_raise_aozora_error
|
13
13
|
error_msg = ""
|
14
14
|
begin
|
15
|
-
raise
|
16
|
-
rescue
|
15
|
+
raise Aozora2Html::Error, "sample error"
|
16
|
+
rescue Aozora2Html::Error => msg
|
17
17
|
error_msg = msg.message(123)
|
18
18
|
end
|
19
19
|
assert_equal "エラー(123行目):sample error. \r\n処理を停止します",
|
data/test/test_font_size_tag.rb
CHANGED
@@ -1,33 +1,41 @@
|
|
1
|
+
# -*- coding:utf-8 -*-
|
1
2
|
require 'test_helper'
|
2
3
|
require 'aozora2html'
|
3
4
|
|
4
5
|
class FontSizeTagTest < Test::Unit::TestCase
|
5
6
|
def setup
|
7
|
+
@parser = Object.new
|
6
8
|
stub(@parser).block_allowed_context?{true}
|
7
9
|
end
|
8
10
|
|
9
11
|
def test_font_size_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::FontSize.new(@parser,1,:dai)
|
13
|
+
assert_equal Aozora2Html::Tag::FontSize, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Block)
|
15
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Multiline)
|
14
16
|
end
|
15
17
|
|
16
18
|
def test_to_s
|
17
|
-
tag =
|
19
|
+
tag = Aozora2Html::Tag::FontSize.new(@parser,1,:dai)
|
18
20
|
assert_equal "<div class=\"dai1\" style=\"font-size: large;\">", tag.to_s.encode("utf-8")
|
19
21
|
end
|
20
22
|
|
21
23
|
def test_to_s2
|
22
|
-
tag =
|
24
|
+
tag = Aozora2Html::Tag::FontSize.new(@parser,2,:dai)
|
23
25
|
assert_equal "<div class=\"dai2\" style=\"font-size: x-large;\">", tag.to_s.encode("utf-8")
|
24
26
|
end
|
25
27
|
|
26
28
|
def test_to_s3
|
27
|
-
tag =
|
29
|
+
tag = Aozora2Html::Tag::FontSize.new(@parser,3,:sho)
|
28
30
|
assert_equal "<div class=\"sho3\" style=\"font-size: xx-small;\">", tag.to_s.encode("utf-8")
|
29
31
|
end
|
30
32
|
|
33
|
+
def test_to_s0
|
34
|
+
assert_raise(Aozora2Html::Error.new("文字サイズの指定が不正です".to_sjis)) do
|
35
|
+
_tag = Aozora2Html::Tag::FontSize.new(@parser,0,:sho)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
31
39
|
def teardown
|
32
40
|
end
|
33
41
|
end
|
data/test/test_gaiji_tag.rb
CHANGED
@@ -9,34 +9,41 @@ class EmbedGaijiTagTest < Test::Unit::TestCase
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_gaiji_new
|
12
|
-
egt =
|
12
|
+
egt = Aozora2Html::Tag::EmbedGaiji.new(nil,"foo","1-2-3","name")
|
13
13
|
assert_equal "<img src=\"g_dir/foo/1-2-3.png\" alt=\"※(name)\" class=\"gaiji\" />", egt.to_s.encode("utf-8")
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_unembed_gaiji_new
|
17
|
-
egt =
|
17
|
+
egt = Aozora2Html::Tag::UnEmbedGaiji.new(nil,"テストtest".encode("Shift_JIS"))
|
18
18
|
assert_equal "<span class=\"notes\">[テストtest]</span>", egt.to_s.encode("utf-8")
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_espcaed?
|
22
|
-
egt =
|
22
|
+
egt = Aozora2Html::Tag::UnEmbedGaiji.new(nil,"テストtest".encode("Shift_JIS"))
|
23
23
|
assert_equal false, egt.escaped?
|
24
24
|
end
|
25
25
|
|
26
26
|
def test_espcae!
|
27
|
-
egt =
|
27
|
+
egt = Aozora2Html::Tag::UnEmbedGaiji.new(nil,"テストtest".encode("Shift_JIS"))
|
28
28
|
egt.escape!
|
29
29
|
assert_equal true, egt.escaped?
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_jisx0213
|
33
|
-
|
34
|
-
egt =
|
33
|
+
Aozora2Html::Tag::EmbedGaiji.use_jisx0213 = true
|
34
|
+
egt = Aozora2Html::Tag::EmbedGaiji.new(nil,"foo","1-06-75","snowman")
|
35
|
+
assert_equal "☃", egt.to_s.encode("utf-8")
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_use_unicode
|
39
|
+
Aozora2Html::Tag::EmbedGaiji.use_unicode = true
|
40
|
+
egt = Aozora2Html::Tag::EmbedGaiji.new(nil,"foo","1-06-75","snowman","2603")
|
35
41
|
assert_equal "☃", egt.to_s.encode("utf-8")
|
36
42
|
end
|
37
43
|
|
38
44
|
def teardown
|
39
|
-
|
45
|
+
Aozora2Html::Tag::EmbedGaiji.use_jisx0213 = false
|
46
|
+
Aozora2Html::Tag::EmbedGaiji.use_unicode = false
|
40
47
|
$gaiji_dir = @orig_gaiji_dir
|
41
48
|
end
|
42
49
|
end
|
data/test/test_header.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
require 'aozora2html'
|
4
|
+
|
5
|
+
class HeaderTest < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@header = Aozora2Html::Header.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_header_to_html
|
11
|
+
@header.push("武装せる市街".encode("shift_jis"))
|
12
|
+
@header.push("黒島伝治".encode("shift_jis"))
|
13
|
+
actual = @header.to_html.encode("utf-8")
|
14
|
+
expected =
|
15
|
+
"<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\r\n" +
|
16
|
+
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\r\n" +
|
17
|
+
" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\r\n" +
|
18
|
+
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ja\" >\r\n" +
|
19
|
+
"<head>\r\n" +
|
20
|
+
"\t<meta http-equiv=\"Content-Type\" content=\"text/html;charset=Shift_JIS\" />\r\n" +
|
21
|
+
"\t<meta http-equiv=\"content-style-type\" content=\"text/css\" />\r\n" +
|
22
|
+
"\t<link rel=\"stylesheet\" type=\"text/css\" href=\"../../aozora.css\" />\r\n" +
|
23
|
+
"\t<title>黒島伝治 武装せる市街</title>\r\n" +
|
24
|
+
"\t<script type=\"text/javascript\" src=\"../../jquery-1.4.2.min.js\"></script>\r\n" +
|
25
|
+
" <link rel=\"Schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" />\r\n" +
|
26
|
+
"\t<meta name=\"DC.Title\" content=\"武装せる市街\" />\r\n" +
|
27
|
+
"\t<meta name=\"DC.Creator\" content=\"黒島伝治\" />\r\n" +
|
28
|
+
"\t<meta name=\"DC.Publisher\" content=\"青空文庫\" />\r\n" +
|
29
|
+
"</head>\r\n" +
|
30
|
+
"<body>\r\n" +
|
31
|
+
"<div class=\"metadata\">\r\n" +
|
32
|
+
"<h1 class=\"title\">武装せる市街</h1>\r\n" +
|
33
|
+
"<h2 class=\"author\">黒島伝治</h2>\r\n" +
|
34
|
+
"<br />\r\n" +
|
35
|
+
"<br />\r\n" +
|
36
|
+
"</div>\r\n" +
|
37
|
+
"<div id=\"contents\" style=\"display:none\"></div><div class=\"main_text\">"
|
38
|
+
assert_equal(expected, actual)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_build_title
|
42
|
+
@header.push("武装せる市街".encode("shift_jis"))
|
43
|
+
@header.push("黒島伝治".encode("shift_jis"))
|
44
|
+
header_info = @header.build_header_info()
|
45
|
+
actual = @header.build_title(header_info).encode("utf-8")
|
46
|
+
expected = "<title>黒島伝治 武装せる市街</title>"
|
47
|
+
assert_equal(expected, actual)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_build_title2
|
51
|
+
@header.push("スリーピー・ホローの伝説".encode("shift_jis"))
|
52
|
+
@header.push("故ディードリッヒ・ニッカボッカーの遺稿より".encode("shift_jis"))
|
53
|
+
@header.push("ワシントン・アーヴィング Washington Irving".encode("shift_jis"))
|
54
|
+
@header.push("吉田甲子太郎訳".encode("shift_jis"))
|
55
|
+
header_info = @header.build_header_info()
|
56
|
+
actual = @header.build_title(header_info).encode("utf-8")
|
57
|
+
expected = "<title>ワシントン・アーヴィング Washington Irving 吉田甲子太郎訳 スリーピー・ホローの伝説 故ディードリッヒ・ニッカボッカーの遺稿より</title>"
|
58
|
+
assert_equal(expected, actual)
|
59
|
+
end
|
60
|
+
end
|
data/test/test_i18n.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
require 'aozora2html'
|
4
|
+
|
5
|
+
class I18nTest < Test::Unit::TestCase
|
6
|
+
def test_t
|
7
|
+
assert_equal "警告(123行目):JIS外字「①」が使われています",
|
8
|
+
Aozora2Html::I18n.t(:warn_jis_gaiji,
|
9
|
+
123,
|
10
|
+
"①".encode("cp932").force_encoding("shift_jis"))
|
11
|
+
.force_encoding("cp932").encode("utf-8")
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_ruby_puts_behavior
|
15
|
+
$stdout = StringIO.new
|
16
|
+
begin
|
17
|
+
puts "①".encode("cp932").force_encoding("shift_jis")
|
18
|
+
assert_equal "①\n", $stdout.string.force_encoding("cp932").encode("utf-8")
|
19
|
+
ensure
|
20
|
+
$stdout = STDOUT
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/test/test_img_tag.rb
CHANGED
@@ -3,17 +3,18 @@ require 'aozora2html'
|
|
3
3
|
|
4
4
|
class ImgTagTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
|
+
@parser = Object.new
|
6
7
|
stub(@parser).block_allowed_context?{true}
|
7
8
|
end
|
8
9
|
|
9
10
|
def test_img_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
11
|
+
tag = Aozora2Html::Tag::Img.new(@parser,"foo.png","img1","alt img1",40,50)
|
12
|
+
assert_equal Aozora2Html::Tag::Img, tag.class
|
13
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
13
14
|
end
|
14
15
|
|
15
16
|
def test_to_s
|
16
|
-
tag =
|
17
|
+
tag = Aozora2Html::Tag::Img.new(@parser,"foo.png","img1","alt img1",40,50)
|
17
18
|
assert_equal "<img class=\"img1\" width=\"40\" height=\"50\" src=\"foo.png\" alt=\"alt img1\" />", tag.to_s.encode("utf-8")
|
18
19
|
end
|
19
20
|
|
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class InlineCaptionTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_caption_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::InlineCaption.new(@parser,"aaa")
|
13
|
+
assert_equal Aozora2Html::Tag::InlineCaption, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::InlineCaption.new(@parser,"テスト".encode("shift_jis"))
|
18
19
|
assert_equal "<span class=\"caption\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
@@ -4,27 +4,28 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class InlineFontSizeTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_font_size_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::InlineFontSize.new(@parser,"aa",1,:dai)
|
13
|
+
assert_equal Aozora2Html::Tag::InlineFontSize, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::InlineFontSize.new(@parser,"テスト".encode("shift_jis"),1,:dai)
|
18
19
|
assert_equal "<span class=\"dai1\" style=\"font-size: large;\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
21
22
|
def test_to_s2
|
22
|
-
tag =
|
23
|
+
tag = Aozora2Html::Tag::InlineFontSize.new(@parser,"テスト".encode("shift_jis"),2,:sho)
|
23
24
|
assert_equal "<span class=\"sho2\" style=\"font-size: x-small;\">テスト</span>", tag.to_s.encode("utf-8")
|
24
25
|
end
|
25
26
|
|
26
27
|
def test_to_s3
|
27
|
-
tag =
|
28
|
+
tag = Aozora2Html::Tag::InlineFontSize.new(@parser,"テスト".encode("shift_jis"),3,:sho)
|
28
29
|
assert_equal "<span class=\"sho3\" style=\"font-size: xx-small;\">テスト</span>", tag.to_s.encode("utf-8")
|
29
30
|
end
|
30
31
|
|
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class InlineKeigakomiTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_keigakomi_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::InlineKeigakomi.new(@parser,"aaa")
|
13
|
+
assert_equal Aozora2Html::Tag::InlineKeigakomi, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::InlineKeigakomi.new(@parser,"テスト".encode("shift_jis"))
|
18
19
|
assert_equal "<span class=\"keigakomi\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class InlineYokogumiTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_yokogumi_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::InlineYokogumi.new(@parser,"aaa")
|
13
|
+
assert_equal Aozora2Html::Tag::InlineYokogumi, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::InlineYokogumi.new(@parser,"テスト".encode("shift_jis"))
|
18
19
|
assert_equal "<span class=\"yokogumi\">テスト</span>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
data/test/test_jizume_tag.rb
CHANGED
@@ -3,18 +3,19 @@ require 'aozora2html'
|
|
3
3
|
|
4
4
|
class JizumeTagTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
|
-
|
6
|
+
@parser = Object.new
|
7
|
+
stub(@parser).block_allowed_context?{true}
|
7
8
|
end
|
8
9
|
|
9
10
|
def test_jizume_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
13
|
-
assert_equal true, tag.kind_of?(
|
11
|
+
tag = Aozora2Html::Tag::Jizume.new(@parser,50)
|
12
|
+
assert_equal Aozora2Html::Tag::Jizume, tag.class
|
13
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Block)
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Multiline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::Jizume.new(@parser,50)
|
18
19
|
assert_equal "<div class=\"jizume_50\" style=\"width: 50em\">", tag.to_s
|
19
20
|
assert_equal "</div>", tag.close_tag
|
20
21
|
end
|
data/test/test_jstream.rb
CHANGED
@@ -28,8 +28,8 @@ class JstreamTest < Test::Unit::TestCase
|
|
28
28
|
assert_equal "b", stm.read_char.encode("utf-8")
|
29
29
|
assert_equal "\r\n", stm.read_char.encode("utf-8")
|
30
30
|
assert_equal :eof, stm.read_char
|
31
|
-
assert_equal "\r\n", stm.read_char #
|
32
|
-
assert_equal :eof, stm.read_char #
|
31
|
+
assert_equal "\r\n", stm.read_char # :eof以降は正しい値を保証しない
|
32
|
+
assert_equal :eof, stm.read_char # 何度もread_charすると:eofが複数回出る
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_peek_char
|
@@ -39,9 +39,9 @@ class JstreamTest < Test::Unit::TestCase
|
|
39
39
|
assert_equal "あ", stm.peek_char(1).encode("utf-8")
|
40
40
|
assert_equal "5", stm.peek_char(2).encode("utf-8")
|
41
41
|
assert_equal "\r\n", stm.peek_char(3).encode("utf-8")
|
42
|
-
assert_equal "\r\n", stm.peek_char(4).encode("utf-8") #
|
43
|
-
assert_equal "\r\n", stm.peek_char(5).encode("utf-8") #
|
44
|
-
assert_equal "\r\n", stm.peek_char(100).encode("utf-8") #
|
42
|
+
assert_equal "\r\n", stm.peek_char(4).encode("utf-8") # 改行文字以降は正しい値を保証しない
|
43
|
+
assert_equal "\r\n", stm.peek_char(5).encode("utf-8") # 同上
|
44
|
+
assert_equal "\r\n", stm.peek_char(100).encode("utf-8") # 同上
|
45
45
|
assert_equal "a", stm.read_char.encode("utf-8")
|
46
46
|
|
47
47
|
assert_equal "あ", stm.peek_char(0).encode("utf-8")
|
data/test/test_kaeriten_tag.rb
CHANGED
@@ -4,17 +4,18 @@ require 'aozora2html'
|
|
4
4
|
|
5
5
|
class KaeritenTagTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
|
+
@parser = Object.new
|
7
8
|
stub(@parser).block_allowed_context?{true}
|
8
9
|
end
|
9
10
|
|
10
11
|
def test_kaeriten_new
|
11
|
-
tag =
|
12
|
-
assert_equal
|
13
|
-
assert_equal true, tag.kind_of?(
|
12
|
+
tag = Aozora2Html::Tag::Kaeriten.new(@parser,"aaa")
|
13
|
+
assert_equal Aozora2Html::Tag::Kaeriten, tag.class
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::Kaeriten.new(@parser,"テスト".encode("shift_jis"))
|
18
19
|
assert_equal "<sub class=\"kaeriten\">テスト</sub>", tag.to_s.encode("utf-8")
|
19
20
|
end
|
20
21
|
|
data/test/test_keigakomi_tag.rb
CHANGED
@@ -3,24 +3,25 @@ require 'aozora2html'
|
|
3
3
|
|
4
4
|
class KeigakomiTagTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
|
-
|
6
|
+
@parser = Object.new
|
7
|
+
stub(@parser).block_allowed_context?{true}
|
7
8
|
end
|
8
9
|
|
9
10
|
def test_keigakomi_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
13
|
-
assert_equal true, tag.kind_of?(
|
11
|
+
tag = Aozora2Html::Tag::Keigakomi.new(@parser,2)
|
12
|
+
assert_equal Aozora2Html::Tag::Keigakomi, tag.class
|
13
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Block)
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Multiline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::Keigakomi.new(@parser)
|
18
19
|
assert_equal "<div class=\"keigakomi\" style=\"border: solid 1px\">", tag.to_s
|
19
20
|
assert_equal "</div>", tag.close_tag
|
20
21
|
end
|
21
22
|
|
22
23
|
def test_to_s2
|
23
|
-
tag =
|
24
|
+
tag = Aozora2Html::Tag::Keigakomi.new(@parser,2)
|
24
25
|
assert_equal "<div class=\"keigakomi\" style=\"border: solid 2px\">", tag.to_s
|
25
26
|
assert_equal "</div>", tag.close_tag
|
26
27
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
require 'aozora2html'
|
4
|
+
|
5
|
+
class MidashiTagTest < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@parser = Object.new
|
8
|
+
stub(@parser).block_allowed_context?{true}
|
9
|
+
stub(@parser).new_midashi_id{2}
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_midashi_new
|
13
|
+
tag = Aozora2Html::Tag::Midashi.new(@parser, "テスト見出し".encode("shift_jis"), "小".encode("shift_jis"), :normal)
|
14
|
+
assert_equal Aozora2Html::Tag::Midashi, tag.class
|
15
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Inline)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_to_s
|
19
|
+
tag = Aozora2Html::Tag::Midashi.new(@parser, "テスト見出し".encode("shift_jis"), "小".encode("shift_jis"), :normal)
|
20
|
+
assert_equal "<h5 class=\"ko-midashi\"><a class=\"midashi_anchor\" id=\"midashi2\">"+"テスト見出し".encode("shift_jis")+"</a></h5>", tag.to_s
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_to_s_mado
|
24
|
+
tag = Aozora2Html::Tag::Midashi.new(@parser, "テスト見出し".encode("shift_jis"), "小".encode("shift_jis"), :mado)
|
25
|
+
assert_equal "<h5 class=\"mado-ko-midashi\"><a class=\"midashi_anchor\" id=\"midashi2\">"+"テスト見出し".encode("shift_jis")+"</a></h5>", tag.to_s
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_undeined_midashi
|
29
|
+
begin
|
30
|
+
Aozora2Html::Tag::Midashi.new(@parser, "テスト見出し".encode("shift_jis"), "あ".encode("shift_jis"), :normal)
|
31
|
+
rescue Aozora2Html::Error => e
|
32
|
+
assert_equal e.message(123).encode("utf-8"), "エラー(123行目):未定義な見出しです. \r\n処理を停止します"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def teardown
|
37
|
+
end
|
38
|
+
end
|
@@ -3,18 +3,19 @@ require 'aozora2html'
|
|
3
3
|
|
4
4
|
class MultilineCaptionTagTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
|
-
|
6
|
+
@parser = Object.new
|
7
|
+
stub(@parser).block_allowed_context?{true}
|
7
8
|
end
|
8
9
|
|
9
10
|
def test_multiline_caption_new
|
10
|
-
tag =
|
11
|
-
assert_equal
|
12
|
-
assert_equal true, tag.kind_of?(
|
13
|
-
assert_equal true, tag.kind_of?(
|
11
|
+
tag = Aozora2Html::Tag::MultilineCaption.new(@parser)
|
12
|
+
assert_equal Aozora2Html::Tag::MultilineCaption, tag.class
|
13
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Block)
|
14
|
+
assert_equal true, tag.kind_of?(Aozora2Html::Tag::Multiline)
|
14
15
|
end
|
15
16
|
|
16
17
|
def test_to_s
|
17
|
-
tag =
|
18
|
+
tag = Aozora2Html::Tag::MultilineCaption.new(@parser)
|
18
19
|
assert_equal "<div class=\"caption\">", tag.to_s
|
19
20
|
assert_equal "</div>", tag.close_tag
|
20
21
|
end
|