narou 1.5.11 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of narou might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/ChangeLog.md +619 -432
- data/Gemfile +9 -0
- data/README.md +101 -76
- data/lib/color.rb +62 -22
- data/lib/command.rb +21 -19
- data/lib/command/alias.rb +9 -9
- data/lib/command/backup.rb +11 -4
- data/lib/command/browser.rb +8 -7
- data/lib/command/convert.rb +25 -77
- data/lib/command/diff.rb +67 -36
- data/lib/command/download.rb +5 -4
- data/lib/command/flag.rb +32 -6
- data/lib/command/folder.rb +7 -5
- data/lib/command/freeze.rb +21 -11
- data/lib/command/help.rb +29 -17
- data/lib/command/init.rb +7 -7
- data/lib/command/inspect.rb +6 -5
- data/lib/command/list.rb +106 -25
- data/lib/command/mail.rb +6 -7
- data/lib/command/remove.rb +9 -7
- data/lib/command/send.rb +6 -5
- data/lib/command/setting.rb +51 -16
- data/lib/command/tag.rb +179 -0
- data/lib/command/update.rb +9 -8
- data/lib/command/version.rb +4 -4
- data/lib/commandbase.rb +79 -8
- data/lib/commandline.rb +14 -8
- data/lib/converterbase.rb +78 -28
- data/lib/database.rb +3 -3
- data/lib/device.rb +26 -13
- data/lib/device/ibooks.rb +116 -0
- data/lib/device/ibunko.rb +45 -0
- data/lib/device/kindle.rb +4 -0
- data/lib/device/kobo.rb +4 -0
- data/lib/device/library/windows.rb +12 -4
- data/lib/device/reader.rb +9 -0
- data/lib/diffviewer.rb +147 -0
- data/lib/downloader.rb +195 -80
- data/lib/extensions/jruby.rb +33 -0
- data/lib/extensions/windows.rb +8 -9
- data/lib/helper.rb +79 -37
- data/lib/illustration.rb +1 -1
- data/lib/inspector.rb +2 -2
- data/lib/inventory.rb +48 -0
- data/lib/logger.rb +28 -4
- data/lib/narou.rb +9 -7
- data/lib/narou/api.rb +7 -2
- data/lib/novelconverter.rb +46 -19
- data/lib/novelinfo.rb +13 -3
- data/lib/novelsetting.rb +17 -9
- data/lib/version.rb +1 -1
- data/narou.gemspec +106 -27
- data/narou.rb +2 -2
- data/spec/convert_spec.rb +102 -0
- data/spec/data/convert_test/auto_indent/correct_test_auto_indent.txt +18 -0
- data/spec/data/convert_test/auto_indent/test_auto_indent.txt +21 -0
- data/spec/data/convert_test/auto_join_bracket/correct_test_auto_join_bracket.txt +12 -0
- data/spec/data/convert_test/auto_join_bracket/test_auto_join_bracket.txt +16 -0
- data/spec/data/convert_test/auto_join_line/correct_test_auto_join_line.txt +36 -0
- data/spec/data/convert_test/auto_join_line/test_auto_join_line.txt +51 -0
- data/spec/data/convert_test/convert_page_break/correct_test_convert_page_break.txt +21 -0
- data/spec/data/convert_test/convert_page_break/setting.ini +5 -0
- data/spec/data/convert_test/convert_page_break/test_convert_page_break.txt +60 -0
- data/spec/data/convert_test/force_indent_special_chapter/correct_test_force_indent_special_chapter.txt +64 -0
- data/spec/data/convert_test/force_indent_special_chapter/test_force_indent_special_chapter.txt +61 -0
- data/spec/data/convert_test/horizontal_ellipsis/correct_test_horizontal_ellipsis.txt +52 -0
- data/spec/data/convert_test/horizontal_ellipsis/test_horizontal_ellipsis.txt +57 -0
- data/spec/data/convert_test/kanji_num/correct_test_kanji_num.txt +49 -0
- data/spec/data/convert_test/kanji_num/test_kanji_num.txt +56 -0
- data/spec/data/convert_test/nonokagi/correct_test_nonokagi.txt +29 -0
- data/spec/data/convert_test/nonokagi/test_nonokagi.txt +34 -0
- data/spec/data/convert_test/replace/correct_test_replace.txt +12 -0
- data/spec/data/convert_test/replace/replace.txt +7 -0
- data/spec/data/convert_test/replace/test_replace.txt +14 -0
- data/spec/data/convert_test/ruby/correct_test_ruby.txt +131 -0
- data/spec/data/convert_test/ruby/test_ruby.txt +170 -0
- data/spec/data/convert_test/ruby_youon/correct_test_ruby_youon.txt +12 -0
- data/spec/data/convert_test/ruby_youon/setting.ini +2 -0
- data/spec/data/convert_test/ruby_youon/test_ruby_youon.txt +14 -0
- data/spec/data/convert_test/sesame/correct_test_sesame.txt +40 -0
- data/spec/data/convert_test/sesame/test_sesame.txt +52 -0
- data/spec/data/convert_test/to_odd_leader/correct_test_to_odd_leader.txt +20 -0
- data/spec/data/convert_test/to_odd_leader/test_to_odd_leader.txt +21 -0
- data/spec/device_spec.rb +3 -3
- data/spec/generator/convert_spec_gen.rb +95 -0
- data/spec/html_spec.rb +9 -8
- data/spec/ini_spec.rb +31 -31
- data/spec/novelinfo_spec.rb +2 -2
- data/spec/num_to_kanji_spec.rb +2 -2
- data/template/diff.txt.erb +5 -2
- data/template/ibunko_novel.txt.erb +2 -1
- data/template/novel.txt.erb +16 -3
- data/template/setting.ini.erb +1 -1
- data/webnovel/ncode.syosetu.com.yaml +7 -7
- data/webnovel/novel18.syosetu.com.yaml +7 -7
- data/webnovel/syosetu.org.yaml +8 -11
- metadata +193 -23
- data/lib/globalsetting.rb +0 -64
- data/lib/localsetting.rb +0 -63
@@ -0,0 +1,40 @@
|
|
1
|
+
test_sesame
|
2
|
+
whiteleaf
|
3
|
+
|
4
|
+
[#改ページ]
|
5
|
+
[#3字下げ][#ここから中見出し]傍点テスト[#ここで中見出し終わり]
|
6
|
+
|
7
|
+
|
8
|
+
傍点にならないパターン
|
9
|
+
|
10
|
+
[#二分アキ](………………)
|
11
|
+
[#二分アキ](………………)
|
12
|
+
[#二分アキ](………………)
|
13
|
+
[#二分アキ](…………)
|
14
|
+
なんということだ(…………)
|
15
|
+
|
16
|
+
漢字※[#始め二重山括弧]……※[#終わり二重山括弧]
|
17
|
+
|
18
|
+
|
19
|
+
傍点になるパターン
|
20
|
+
|
21
|
+
次の漢字には[#傍点]圏点[#傍点終わり] 次の漢字には[#傍点]圏点[#傍点終わり]
|
22
|
+
次の漢字には[#傍点]圏点[#傍点終わり]次の漢字には[#傍点]圏点[#傍点終わり]
|
23
|
+
|
24
|
+
[#傍点]この文章には圏点[#傍点終わり] [#傍点]この文章には圏点[#傍点終わり]
|
25
|
+
[#傍点]この文章には圏点[#傍点終わり][#傍点]この文章には圏点[#傍点終わり]
|
26
|
+
|
27
|
+
中黒の文字数が合っていない場合の[#傍点]圏点化[#傍点終わり]
|
28
|
+
中黒の文字数が合っていない場合の[#傍点]圏点化[#傍点終わり]
|
29
|
+
中黒の文字数が[#傍点]合っていない場合の圏点化[#傍点終わり]
|
30
|
+
|
31
|
+
[#二分アキ]※[#始め二重山括弧]二重山括弧の中での[#傍点]圏点化[#傍点終わり]です※[#終わり二重山括弧]
|
32
|
+
[#二分アキ](括弧の中での[#傍点]圏点化[#傍点終わり]です)
|
33
|
+
|
34
|
+
読点で圏点(、) NG
|
35
|
+
読点で※[#縦線]圏点(、) NG
|
36
|
+
※[#縦線]読点で圏点(、) NG
|
37
|
+
|
38
|
+
読点で[#傍点]圏点[#傍点終わり]
|
39
|
+
読点で[#傍点]圏点[#傍点終わり]
|
40
|
+
[#傍点]読点で圏点[#傍点終わり]
|
@@ -0,0 +1,52 @@
|
|
1
|
+
test_sesame
|
2
|
+
whiteleaf
|
3
|
+
|
4
|
+
[#改ページ]
|
5
|
+
傍点テスト
|
6
|
+
|
7
|
+
|
8
|
+
傍点にならないパターン
|
9
|
+
|
10
|
+
|
11
|
+
(・・・・・・・・・・・・・・)
|
12
|
+
|
13
|
+
(………………)
|
14
|
+
|
15
|
+
(……………)
|
16
|
+
(・・・・・・・・・・・)
|
17
|
+
なんということだ(・・・・・・・・)
|
18
|
+
|
19
|
+
|
20
|
+
漢字|《・・・》
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
傍点になるパターン
|
26
|
+
|
27
|
+
|
28
|
+
次の漢字には圏点《・・・・・・》 次の漢字には圏点(・・・・・・)
|
29
|
+
次の漢字には圏点《・・・・・・》次の漢字には圏点(・・・・・・)
|
30
|
+
|
31
|
+
|
32
|
+
|この文章には圏点《・・・・・・》 |この文章には圏点《・・・・・・》
|
33
|
+
|この文章には圏点《・・・・・・》|この文章には圏点《・・・・・・》
|
34
|
+
|
35
|
+
|
36
|
+
中黒の文字数が合っていない場合の圏点化《・・・・・・・》
|
37
|
+
中黒の文字数が合っていない場合の|圏点化《・・・・・・・》
|
38
|
+
中黒の文字数が|合っていない場合の圏点化《・・・》
|
39
|
+
|
40
|
+
|
41
|
+
《二重山括弧の中での|圏点化《・・・》です》
|
42
|
+
(括弧の中での|圏点化《・・・》です)
|
43
|
+
|
44
|
+
|
45
|
+
読点で圏点(、、) NG
|
46
|
+
読点で|圏点(、、) NG
|
47
|
+
|読点で圏点(、、) NG
|
48
|
+
|
49
|
+
|
50
|
+
読点で圏点《、、》
|
51
|
+
読点で|圏点《、、》
|
52
|
+
|読点で圏点《、、》
|
data/spec/device_spec.rb
CHANGED
@@ -12,7 +12,7 @@ if Helper.os_windows?
|
|
12
12
|
module Dummy
|
13
13
|
extend Device::Library::Windows
|
14
14
|
end
|
15
|
-
Dummy.get_device_root_dir("Windows7_OS").
|
15
|
+
expect(Dummy.get_device_root_dir("Windows7_OS")).to eq("C:/")
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -22,7 +22,7 @@ if Helper.os_windows?
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "は存在するべき" do
|
25
|
-
Device.exists?("kindle").
|
25
|
+
expect(Device.exists?("kindle")).to be_truthy
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -32,7 +32,7 @@ if Helper.os_windows?
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "は存在するべき" do
|
35
|
-
Device.exists?("kobo").
|
35
|
+
expect(Device.exists?("kobo")).to be_truthy
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# -*- Encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
+
#
|
5
|
+
|
6
|
+
# convert コマンドのテストを自動生成する
|
7
|
+
#
|
8
|
+
# spec/data/convert_test/ 以下に各種テストケースごとにフォルダ分けして、
|
9
|
+
# その中に test_HOGE.txt を用意すると認識する。
|
10
|
+
# そのテストケースごとにreplace.txtやsetting.iniも置ける。
|
11
|
+
# テキストのタイトルは(拡張子を除いた)ファイル名と同じでなければならない。
|
12
|
+
# 想定する出力例は correct_test_HOGE.txt に書く。
|
13
|
+
|
14
|
+
require "erb"
|
15
|
+
|
16
|
+
spec_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
17
|
+
recipe_dir = File.join(spec_dir, "data/convert_test")
|
18
|
+
pwd = Dir.pwd
|
19
|
+
Dir.chdir(recipe_dir)
|
20
|
+
# テストファイルのリストを作成
|
21
|
+
convert_test_text_list = Dir.glob(File.join("*", "test_*.txt")).keep_if { |path|
|
22
|
+
dir = File.dirname(path)
|
23
|
+
basename = File.basename(path)
|
24
|
+
unless File.exists?(File.join(dir, "correct_#{basename}"))
|
25
|
+
puts <<-EOS
|
26
|
+
[Warning]
|
27
|
+
テストケース(#{path})は見つかりましたが、出力例のテキストデータが見つかりません。
|
28
|
+
correct_#{basename} を用意して下さい。
|
29
|
+
|
30
|
+
EOS
|
31
|
+
end
|
32
|
+
true
|
33
|
+
}
|
34
|
+
Dir.chdir(pwd)
|
35
|
+
result = ERB.new(DATA.read, nil, "-").result(binding)
|
36
|
+
output_path = File.join(spec_dir, "convert_spec.rb")
|
37
|
+
File.write(output_path, result)
|
38
|
+
puts "#{output_path} を出力しました"
|
39
|
+
|
40
|
+
__END__
|
41
|
+
# -*- coding: utf-8 -*-
|
42
|
+
#
|
43
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
44
|
+
#
|
45
|
+
# auto generated at <%= Time.now %>
|
46
|
+
|
47
|
+
Encoding.default_external = Encoding::UTF_8
|
48
|
+
|
49
|
+
require "termcolor"
|
50
|
+
require_relative "../lib/commandline"
|
51
|
+
require_relative "../lib/logger"
|
52
|
+
|
53
|
+
AUTHOR = "whiteleaf"
|
54
|
+
$debug = File.exists?(File.expand_path(File.join(File.dirname(__FILE__), "../debug")))
|
55
|
+
|
56
|
+
describe "convert" do
|
57
|
+
before :all do
|
58
|
+
test_text_dir = File.join(File.dirname(__FILE__), "data/convert_test")
|
59
|
+
@pwd = Dir.pwd
|
60
|
+
Dir.chdir(test_text_dir)
|
61
|
+
end
|
62
|
+
|
63
|
+
after :all do
|
64
|
+
# 変換した際に出力される各ファイルを削除
|
65
|
+
unless $debug
|
66
|
+
glob_path = "*/\\[#{AUTHOR}\\]*.txt\0*/{見出しリスト,調査ログ}.txt"
|
67
|
+
glob_path.encode!("Windows-31J") if RbConfig::CONFIG["host_os"] =~ /mswin(?!ce)|mingw|bccwin/i
|
68
|
+
Dir.glob(glob_path) do |path|
|
69
|
+
File.delete(path)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
Dir.chdir(@pwd)
|
73
|
+
end
|
74
|
+
|
75
|
+
def load_file(path)
|
76
|
+
# 行末の空白と改行の違いは無視する
|
77
|
+
File.read(path).gsub("\r", "").rstrip
|
78
|
+
end
|
79
|
+
|
80
|
+
def check_answer(path)
|
81
|
+
dir = File.dirname(path)
|
82
|
+
filename = File.basename(path)
|
83
|
+
$stdout.silence do
|
84
|
+
CommandLine.run(["convert", path, "--no-epub", "--no-open", "--ignore-force"])
|
85
|
+
end
|
86
|
+
output_file = File.join(dir, "[#{AUTHOR}] #{filename}")
|
87
|
+
correct_file = File.join(dir, "correct_#{filename}")
|
88
|
+
expect(load_file(output_file)).to eq load_file(correct_file)
|
89
|
+
end
|
90
|
+
<% convert_test_text_list.each do |path| %>
|
91
|
+
it "<%= path %>" do
|
92
|
+
check_answer("<%= path %>")
|
93
|
+
end
|
94
|
+
<% end -%>
|
95
|
+
end
|
data/spec/html_spec.rb
CHANGED
@@ -23,31 +23,32 @@ describe HTML do
|
|
23
23
|
["美食を<ruby><rb>堪能</rb><rp>(</rp><rt>たんのう</rt><rp>)</rp></ruby>した", "美食を|堪能《たんのう》した"],
|
24
24
|
]
|
25
25
|
rubies.each do |ruby|
|
26
|
-
@html.ruby_to_aozora(ruby[0]).
|
26
|
+
expect(@html.ruby_to_aozora(ruby[0])).to eq(ruby[1])
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
it "<b> → 太字" do
|
31
|
-
@html.b_to_aozora("次の文字は<b>太字</b>に").
|
31
|
+
expect(@html.b_to_aozora("次の文字は<b>太字</b>に")).to eq("次の文字は[#太字]太字[#太字終わり]に")
|
32
32
|
end
|
33
33
|
|
34
34
|
it "<i> → 斜体" do
|
35
|
-
@html.i_to_aozora("次の文字は<i>斜体</i>に").
|
35
|
+
expect(@html.i_to_aozora("次の文字は<i>斜体</i>に")).to eq("次の文字は[#斜体]斜体[#斜体終わり]に")
|
36
36
|
end
|
37
37
|
|
38
38
|
it "<s> → 取消線" do
|
39
|
-
@html.s_to_aozora("次の文字は<s>取消線</s>に").
|
39
|
+
expect(@html.s_to_aozora("次の文字は<s>取消線</s>に")).to eq("次の文字は[#取消線]取消線[#取消線終わり]に")
|
40
40
|
end
|
41
41
|
|
42
42
|
it "<br> → 改行" do
|
43
|
-
@html.br_to_aozora("あいう<br>かきく<br />\nさしす<BR>").
|
43
|
+
expect(@html.br_to_aozora("あいう<br>かきく<br />\nさしす<BR>")).to eq("あいう\nかきく\nさしす\n")
|
44
44
|
end
|
45
45
|
|
46
46
|
it "<img> → 挿絵注記" do
|
47
|
-
@html.img_to_aozora('<img src="./images/100.jpg">').
|
47
|
+
expect(@html.img_to_aozora('<img src="./images/100.jpg">')).to eq("[#挿絵(./images/100.jpg)入る]")
|
48
48
|
@html.set_illust_setting(current_url: "http://novel.example.com/10510/")
|
49
|
-
@html.img_to_aozora('<img src="./images/100.jpg">').
|
49
|
+
expect(@html.img_to_aozora('<img src="./images/100.jpg">')).to eq(
|
50
50
|
"[#挿絵(http://novel.example.com/10510/images/100.jpg)入る]"
|
51
|
+
)
|
51
52
|
@html.set_illust_setting(current_url: nil)
|
52
53
|
end
|
53
54
|
|
@@ -55,6 +56,6 @@ describe HTML do
|
|
55
56
|
test_html = File.read(html_test_html_path, encoding: "utf-8")
|
56
57
|
test_txt = File.read(html_test_txt_path, encoding: "utf-8")
|
57
58
|
html = HTML.new(test_html)
|
58
|
-
html.to_aozora.
|
59
|
+
expect(html.to_aozora).to eq(test_txt)
|
59
60
|
end
|
60
61
|
end
|
data/spec/ini_spec.rb
CHANGED
@@ -13,67 +13,67 @@ describe Ini, "#cast" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "class type should be Fixnum" do
|
16
|
-
@ini.cast("100").class.
|
16
|
+
expect(@ini.cast("100").class).to eq Fixnum
|
17
17
|
end
|
18
18
|
|
19
19
|
it "return 100" do
|
20
|
-
@ini.cast("100").
|
20
|
+
expect(@ini.cast("100")).to eq 100
|
21
21
|
end
|
22
22
|
|
23
23
|
it "return 100" do
|
24
|
-
@ini.cast("+100").
|
24
|
+
expect(@ini.cast("+100")).to eq 100
|
25
25
|
end
|
26
26
|
|
27
27
|
it "return -100" do
|
28
|
-
@ini.cast("-100").
|
28
|
+
expect(@ini.cast("-100")).to eq -100
|
29
29
|
end
|
30
30
|
|
31
|
-
it "class type
|
32
|
-
@ini.cast("10.5").class.
|
31
|
+
it "class type).to be Float" do
|
32
|
+
expect(@ini.cast("10.5").class).to eq Float
|
33
33
|
end
|
34
34
|
|
35
35
|
it "return 10.5" do
|
36
|
-
@ini.cast("10.5").
|
36
|
+
expect(@ini.cast("10.5")).to eq 10.5
|
37
37
|
end
|
38
38
|
|
39
39
|
it "return +10.5" do
|
40
|
-
@ini.cast("+10.5").
|
40
|
+
expect(@ini.cast("+10.5")).to eq 10.5
|
41
41
|
end
|
42
42
|
|
43
43
|
it "return -10.5" do
|
44
|
-
@ini.cast("-10.5").
|
44
|
+
expect(@ini.cast("-10.5")).to eq -10.5
|
45
45
|
end
|
46
46
|
|
47
47
|
it "return true" do
|
48
|
-
@ini.cast("true").
|
48
|
+
expect(@ini.cast("true")).to eq true
|
49
49
|
end
|
50
50
|
|
51
51
|
it "return false" do
|
52
|
-
@ini.cast("false").
|
52
|
+
expect(@ini.cast("false")).to eq false
|
53
53
|
end
|
54
54
|
|
55
55
|
it "return `string'" do
|
56
|
-
@ini.cast("string").
|
56
|
+
expect(@ini.cast("string")).to eq "string"
|
57
57
|
end
|
58
58
|
|
59
59
|
it "return `string'" do
|
60
|
-
@ini.cast("'string'").
|
60
|
+
expect(@ini.cast("'string'")).to eq "string"
|
61
61
|
end
|
62
62
|
|
63
63
|
it "return `string'" do
|
64
|
-
@ini.cast('"string"').
|
64
|
+
expect(@ini.cast('"string"')).to eq "string"
|
65
65
|
end
|
66
66
|
|
67
67
|
it "return nil" do
|
68
|
-
@ini.cast("nil").
|
68
|
+
expect(@ini.cast("nil")).to eq nil
|
69
69
|
end
|
70
70
|
|
71
71
|
it "return nil" do
|
72
|
-
@ini.cast("null").
|
72
|
+
expect(@ini.cast("null")).to eq nil
|
73
73
|
end
|
74
74
|
|
75
75
|
it "empty string cast to nil" do
|
76
|
-
@ini.cast("null").
|
76
|
+
expect(@ini.cast("null")).to eq nil
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -84,12 +84,12 @@ describe Ini, "を初期化した場合:" do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it "は global セクションだけがあること" do
|
87
|
-
@ini.object.count.
|
88
|
-
@ini.object.include?("global").
|
87
|
+
expect(@ini.object.count).to eq 1
|
88
|
+
expect(@ini.object.include?("global")).to be_truthy
|
89
89
|
end
|
90
90
|
|
91
91
|
it "の global セクションは空のハッシュだけであること" do
|
92
|
-
@ini.object["global"].empty
|
92
|
+
expect(@ini.object["global"].empty?).to be_truthy
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
@@ -100,46 +100,46 @@ describe "test.ini" do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
it "は Hash であること" do
|
103
|
-
@ini_data.class.
|
103
|
+
expect(@ini_data.class).to eq Hash
|
104
104
|
end
|
105
105
|
|
106
106
|
it "はセクションが2つであること" do
|
107
|
-
@ini_data.count.
|
107
|
+
expect(@ini_data.count).to eq 2
|
108
108
|
end
|
109
109
|
|
110
110
|
it "はglobalセクションが必ずあること" do
|
111
|
-
@ini_data.include?("global").
|
111
|
+
expect(@ini_data.include?("global")).to be_truthy
|
112
112
|
end
|
113
113
|
|
114
114
|
it "はsub_sectionがあること" do
|
115
|
-
@ini_data.include?("sub_section").
|
115
|
+
expect(@ini_data.include?("sub_section")).to be_truthy
|
116
116
|
end
|
117
117
|
|
118
118
|
it "は global_string が 文字列 という文字であること" do
|
119
|
-
@ini_data["global"]["global_string"].
|
119
|
+
expect(@ini_data["global"]["global_string"]).to eq "文字列"
|
120
120
|
end
|
121
121
|
|
122
122
|
it "は true_value が true であること" do
|
123
|
-
@ini_data["sub_section"]["true_value"].
|
123
|
+
expect(@ini_data["sub_section"]["true_value"]).to eq true
|
124
124
|
end
|
125
125
|
|
126
126
|
it "は false_value が false であること" do
|
127
|
-
@ini_data["sub_section"]["false_value"].
|
127
|
+
expect(@ini_data["sub_section"]["false_value"]).to eq false
|
128
128
|
end
|
129
129
|
|
130
130
|
it "は nil_value_1 が nil であること" do
|
131
|
-
@ini_data["sub_section"]["nil_value_1"].
|
131
|
+
expect(@ini_data["sub_section"]["nil_value_1"]).to eq nil
|
132
132
|
end
|
133
133
|
|
134
134
|
it "は nil_value_2 が nil であること" do
|
135
|
-
@ini_data["sub_section"]["nil_value_2"].
|
135
|
+
expect(@ini_data["sub_section"]["nil_value_2"]).to eq nil
|
136
136
|
end
|
137
137
|
|
138
138
|
it "は number が 100 であること" do
|
139
|
-
@ini_data["sub_section"]["number"].
|
139
|
+
expect(@ini_data["sub_section"]["number"]).to eq 100
|
140
140
|
end
|
141
141
|
|
142
142
|
it 'は quote_string が 囲まれた文字列 であること' do
|
143
|
-
@ini_data["sub_section"]["quote_string"].
|
143
|
+
expect(@ini_data["sub_section"]["quote_string"]).to eq '囲まれた文字列'
|
144
144
|
end
|
145
145
|
end
|