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.

Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/ChangeLog.md +619 -432
  4. data/Gemfile +9 -0
  5. data/README.md +101 -76
  6. data/lib/color.rb +62 -22
  7. data/lib/command.rb +21 -19
  8. data/lib/command/alias.rb +9 -9
  9. data/lib/command/backup.rb +11 -4
  10. data/lib/command/browser.rb +8 -7
  11. data/lib/command/convert.rb +25 -77
  12. data/lib/command/diff.rb +67 -36
  13. data/lib/command/download.rb +5 -4
  14. data/lib/command/flag.rb +32 -6
  15. data/lib/command/folder.rb +7 -5
  16. data/lib/command/freeze.rb +21 -11
  17. data/lib/command/help.rb +29 -17
  18. data/lib/command/init.rb +7 -7
  19. data/lib/command/inspect.rb +6 -5
  20. data/lib/command/list.rb +106 -25
  21. data/lib/command/mail.rb +6 -7
  22. data/lib/command/remove.rb +9 -7
  23. data/lib/command/send.rb +6 -5
  24. data/lib/command/setting.rb +51 -16
  25. data/lib/command/tag.rb +179 -0
  26. data/lib/command/update.rb +9 -8
  27. data/lib/command/version.rb +4 -4
  28. data/lib/commandbase.rb +79 -8
  29. data/lib/commandline.rb +14 -8
  30. data/lib/converterbase.rb +78 -28
  31. data/lib/database.rb +3 -3
  32. data/lib/device.rb +26 -13
  33. data/lib/device/ibooks.rb +116 -0
  34. data/lib/device/ibunko.rb +45 -0
  35. data/lib/device/kindle.rb +4 -0
  36. data/lib/device/kobo.rb +4 -0
  37. data/lib/device/library/windows.rb +12 -4
  38. data/lib/device/reader.rb +9 -0
  39. data/lib/diffviewer.rb +147 -0
  40. data/lib/downloader.rb +195 -80
  41. data/lib/extensions/jruby.rb +33 -0
  42. data/lib/extensions/windows.rb +8 -9
  43. data/lib/helper.rb +79 -37
  44. data/lib/illustration.rb +1 -1
  45. data/lib/inspector.rb +2 -2
  46. data/lib/inventory.rb +48 -0
  47. data/lib/logger.rb +28 -4
  48. data/lib/narou.rb +9 -7
  49. data/lib/narou/api.rb +7 -2
  50. data/lib/novelconverter.rb +46 -19
  51. data/lib/novelinfo.rb +13 -3
  52. data/lib/novelsetting.rb +17 -9
  53. data/lib/version.rb +1 -1
  54. data/narou.gemspec +106 -27
  55. data/narou.rb +2 -2
  56. data/spec/convert_spec.rb +102 -0
  57. data/spec/data/convert_test/auto_indent/correct_test_auto_indent.txt +18 -0
  58. data/spec/data/convert_test/auto_indent/test_auto_indent.txt +21 -0
  59. data/spec/data/convert_test/auto_join_bracket/correct_test_auto_join_bracket.txt +12 -0
  60. data/spec/data/convert_test/auto_join_bracket/test_auto_join_bracket.txt +16 -0
  61. data/spec/data/convert_test/auto_join_line/correct_test_auto_join_line.txt +36 -0
  62. data/spec/data/convert_test/auto_join_line/test_auto_join_line.txt +51 -0
  63. data/spec/data/convert_test/convert_page_break/correct_test_convert_page_break.txt +21 -0
  64. data/spec/data/convert_test/convert_page_break/setting.ini +5 -0
  65. data/spec/data/convert_test/convert_page_break/test_convert_page_break.txt +60 -0
  66. data/spec/data/convert_test/force_indent_special_chapter/correct_test_force_indent_special_chapter.txt +64 -0
  67. data/spec/data/convert_test/force_indent_special_chapter/test_force_indent_special_chapter.txt +61 -0
  68. data/spec/data/convert_test/horizontal_ellipsis/correct_test_horizontal_ellipsis.txt +52 -0
  69. data/spec/data/convert_test/horizontal_ellipsis/test_horizontal_ellipsis.txt +57 -0
  70. data/spec/data/convert_test/kanji_num/correct_test_kanji_num.txt +49 -0
  71. data/spec/data/convert_test/kanji_num/test_kanji_num.txt +56 -0
  72. data/spec/data/convert_test/nonokagi/correct_test_nonokagi.txt +29 -0
  73. data/spec/data/convert_test/nonokagi/test_nonokagi.txt +34 -0
  74. data/spec/data/convert_test/replace/correct_test_replace.txt +12 -0
  75. data/spec/data/convert_test/replace/replace.txt +7 -0
  76. data/spec/data/convert_test/replace/test_replace.txt +14 -0
  77. data/spec/data/convert_test/ruby/correct_test_ruby.txt +131 -0
  78. data/spec/data/convert_test/ruby/test_ruby.txt +170 -0
  79. data/spec/data/convert_test/ruby_youon/correct_test_ruby_youon.txt +12 -0
  80. data/spec/data/convert_test/ruby_youon/setting.ini +2 -0
  81. data/spec/data/convert_test/ruby_youon/test_ruby_youon.txt +14 -0
  82. data/spec/data/convert_test/sesame/correct_test_sesame.txt +40 -0
  83. data/spec/data/convert_test/sesame/test_sesame.txt +52 -0
  84. data/spec/data/convert_test/to_odd_leader/correct_test_to_odd_leader.txt +20 -0
  85. data/spec/data/convert_test/to_odd_leader/test_to_odd_leader.txt +21 -0
  86. data/spec/device_spec.rb +3 -3
  87. data/spec/generator/convert_spec_gen.rb +95 -0
  88. data/spec/html_spec.rb +9 -8
  89. data/spec/ini_spec.rb +31 -31
  90. data/spec/novelinfo_spec.rb +2 -2
  91. data/spec/num_to_kanji_spec.rb +2 -2
  92. data/template/diff.txt.erb +5 -2
  93. data/template/ibunko_novel.txt.erb +2 -1
  94. data/template/novel.txt.erb +16 -3
  95. data/template/setting.ini.erb +1 -1
  96. data/webnovel/ncode.syosetu.com.yaml +7 -7
  97. data/webnovel/novel18.syosetu.com.yaml +7 -7
  98. data/webnovel/syosetu.org.yaml +8 -11
  99. metadata +193 -23
  100. data/lib/globalsetting.rb +0 -64
  101. data/lib/localsetting.rb +0 -63
@@ -0,0 +1,12 @@
1
+ test_ruby_youon
2
+ whiteleaf
3
+
4
+ [#改ページ]
5
+ [#3字下げ][#ここから中見出し]拗音巨大化テスト[#ここで中見出し終わり]
6
+
7
+
8
+  僕の好きな言葉に|一日千秋《いちじつせんしゆう》という言葉がある。
9
+
10
+  |東京特許許可局《とうきようとつきよきよかきよく》
11
+
12
+  |東京特許許可局《トウキヨウトツキヨキヨカキヨク》
@@ -0,0 +1,2 @@
1
+ ; ルビの拗音(ぁ、ぃ等)を商業書籍のように大きくするかどうか
2
+ enable_ruby_youon_to_big = true
@@ -0,0 +1,14 @@
1
+ test_ruby_youon
2
+ whiteleaf
3
+
4
+ [#改ページ]
5
+ 拗音巨大化テスト
6
+
7
+
8
+ 僕の好きな言葉に一日千秋《いちじつせんしゅう》という言葉がある。
9
+
10
+
11
+ 東京特許許可局《とうきょうとっきょきょかきょく》
12
+
13
+
14
+ 東京特許許可局《トウキョウトッキョキョカキョク》
@@ -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
+  |読点で圏点《、、》
@@ -0,0 +1,20 @@
1
+ test_to_odd_leader
2
+ whiteleaf
3
+
4
+ [#改ページ]
5
+ [#3字下げ][#ここから中見出し]三点リーダー偶数化テスト[#ここで中見出し終わり]
6
+
7
+
8
+  ……
9
+  ……
10
+  …………
11
+  …………
12
+  ………………
13
+  ………………
14
+
15
+  ‥‥
16
+  ‥‥
17
+  ‥‥‥‥
18
+  ‥‥‥‥
19
+  ‥‥‥‥‥‥
20
+  ‥‥‥‥‥‥
@@ -0,0 +1,21 @@
1
+ test_to_odd_leader
2
+ whiteleaf
3
+
4
+ [#改ページ]
5
+ 三点リーダー偶数化テスト
6
+
7
+
8
+ ……
9
+ ………
10
+ …………
11
+ ……………
12
+ ………………
13
+
14
+
15
+
16
+ ‥‥
17
+ ‥‥‥
18
+ ‥‥‥‥
19
+ ‥‥‥‥‥
20
+ ‥‥‥‥‥‥
21
+
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").should == "C:/"
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").should be_true
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").should be_true
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]).should == ruby[1]
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>に").should == "次の文字は[#太字]太字[#太字終わり]に"
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>に").should == "次の文字は[#斜体]斜体[#斜体終わり]に"
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>に").should == "次の文字は[#取消線]取消線[#取消線終わり]に"
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>").should == "あいう\nかきく\nさしす\n"
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">').should == "[#挿絵(./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">').should ==
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.should == test_txt
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.should == Fixnum
16
+ expect(@ini.cast("100").class).to eq Fixnum
17
17
  end
18
18
 
19
19
  it "return 100" do
20
- @ini.cast("100").should == 100
20
+ expect(@ini.cast("100")).to eq 100
21
21
  end
22
22
 
23
23
  it "return 100" do
24
- @ini.cast("+100").should == 100
24
+ expect(@ini.cast("+100")).to eq 100
25
25
  end
26
26
 
27
27
  it "return -100" do
28
- @ini.cast("-100").should == -100
28
+ expect(@ini.cast("-100")).to eq -100
29
29
  end
30
30
 
31
- it "class type should be Float" do
32
- @ini.cast("10.5").class.should == Float
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").should == 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").should == 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").should == -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").should == true
48
+ expect(@ini.cast("true")).to eq true
49
49
  end
50
50
 
51
51
  it "return false" do
52
- @ini.cast("false").should == false
52
+ expect(@ini.cast("false")).to eq false
53
53
  end
54
54
 
55
55
  it "return `string'" do
56
- @ini.cast("string").should == "string"
56
+ expect(@ini.cast("string")).to eq "string"
57
57
  end
58
58
 
59
59
  it "return `string'" do
60
- @ini.cast("'string'").should == "string"
60
+ expect(@ini.cast("'string'")).to eq "string"
61
61
  end
62
62
 
63
63
  it "return `string'" do
64
- @ini.cast('"string"').should == "string"
64
+ expect(@ini.cast('"string"')).to eq "string"
65
65
  end
66
66
 
67
67
  it "return nil" do
68
- @ini.cast("nil").should == nil
68
+ expect(@ini.cast("nil")).to eq nil
69
69
  end
70
70
 
71
71
  it "return nil" do
72
- @ini.cast("null").should == nil
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").should == nil
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.should == 1
88
- @ini.object.include?("global").should be_true
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?.should be_true
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.should == Hash
103
+ expect(@ini_data.class).to eq Hash
104
104
  end
105
105
 
106
106
  it "はセクションが2つであること" do
107
- @ini_data.count.should == 2
107
+ expect(@ini_data.count).to eq 2
108
108
  end
109
109
 
110
110
  it "はglobalセクションが必ずあること" do
111
- @ini_data.include?("global").should be_true
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").should be_true
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"].should == "文字列"
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"].should == true
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"].should == false
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"].should == nil
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"].should == nil
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"].should == 100
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"].should == '囲まれた文字列'
143
+ expect(@ini_data["sub_section"]["quote_string"]).to eq '囲まれた文字列'
144
144
  end
145
145
  end