sheltered-girl 4.0.4.0 → 4.0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.env +0 -0
  3. data/.gitignore +0 -0
  4. data/Gemfile +0 -0
  5. data/LICENSE.txt +0 -0
  6. data/README.md +0 -0
  7. data/bin/aqua +0 -0
  8. data/bin/bmi +0 -0
  9. data/bin/bmi-license +0 -0
  10. data/bin/heat +0 -0
  11. data/bin/katakana +0 -0
  12. data/bin/koyomi +0 -0
  13. data/bin/romaji +0 -0
  14. data/bin/sheltered-girl +0 -0
  15. data/bin/speak +806 -843
  16. data/bin/tenji +0 -0
  17. data/bin/tenji_log +0 -0
  18. data/bin/tweet +0 -0
  19. data/bin/zinbeiw +1 -1
  20. data/lib/all.rb +0 -0
  21. data/lib/all_log.rb +0 -0
  22. data/lib/and.rb +0 -0
  23. data/lib/autocal.rb +0 -0
  24. data/lib/bmi.rb +0 -0
  25. data/lib/bmi_version.rb +0 -0
  26. data/lib/calendar.rb +0 -0
  27. data/lib/count.rb +0 -0
  28. data/lib/decript.rb +0 -0
  29. data/lib/druby_erb.rb +0 -0
  30. data/lib/druby_reci.rb +0 -0
  31. data/lib/feed.rb +0 -0
  32. data/lib/frame.rb +0 -0
  33. data/lib/frame_version.rb +0 -0
  34. data/lib/gc.rb +0 -0
  35. data/lib/gem_version.rb +0 -0
  36. data/lib/himekuri.rb +0 -0
  37. data/lib/himekuri_version.rb +0 -0
  38. data/lib/hyaku.rb +0 -0
  39. data/lib/install.rb +0 -0
  40. data/lib/katakana.rb +0 -0
  41. data/lib/kome.rb +0 -0
  42. data/lib/mail.rb +0 -0
  43. data/lib/match.rb +0 -0
  44. data/lib/mini.rb +0 -0
  45. data/lib/minitest/full_runner.rb +0 -0
  46. data/lib/minitest/runner.rb +0 -0
  47. data/lib/not.rb +0 -0
  48. data/lib/or.rb +0 -0
  49. data/lib/require_sec_seiki.rb +0 -0
  50. data/lib/rice.rb +0 -0
  51. data/lib/romaji.rb +0 -0
  52. data/lib/saikoro.rb +0 -0
  53. data/lib/seiki.rb +0 -0
  54. data/lib/suihan.rb +0 -0
  55. data/lib/summa.rb +0 -0
  56. data/lib/tanraku.rb +0 -0
  57. data/lib/tenji.rb +0 -0
  58. data/lib/tenji_log.rb +0 -0
  59. data/lib/timestamp.py +0 -0
  60. data/lib/title.rb +0 -0
  61. data/lib/tubuyaki.rb +0 -0
  62. data/lib/tubuyaki_memo.rb +0 -0
  63. data/lib/tweet_cmd.rb +0 -0
  64. data/lib/txt/hyakunin.txt +0 -0
  65. data/lib/version.rb +1 -1
  66. data/lib/zella.rb +0 -0
  67. data/log/tenji_a.txt +0 -0
  68. data/log/tenji_b.txt +0 -0
  69. data/log/tenji_c.txt +0 -0
  70. data/log/tenji_d.txt +0 -0
  71. data/log/tenji_e.txt +0 -0
  72. data/log/tenji_g.txt +0 -0
  73. data/log/tenji_i.txt +0 -0
  74. data/log/tenji_k.txt +0 -0
  75. data/log/tenji_t.txt +0 -0
  76. data/log/tenji_z.txt +0 -0
  77. data/req/aqua.rb +0 -0
  78. data/req/bmi.rb +0 -0
  79. data/req/frame.rb +0 -0
  80. data/req/full_run.rb +0 -0
  81. data/req/full_runner.rb +0 -0
  82. data/req/himekuri.rb +0 -0
  83. data/req/katakana.rb +0 -0
  84. data/req/koyomi.rb +0 -0
  85. data/req/mini_run.rb +0 -0
  86. data/req/romaji.rb +0 -0
  87. data/req/rubygems.rb +0 -0
  88. data/req/runner.rb +0 -0
  89. data/req/sheltered-girl.rb +0 -0
  90. data/req/zella.rb +0 -0
  91. data/req/zinbeiw.rb +0 -0
  92. data/runner/full.rb +0 -0
  93. data/runner/katakana.rb +0 -0
  94. data/runner/mini.rb +0 -0
  95. data/runner/romaji.rb +0 -0
  96. data/shell/romaji_runner_1.rb +0 -0
  97. data/shell/romaji_runner_10.rb +0 -0
  98. data/shell/romaji_runner_2.rb +0 -0
  99. data/shell/romaji_runner_3.rb +0 -0
  100. data/shell/romaji_runner_4.rb +0 -0
  101. data/shell/romaji_runner_5.rb +0 -0
  102. data/shell/romaji_runner_6.rb +0 -0
  103. data/shell/romaji_runner_7.rb +0 -0
  104. data/shell/romaji_runner_8.rb +0 -0
  105. data/shell/romaji_runner_9.rb +0 -0
  106. data/shell_ka/katakana_runner_1.rb +0 -0
  107. data/shell_ka/katakana_runner_10.rb +0 -0
  108. data/shell_ka/katakana_runner_2.rb +0 -0
  109. data/shell_ka/katakana_runner_3.rb +0 -0
  110. data/shell_ka/katakana_runner_4.rb +0 -0
  111. data/shell_ka/katakana_runner_5.rb +0 -0
  112. data/shell_ka/katakana_runner_6.rb +0 -0
  113. data/shell_ka/katakana_runner_7.rb +0 -0
  114. data/shell_ka/katakana_runner_8.rb +0 -0
  115. data/shell_ka/katakana_runner_9.rb +0 -0
  116. data/sheltered-girl.gemspec +0 -0
  117. data/wiki/README.md +0 -0
  118. metadata +2 -2
data/bin/speak CHANGED
@@ -1,843 +1,806 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # vim: filetype=ruby
5
-
6
- require 'readline'
7
-
8
- lib = File.expand_path('lib', __dir__)
9
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
10
-
11
- class Emerald
12
- attr_accessor :fibonacci, :fizzbizz, :version, :kurage
13
-
14
- def version
15
- print 'Rubyのバージョン情報を出力します! : '
16
- puts RUBY_VERSION
17
- end
18
-
19
- def fibonacci
20
- puts 'フィボナッチ数列を出力します! '
21
- puts ''
22
- lo = 1
23
- hi = 1
24
- print lo
25
- print ' '
26
- while hi < 50
27
- print hi
28
- hi = lo + hi
29
- lo = hi - lo
30
- print ' '
31
- end
32
- puts ''
33
- end
34
-
35
- def fizzbizz
36
- puts 'FizzBizz問題の出力結果です!'
37
- puts ''
38
- (1..15).each do |t|
39
- if t % 15 == 0
40
- print 'FizzBizz'
41
- elsif t % 3 == 0
42
- print 'Fizz'
43
- elsif t % 5 == 0
44
- print 'Bizz'
45
- else
46
- print t
47
- end
48
- print ' '
49
- end
50
- puts ''
51
- end
52
-
53
- def kurage
54
- a = rand(15)
55
- print '~'
56
- 0.upto(a) do
57
- print '~'
58
- end
59
- puts '<コ:彡'
60
- puts ''
61
- end
62
- end
63
-
64
- saikoro = Random.rand(4)
65
- case saikoro
66
- when 2 then
67
- Emerald.new.kurage
68
- when 1 then
69
- Emerald.new.fibonacci
70
- when 0 then
71
- Emerald.new.fizzbizz
72
- else
73
- Emerald.new.version
74
- end
75
-
76
- puts ''
77
- puts 'まずは、helpと入力してください!コマンドがわかります!'
78
-
79
- # search words
80
-
81
- begin
82
- str = %w[sessi kashi exit help].map!(&:freeze).freeze
83
-
84
- once = %w[find delete remove rename makefolder wordcount NumberGame Encode week].map!(&:freeze).freeze
85
-
86
- lucky = %w[loto6 Numbers kuji].map!(&:freeze).freeze
87
-
88
- dark = %w[OneRunner Eval].map!(&:freeze).freeze
89
-
90
- denki = %w[Anpea Volt Rister].map!(&:freeze).freeze
91
-
92
- rss = %w[reader].map!(&:freeze).freeze
93
-
94
- WORDS = (str + once + lucky + dark + denki + rss).map!(&:freeze).freeze
95
-
96
- Readline.completion_proc = proc {|word|
97
- WORDS.grep(/\A#{Regexp.quote word}/)
98
- }
99
-
100
- print '> '
101
-
102
- # search words exit!
103
-
104
- # Wainting Action code!
105
-
106
- while (line = Readline.readline(""))
107
-
108
- line.chomp!
109
-
110
- if line.match?(str[0])
111
- def seru(b)
112
- y = (b - 32) * 5 / 9
113
- y
114
- end
115
- puts '華氏を入力してください!'
116
- .print '> '
117
- f = gets.to_i
118
- m = seru(f)
119
- puts "摂氏は、#{m.round}です。"
120
-
121
- print '> '
122
-
123
- elsif line.match?(str[1])
124
- def seru(b)
125
- y = (1.8 * b) + 32
126
- y
127
- end
128
- puts '摂氏を入力してください!'
129
- print '> '
130
- f = gets.to_i
131
- m = seru(f)
132
- puts "華氏は、#{m.round}です。"
133
-
134
- print '> '
135
-
136
- elsif line.match?(str[2])
137
- exit!
138
- elsif line.match?(lucky[0])
139
-
140
- class Loto6
141
- def sum(a, b, c, d, e, f)
142
- x = Random.rand(a) + 1
143
- y = Random.rand(b) + 1
144
- z = Random.rand(c) + 1
145
- s = Random.rand(d) + 1
146
- t = Random.rand(e) + 1
147
- d = Random.rand(f) + 1
148
- [x, y, z, s, t, d]
149
- end
150
- end
151
-
152
- taka = Loto6.new
153
- n = taka.sum(43, 43, 43, 43, 43, 43)
154
-
155
- puts 'Loto6で参考にする数字をランダムで表示します!'
156
- puts ''
157
- print n
158
- print ' '
159
- puts ''
160
- puts ''
161
- puts '※当たるも八卦、当たらぬも八卦。勝負は時の運です。'
162
-
163
- print '> '
164
-
165
- elsif line.match?(lucky[1])
166
- puts 'ナンバーズで参考にする数字をランダムで表示します!'
167
- puts ''
168
- class Numbers
169
- def sum(a, b, c, d)
170
- x = Random.rand(a)
171
- y = Random.rand(b)
172
- z = Random.rand(c)
173
- s = Random.rand(d)
174
- [x, y, z, s]
175
- end
176
- end
177
-
178
- taka = Numbers.new
179
- p taka.sum(10, 10, 10, 10)
180
- puts ''
181
- puts '※当たるも八卦、当たらぬも八卦。勝負は時の運です。'
182
-
183
- print '> '
184
-
185
- elsif line.match?(lucky[2])
186
- puts '今日の運勢を占ってみましょう。'
187
- puts '大吉→中吉→吉→小吉→凶→大凶'
188
-
189
- a = rand(16)
190
-
191
- case a
192
- when 0..2
193
- puts '大吉'
194
- puts 'さぁ、外に出て頑張ろう。仕事へGo!'
195
- when 3..5
196
- puts '中吉'
197
- puts 'ほどほどな普通。ストレスと向き合え!'
198
- when 6..8
199
- puts '吉'
200
- puts 'だんだん疲れてきたんだな。ゆっくり休め!'
201
- when 9..11
202
- puts '小吉'
203
- puts 'あまりいいことがないから、ジッとしているに限る。'
204
- when 12..14
205
- puts '凶'
206
- puts 'ピンチのあとのチャンス到来。あきらめるな。'
207
- when 15..16
208
- puts '大凶'
209
- puts '今日は何かまずい気をつけろ!'
210
- else
211
- puts '数字があふれています!注意!'
212
- end
213
- print '> '
214
-
215
- elsif line.match?(dark[0])
216
-
217
- begin
218
- puts '
219
- ワンライナー、1行コードの館へようこそ。さぁ、はじめましょう!'
220
- print '> '
221
- re = gets.chomp
222
- puts ''
223
- eval(re)
224
- puts ''
225
- rescue StandardError => et
226
- p et
227
- print '> '
228
- puts 'エラーです。文字列を確認してください!'
229
- puts ''
230
- retry
231
- ensure
232
- puts '終了は exit を入力してください!'
233
- end
234
-
235
- print '> '
236
-
237
- elsif line.match?(denki[0])
238
-
239
- def anpea(a, b)
240
- x = b / a
241
- x
242
- end
243
-
244
- puts
245
- puts '抵抗を入力してください'
246
-
247
- print '> '
248
- f = gets.to_i
249
-
250
- puts
251
- puts '電圧を入力してください'
252
- print '> '
253
-
254
- g = gets.to_i
255
-
256
- m = anpea(f, g)
257
-
258
- puts
259
- puts "電流は#{m.round}です。"
260
-
261
- print '> '
262
-
263
- elsif line.match?(denki[1])
264
-
265
- def volt(c, d)
266
- y = c * d
267
- y
268
- end
269
-
270
- puts
271
- puts '抵抗を入力してください'
272
- print '> '
273
-
274
- h = gets.to_i
275
- puts
276
- puts '電流を入力してください'
277
-
278
- print '> '
279
- i = gets.to_i
280
-
281
- j = volt(h, i)
282
-
283
- puts
284
- puts "電圧は#{j.round}です。"
285
-
286
- print '> '
287
-
288
- elsif line.match?(denki[2])
289
-
290
- def rister(k, l)
291
- z = k / l
292
- z
293
- end
294
-
295
- puts
296
- puts '電流を入力してください'
297
- print '> '
298
-
299
- l = gets.to_i
300
- puts
301
- puts '電圧を入力してください'
302
-
303
- print '> '
304
- k = gets.to_i
305
-
306
- q = rister(k, l)
307
-
308
- puts
309
- puts "抵抗は#{q.round}です。"
310
-
311
- print '> '
312
-
313
- # It is a help document of zinbeic.
314
-
315
- elsif line.match?(str[3])
316
-
317
- puts 'COMMAND'.center(60, '-')
318
-
319
- puts '
320
- sessi 華氏から摂氏へ変換します
321
-
322
- kashi 摂氏から華氏へ変換します
323
-
324
- kuji 今日の運勢を乱数を使って占います
325
-
326
- Numbers Numbers4の候補となる数字を乱数を使って出力します
327
-
328
- loto6 Loto6の候補となる数字を乱数を使って出力します
329
-
330
- OneRunner ワンライナーの館へ案内します
331
-
332
- delete ファイルを指定して削除できます
333
-
334
- find 単語を探します
335
-
336
- remove フォルダを消します
337
-
338
- rename ファイルの名前を変えます
339
-
340
- makefolder フォルダを作成します
341
-
342
- wordcount 対象のファイル全体を%で単語カウントします
343
-
344
- NumberGame 数字当てゲームです
345
-
346
- Encode 文字列のエンコードを評価します
347
-
348
- Eval eval族の館へようこそ、足し算などが行えます
349
-
350
- Anpea オームの法則を使い、電流を調べます
351
-
352
- Volt オームの法則を使い、電圧を調べます
353
-
354
- Rister オームの法則を使い、抵抗を調べます
355
-
356
- week 太陽暦で日付の曜日を真と偽で判定します
357
-
358
- reader RSSの取得先からタイトル表示 (雨音から移植)
359
-
360
- 終了するときは、exitと入力します'
361
-
362
- puts 'COMMAND'.center(60, '-')
363
-
364
- print '> '
365
-
366
- # It is a help document of zinbeic exit!
367
-
368
- # The command which can be called is only once.  
369
- elsif line.match?(once[0])
370
-
371
- begin
372
- print '探したい文字列を入力してください: '
373
- re = gets.chomp
374
- rescue StandardError => et
375
- p et
376
- puts 'エラーです。文字列を確認してください!'
377
- retry
378
- end
379
-
380
- begin
381
- print '探したいフォルダのパスを指定してください: '
382
- fo = gets.chomp
383
- rescue StandardError => es
384
- p es
385
- puts 'エラーです。文字列を確認してください!'
386
- end
387
-
388
- begin
389
- Dir.chdir(fo)
390
- rescue Errno::EEXIST
391
- Errno::EEXIST
392
- end
393
-
394
- begin
395
- print 'ファイル名を拡張子を含んで入力してください: '
396
-
397
- filename = gets.chomp
398
- File.open(filename) do |d|
399
- puts ' '
400
-
401
- while (liner = d.gets)
402
- liner.chomp!
403
- next unless liner.match?(re)
404
- printf('%4d 行目 : %s ', d.lineno, liner)
405
- print ' Find!(発見!)'
406
- puts ' '
407
- puts ' '
408
- end
409
- end
410
- rescue StandardError => ex
411
- p ex
412
- puts 'エラーです。ファイル名を確認してください。\n'
413
- retry
414
- ensure
415
- puts '終了は exit を入力してください!'
416
- end
417
- print '> '
418
-
419
- elsif line.match?(once[1])
420
-
421
- begin
422
- print '消したいフォルダのパスを指定してください: '
423
- mo = gets.chomp
424
- rescue StandardError => es
425
- p es
426
- puts 'エラーです。文字列を確認してください!'
427
- end
428
-
429
- begin
430
- Dir.chdir(mo)
431
- rescue Errno::EEXIST
432
- Errno::EEXIST
433
- end
434
-
435
- begin
436
- print 'ファイル名を拡張子を含んで入力してください: '
437
-
438
- del = readline.chomp!
439
- File.delete(del)
440
-
441
- puts '削除しました。'
442
- rescue StandardError => ex
443
- p ex
444
- puts 'エラーです。ファイル名を確認してください。\n'
445
- retry
446
- ensure
447
- puts '終了は exit を入力してください!'
448
- end
449
- print '> '
450
-
451
- elsif line.match?(once[2])
452
-
453
- begin
454
- print '削除したいフォルダのパスを指定してください: '
455
- st = gets.chomp
456
- rescue StandardError => es
457
- p es
458
- puts 'エラーです。文字列を確認してください!'
459
- end
460
-
461
- begin
462
- Dir.chdir(st)
463
- rescue Errno::EEXIST
464
- Errno::EEXIST
465
- end
466
-
467
- begin
468
- print '削除したいフォルダ名を拡張子を含んで入力してください: '
469
-
470
- rem = readline.chomp!
471
- Dir.rmdir(rem)
472
-
473
- puts '削除しました。'
474
- rescue StandardError => ex
475
- p ex
476
- puts 'エラーです。ファイル名を確認してください。\n'
477
- retry
478
- ensure
479
- puts '終了は exit を入力してください!'
480
- end
481
- print '> '
482
- elsif line.match?(once[3])
483
-
484
- begin
485
- print '名前を変えたいフォルダのパスを指定してください: '
486
- nem = gets.chomp
487
- rescue StandardError => es
488
- p es
489
- puts 'エラーです。文字列を確認してください!'
490
- end
491
-
492
- begin
493
- Dir.chdir(nem)
494
- rescue Errno::EEXIST
495
- Errno::EEXIST
496
- end
497
-
498
- begin
499
- print '現在のファイル名を拡張子を含んで入力してください: '
500
- re = gets.chomp!
501
- rescue StandardError => ex
502
- p ex
503
- puts 'エラーです。ファイル名を確認してください。\n'
504
- retry
505
- end
506
-
507
- begin
508
- print '変更するファイル名を拡張子を含んで入力してください: '
509
-
510
- no = gets.chomp!
511
-
512
- File.rename(re, no)
513
-
514
- puts '変更しました。'
515
- rescue StandardError => ex
516
- p ex
517
- puts 'エラーです。ファイル名を確認してください。\n'
518
- retry
519
- ensure
520
- puts '終了は exit を入力してください!'
521
- end
522
-
523
- print '> '
524
- elsif line.match?(once[4])
525
-
526
- begin
527
- print '作成したいフォルダのパスを指定してください: '
528
- mk = gets.chomp
529
- rescue StandardError => es
530
- p es
531
- puts 'エラーです。文字列を確認してください!'
532
- end
533
-
534
- begin
535
- Dir.chdir(mk)
536
- rescue Errno::EEXIST
537
- Errno::EEXIST
538
- end
539
-
540
- begin
541
- print 'フォルダ名を入力してください: '
542
-
543
- ma = readline.chomp!
544
- Dir.mkdir(ma)
545
-
546
- puts '作成しました。'
547
- rescue StandardError => ex
548
- p ex
549
- puts 'エラーです。ファイル名を確認してください。\n'
550
- retry
551
- ensure
552
- puts '終了は exit を入力してください!'
553
- end
554
-
555
- print '> '
556
- elsif line.match?(once[5])
557
-
558
- begin
559
- print '探したいフォルダのパスを指定してください: '
560
- mik = gets.chomp
561
- rescue StandardError => es
562
- p es
563
- puts 'エラーです。文字列を確認してください!'
564
- end
565
-
566
- begin
567
- Dir.chdir(mik)
568
- rescue Errno::EEXIST
569
- Errno::EEXIST
570
- end
571
-
572
- begin
573
- print '数えたいファイル名を拡張子を含んで入力してください: '
574
-
575
- count = Hash.new(0)
576
-
577
- # 文字列の出現頻度を調べる。
578
- def char_stat(str)
579
- table = Hash.new(0)
580
- str.scan(/./m) do |ch|
581
- table[ch] += 1
582
- end
583
- table.to_a.sort_by { |_, con| -con }
584
- end
585
-
586
- # 単語の集計
587
- filename = gets.chomp
588
- File.open(filename) do |d|
589
- while line == d.gets
590
- wa = line.split
591
- wa.each do |w|
592
- count[w] += 1
593
- end
594
- end
595
-
596
- # 結果の出力
597
-
598
- count.sort_by { |a| a[1] }.each do |web, con|
599
- print "#{web.inspect}: "
600
- print "#{con % 100 / wa.length}%"
601
- puts ' '
602
- puts ' '
603
- end
604
- end
605
- rescue StandardError => ex
606
- p ex
607
- puts 'エラーです。ファイル名を確認してください。\n'
608
- retry
609
- ensure
610
- puts '終了は exit を入力してください!'
611
- end
612
-
613
- print '> '
614
-
615
- elsif line.match?(once[6])
616
-
617
- x = Random.rand(1..100)
618
- numb = 0
619
- numb += 1
620
-
621
- puts '何回まで、NumberGameで繰り返すか指定してください'
622
- print '> '
623
- num = gets.chomp.to_i
624
- puts "#{num}回、繰り返すまでに当ててください"
625
- puts
626
- puts '1~100までの数字をいれてくださいNumberGameスタート!'
627
- print '> '
628
-
629
- num.times do |z|
630
- i_num = gets.chomp.to_i
631
- if i_num < z
632
- puts 'コンピュータの選んだ数字の方が大きいため大きい数字を入力してください'
633
- print '> '
634
- numb += 1
635
- elsif i_num > z
636
- puts 'コンピュータの選んだ数字の方が小さいため小さい数字を入力してください'
637
- print '> '
638
- numb += 1
639
- else i_num == x
640
- puts
641
- puts 'おめでとうございます、正解です'
642
- puts
643
- puts "#{numb}回で正解しました"
644
- puts
645
- break
646
- end
647
- if i == (num - 1)
648
- puts
649
- puts '正解は' + x.to_s + 'でした'
650
- puts
651
- puts '残念、もう一度チャレンジ!'
652
- puts
653
- end
654
- rescue StandardError => ex
655
- p ex
656
- puts 'エラーです、数字を確認してください\n'
657
- retry
658
- end
659
-
660
- puts 'お疲れさまでした。'
661
- print '> '
662
- elsif line.match?(once[7])
663
- puts
664
-
665
- class Enco
666
- begin
667
- puts '文字列を入力してください'
668
- print '> '
669
- filename = gets.chomp
670
- rescue StandardError => ee
671
- p ee
672
- puts 'エラーです。文字列を確認してください!'
673
- end
674
-
675
- puts ''
676
- puts '変更前のエンコードを指定してください'
677
- puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
678
- print '> '
679
- befenco = gets.chomp
680
-
681
- begin
682
- puts ''
683
- puts 'エンコードを指定してください'
684
- puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
685
- print '> '
686
- aftenco = gets.chomp
687
- puts
688
- rescue StandardError => ed
689
- p ed
690
- puts 'エラーです。エンコーディングを確認してください!'
691
- end
692
-
693
- ut = Encoding::Converter.new(befenco, aftenco)
694
- p ut.convert(filename)
695
- ut.finish.dump
696
- puts
697
-
698
- ensure
699
- puts '終了は exit を入力してください!'
700
- puts
701
- end
702
- print '> '
703
- elsif line.match?(dark[1])
704
- begin
705
- puts 'eval族の館へようこそ!
706
- 簡単な文字列を評価してください'
707
- print '> '
708
- re = gets.chomp
709
- puts ''
710
- p eval(re)
711
- puts ''
712
- rescue StandardError => et
713
- p et
714
- print '> '
715
- puts 'エラーです。文字列を確認してください!'
716
- puts ''
717
- retry
718
- ensure
719
- puts '終了は exit を入力してください!'
720
- end
721
- print '> '
722
-
723
- elsif line.match?(once[8])
724
- puts ''
725
- puts 'WEEK'.center(60, '-')
726
- puts ''
727
- puts '入力した日付を曜日で判定します'
728
- puts '半角数字で入力してください'
729
- puts 'それでは、スタート!'
730
- puts ''
731
- puts 'WEEK'.center(60, '-')
732
- puts ''
733
-
734
- begin
735
- puts '調べたい年を入力してください'
736
- print '> '
737
- nen = gets.chomp.to_i
738
- rescue StandardError => ee
739
- p ee
740
- puts 'エラーです。数字を確認してください!'
741
- end
742
-
743
- puts ''
744
-
745
- begin
746
- puts '調べたい月を入力してください'
747
- print '> '
748
- mon = gets.chomp.to_i
749
- rescue StandardError => ey
750
- p ey
751
- puts 'エラーです。数字を確認してください!'
752
- end
753
-
754
- puts ''
755
-
756
- begin
757
- puts '調べたい日を入力してください'
758
- print '> '
759
- days = gets.chomp.to_i
760
- rescue StandardError => ex
761
- p ex
762
- puts 'エラーです。数字を確認してください!'
763
- end
764
-
765
- puts ''
766
-
767
- t = Time.local(nen, mon, days)
768
-
769
- if t.sunday?
770
- puts "#{nen}年#{mon}月#{days}日は、日曜日です。"
771
- puts ''
772
- elsif t.monday?
773
- puts "#{nen}年#{mon}月#{days}日は、月曜日です。"
774
- puts ''
775
- elsif t.tuesday?
776
- puts "#{nen}年#{mon}月#{days}日は、火曜日です。"
777
- puts ''
778
- elsif t.wednesday?
779
- puts "#{nen}年#{mon}月#{days}日は、水曜日です。"
780
- puts ''
781
- elsif t.thursday?
782
- puts "#{nen}年#{mon}月#{days}日は、木曜日です。"
783
- puts ''
784
- elsif t.friday?
785
- puts "#{nen}年#{mon}月#{days}日は、金曜日です。"
786
- puts ''
787
- elsif t.saturday?
788
- puts "#{nen}年#{mon}月#{days}日は、土曜日です。"
789
- puts ''
790
- else
791
- puts 'ありえない曜日を指しています...終了します! '
792
- exit!
793
- end
794
-
795
- print '> '
796
-
797
- # The command which can be called is only once.
798
-
799
- elsif line.match?(rss[0])
800
- require 'rss'
801
- require 'date'
802
- require 'kconv'
803
-
804
- begin
805
- puts '調べたいRSSのURLを入力してください'
806
- print '> '
807
- URL = gets.chomp
808
- rescue StandardError => eq
809
- p eq
810
- puts 'エラーです。URLを確認してください!'
811
- end
812
-
813
- rss = RSS::Parser.parse(URL)
814
-
815
- puts ''
816
-
817
- rss.items.collect do |scale|
818
- puts scale.title
819
- end
820
-
821
- puts ''
822
- print '> '
823
-
824
- else
825
- puts "Can't Enter this Words. Please input help"
826
- print '> '
827
- end
828
- end
829
- # Wainting Action Code exit!
830
-
831
- # Exception throw!
832
- rescue StandardError => ex
833
- p ex
834
- puts 'エラーです。文字列を確認してください!'
835
- retry
836
- print '> '
837
-
838
- # Ruby ensure is Java Exception of finally.
839
- ensure
840
- puts '終了は exit を入力してください!'
841
- end
842
-
843
- __END__
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # vim: filetype=ruby
5
+
6
+ require 'readline'
7
+ require 'tanraku'
8
+
9
+ lib = File.expand_path('lib', __dir__)
10
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
11
+
12
+ class Emerald
13
+ attr_accessor :fibonacci, :fizzbizz, :version, :kurage
14
+
15
+ def version
16
+ print 'Rubyのバージョン情報を出力します! : '
17
+ puts RUBY_VERSION
18
+ end
19
+
20
+ def fibonacci
21
+ puts 'フィボナッチ数列を出力します! '
22
+ puts ''
23
+ lo = 1
24
+ hi = 1
25
+ print lo
26
+ print ' '
27
+ while hi < 50
28
+ print hi
29
+ hi = lo + hi
30
+ lo = hi - lo
31
+ print ' '
32
+ end
33
+ puts ''
34
+ end
35
+
36
+ def fizzbizz
37
+ puts 'FizzBizz問題の出力結果です!'
38
+ puts ''
39
+ (1..15).each do |t|
40
+ if t % 15 == 0
41
+ print 'FizzBizz'
42
+ elsif t % 3 == 0
43
+ print 'Fizz'
44
+ elsif t % 5 == 0
45
+ print 'Bizz'
46
+ else
47
+ print t
48
+ end
49
+ print ' '
50
+ end
51
+ puts ''
52
+ end
53
+
54
+ def kurage
55
+ a = rand(15)
56
+ print '~'
57
+ 0.upto(a) do
58
+ print '~'
59
+ end
60
+ puts '<コ:彡'
61
+ puts ''
62
+ end
63
+ end
64
+
65
+ saikoro = Random.rand(4)
66
+ case saikoro
67
+ when 2 then
68
+ Emerald.new.kurage
69
+ when 1 then
70
+ Emerald.new.fibonacci
71
+ when 0 then
72
+ Emerald.new.fizzbizz
73
+ else
74
+ Emerald.new.version
75
+ end
76
+
77
+ puts ''
78
+ puts 'まずは、helpと入力してください!コマンドがわかります!'
79
+
80
+ # search words
81
+
82
+ begin
83
+ str = %w[sessi kashi exit help].map!(&:freeze).freeze
84
+
85
+ once = %w[find delete remove rename makefolder NumberGame Encode week].map!(&:freeze).freeze
86
+
87
+ lucky = %w[loto6 Numbers kuji].map!(&:freeze).freeze
88
+
89
+ dark = %w[OneRunner Eval].map!(&:freeze).freeze
90
+
91
+ denki = %w[Anpea Volt Rister].map!(&:freeze).freeze
92
+
93
+ rss = %w[reader].map!(&:freeze).freeze
94
+
95
+ WORDS = (str + once + lucky + dark + denki + rss).map!(&:freeze).freeze
96
+
97
+ Readline.completion_proc = proc {|word|
98
+ WORDS.grep(/\A#{Regexp.quote word}/)
99
+ }
100
+
101
+ print '> '
102
+
103
+ # search words exit!
104
+
105
+ # Wainting Action code!
106
+
107
+ while (line = Readline.readline(""))
108
+
109
+ line.chomp!
110
+
111
+ if line.match?(str[0])
112
+ def seru(b)
113
+ y = (b - 32) * 5 / 9
114
+ y
115
+ end
116
+ puts '華氏を入力してください!'
117
+ .print '> '
118
+ f = gets.to_i
119
+ m = seru(f)
120
+ puts "摂氏は、#{m.round}です。"
121
+
122
+ print '> '
123
+
124
+ elsif line.match?(str[1])
125
+ def seru(b)
126
+ y = (1.8 * b) + 32
127
+ y
128
+ end
129
+ puts '摂氏を入力してください!'
130
+ print '> '
131
+ f = gets.to_i
132
+ m = seru(f)
133
+ puts "華氏は、#{m.round}です。"
134
+
135
+ print '> '
136
+
137
+ elsif line.match?(str[2])
138
+ exit!
139
+ elsif line.match?(lucky[0])
140
+
141
+ class Loto6
142
+ def sum(a, b, c, d, e, f)
143
+ x = Random.rand(a) + 1
144
+ y = Random.rand(b) + 1
145
+ z = Random.rand(c) + 1
146
+ s = Random.rand(d) + 1
147
+ t = Random.rand(e) + 1
148
+ d = Random.rand(f) + 1
149
+ [x, y, z, s, t, d]
150
+ end
151
+ end
152
+
153
+ taka = Loto6.new
154
+ n = taka.sum(43, 43, 43, 43, 43, 43)
155
+
156
+ puts 'Loto6で参考にする数字をランダムで表示します!'
157
+ puts ''
158
+ print n
159
+ print ' '
160
+ puts ''
161
+ puts ''
162
+ puts '※当たるも八卦、当たらぬも八卦。勝負は時の運です。'
163
+
164
+ print '> '
165
+
166
+ elsif line.match?(lucky[1])
167
+ puts 'ナンバーズで参考にする数字をランダムで表示します!'
168
+ puts ''
169
+ class Numbers
170
+ def sum(a, b, c, d)
171
+ x = Random.rand(a)
172
+ y = Random.rand(b)
173
+ z = Random.rand(c)
174
+ s = Random.rand(d)
175
+ [x, y, z, s]
176
+ end
177
+ end
178
+
179
+ taka = Numbers.new
180
+ p taka.sum(10, 10, 10, 10)
181
+ puts ''
182
+ puts '※当たるも八卦、当たらぬも八卦。勝負は時の運です。'
183
+
184
+ print '> '
185
+
186
+ elsif line.match?(lucky[2])
187
+ puts '今日の運勢を占ってみましょう。'
188
+ puts '大吉→中吉→吉→小吉→凶→大凶'
189
+
190
+ a = rand(16)
191
+
192
+ case a
193
+ when 0..2
194
+ puts '大吉'
195
+ puts 'さぁ、外に出て頑張ろう。仕事へGo!'
196
+ when 3..5
197
+ puts '中吉'
198
+ puts 'ほどほどな普通。ストレスと向き合え!'
199
+ when 6..8
200
+ puts ''
201
+ puts 'だんだん疲れてきたんだな。ゆっくり休め!'
202
+ when 9..11
203
+ puts '小吉'
204
+ puts 'あまりいいことがないから、ジッとしているに限る。'
205
+ when 12..14
206
+ puts ''
207
+ puts 'ピンチのあとのチャンス到来。あきらめるな。'
208
+ when 15..16
209
+ puts '大凶'
210
+ puts '今日は何かまずい気をつけろ!'
211
+ else
212
+ puts '数字があふれています!注意!'
213
+ end
214
+ print '> '
215
+
216
+ elsif line.match?(dark[0])
217
+
218
+ begin
219
+ puts '
220
+ ワンライナー、1行コードの館へようこそ。さぁ、はじめましょう!'
221
+ print '> '
222
+ re = gets.chomp
223
+ puts ''
224
+ eval(re)
225
+ puts ''
226
+ rescue StandardError => et
227
+ p et
228
+ print '> '
229
+ puts 'エラーです。文字列を確認してください!'
230
+ puts ''
231
+ retry
232
+ ensure
233
+ puts '終了は exit を入力してください!'
234
+ end
235
+
236
+ print '> '
237
+
238
+ elsif line.match?(denki[0])
239
+
240
+ def anpea(a, b)
241
+ x = b / a
242
+ x
243
+ end
244
+
245
+ puts
246
+ puts '抵抗を入力してください'
247
+
248
+ print '> '
249
+ f = gets.to_i
250
+
251
+ puts
252
+ puts '電圧を入力してください'
253
+ print '> '
254
+
255
+ g = gets.to_i
256
+
257
+ m = anpea(f, g)
258
+
259
+ puts
260
+ puts "電流は#{m.round}です。"
261
+
262
+ print '> '
263
+
264
+ elsif line.match?(denki[1])
265
+
266
+ def volt(c, d)
267
+ y = c * d
268
+ y
269
+ end
270
+
271
+ puts
272
+ puts '抵抗を入力してください'
273
+ print '> '
274
+
275
+ h = gets.to_i
276
+ puts
277
+ puts '電流を入力してください'
278
+
279
+ print '> '
280
+ i = gets.to_i
281
+
282
+ j = volt(h, i)
283
+
284
+ puts
285
+ puts "電圧は#{j.round}です。"
286
+
287
+ print '> '
288
+
289
+ elsif line.match?(denki[2])
290
+
291
+ def rister(k, l)
292
+ z = k / l
293
+ z
294
+ end
295
+
296
+ puts
297
+ puts '電流を入力してください'
298
+ print '> '
299
+
300
+ l = gets.to_i
301
+ puts
302
+ puts '電圧を入力してください'
303
+
304
+ print '> '
305
+ k = gets.to_i
306
+
307
+ q = rister(k, l)
308
+
309
+ puts
310
+ puts "抵抗は#{q.round}です。"
311
+
312
+ print '> '
313
+
314
+ # It is a help document of zinbeic.
315
+
316
+ elsif line.match?(str[3])
317
+
318
+ puts 'COMMAND'.center(60, '-')
319
+
320
+ puts '
321
+ sessi 華氏から摂氏へ変換します
322
+
323
+ kashi 摂氏から華氏へ変換します
324
+
325
+ kuji 今日の運勢を乱数を使って占います
326
+
327
+ Numbers Numbers4の候補となる数字を乱数を使って出力します
328
+
329
+ loto6 Loto6の候補となる数字を乱数を使って出力します
330
+
331
+ OneRunner ワンライナーの館へ案内します
332
+
333
+ delete ファイルを指定して削除できます
334
+
335
+ find 単語を探します
336
+
337
+ remove フォルダを消します
338
+
339
+ rename ファイルの名前を変えます
340
+
341
+ makefolder フォルダを作成します
342
+
343
+ NumberGame 数字当てゲームです (疑似乱数版)
344
+
345
+ Encode 文字列のエンコードを評価します
346
+
347
+ Eval eval族の館へようこそ、足し算などが行えます
348
+
349
+ Anpea オームの法則を使い、電流を調べます
350
+
351
+ Volt オームの法則を使い、電圧を調べます
352
+
353
+ Rister オームの法則を使い、抵抗を調べます
354
+
355
+ week 太陽暦で日付の曜日を真と偽で判定します
356
+
357
+ reader RSSの取得先からタイトル表示 (雨音から移植)
358
+
359
+ 終了するときは、exitと入力します'
360
+
361
+ puts 'COMMAND'.center(60, '-')
362
+
363
+ print '> '
364
+
365
+ # It is a help document of zinbeic exit!
366
+
367
+ # The command which can be called is only once.  
368
+ elsif line.match?(once[0])
369
+
370
+ begin
371
+ print '探したい文字列を入力してください: '
372
+ re = gets.chomp
373
+ rescue StandardError => et
374
+ p et
375
+ puts 'エラーです。文字列を確認してください!'
376
+ retry
377
+ end
378
+
379
+ begin
380
+ print '探したいフォルダのパスを指定してください: '
381
+ fo = gets.chomp
382
+ rescue StandardError => es
383
+ p es
384
+ puts 'エラーです。文字列を確認してください!'
385
+ end
386
+
387
+ begin
388
+ Dir.chdir(fo)
389
+ rescue Errno::EEXIST
390
+ Errno::EEXIST
391
+ end
392
+
393
+ begin
394
+ print 'ファイル名を拡張子を含んで入力してください: '
395
+
396
+ filename = gets.chomp
397
+ File.open(filename) do |d|
398
+ puts ' '
399
+
400
+ while (liner = d.gets)
401
+ liner.chomp!
402
+ next unless liner.match?(re)
403
+ printf('%4d 行目 : %s ', d.lineno, liner)
404
+ print ' Find!(発見!)'
405
+ puts ' '
406
+ puts ' '
407
+ end
408
+ end
409
+ rescue StandardError => ex
410
+ p ex
411
+ puts 'エラーです。ファイル名を確認してください。\n'
412
+ retry
413
+ ensure
414
+ puts '終了は exit を入力してください!'
415
+ end
416
+ print '> '
417
+
418
+ elsif line.match?(once[1])
419
+
420
+ begin
421
+ print '消したいフォルダのパスを指定してください: '
422
+ mo = gets.chomp
423
+ rescue StandardError => es
424
+ p es
425
+ puts 'エラーです。文字列を確認してください!'
426
+ end
427
+
428
+ begin
429
+ Dir.chdir(mo)
430
+ rescue Errno::EEXIST
431
+ Errno::EEXIST
432
+ end
433
+
434
+ begin
435
+ print 'ファイル名を拡張子を含んで入力してください: '
436
+
437
+ del = readline.chomp!
438
+ File.delete(del)
439
+
440
+ puts '削除しました。'
441
+ rescue StandardError => ex
442
+ p ex
443
+ puts 'エラーです。ファイル名を確認してください。\n'
444
+ retry
445
+ ensure
446
+ puts '終了は exit を入力してください!'
447
+ end
448
+ print '> '
449
+
450
+ elsif line.match?(once[2])
451
+
452
+ begin
453
+ print '削除したいフォルダのパスを指定してください: '
454
+ st = gets.chomp
455
+ rescue StandardError => es
456
+ p es
457
+ puts 'エラーです。文字列を確認してください!'
458
+ end
459
+
460
+ begin
461
+ Dir.chdir(st)
462
+ rescue Errno::EEXIST
463
+ Errno::EEXIST
464
+ end
465
+
466
+ begin
467
+ print '削除したいフォルダ名を拡張子を含んで入力してください: '
468
+
469
+ rem = readline.chomp!
470
+ Dir.rmdir(rem)
471
+
472
+ puts '削除しました。'
473
+ rescue StandardError => ex
474
+ p ex
475
+ puts 'エラーです。ファイル名を確認してください。\n'
476
+ retry
477
+ ensure
478
+ puts '終了は exit を入力してください!'
479
+ end
480
+ print '> '
481
+ elsif line.match?(once[3])
482
+
483
+ begin
484
+ print '名前を変えたいフォルダのパスを指定してください: '
485
+ nem = gets.chomp
486
+ rescue StandardError => es
487
+ p es
488
+ puts 'エラーです。文字列を確認してください!'
489
+ end
490
+
491
+ begin
492
+ Dir.chdir(nem)
493
+ rescue Errno::EEXIST
494
+ Errno::EEXIST
495
+ end
496
+
497
+ begin
498
+ print '現在のファイル名を拡張子を含んで入力してください: '
499
+ re = gets.chomp!
500
+ rescue StandardError => ex
501
+ p ex
502
+ puts 'エラーです。ファイル名を確認してください。\n'
503
+ retry
504
+ end
505
+
506
+ begin
507
+ print '変更するファイル名を拡張子を含んで入力してください: '
508
+
509
+ no = gets.chomp!
510
+
511
+ File.rename(re, no)
512
+
513
+ puts '変更しました。'
514
+ rescue StandardError => ex
515
+ p ex
516
+ puts 'エラーです。ファイル名を確認してください。\n'
517
+ retry
518
+ ensure
519
+ puts '終了は exit を入力してください!'
520
+ end
521
+
522
+ print '> '
523
+ elsif line.match?(once[4])
524
+
525
+ begin
526
+ print '作成したいフォルダのパスを指定してください: '
527
+ mk = gets.chomp
528
+ rescue StandardError => es
529
+ p es
530
+ puts 'エラーです。文字列を確認してください!'
531
+ end
532
+
533
+ begin
534
+ Dir.chdir(mk)
535
+ rescue Errno::EEXIST
536
+ Errno::EEXIST
537
+ end
538
+
539
+ begin
540
+ print 'フォルダ名を入力してください: '
541
+
542
+ ma = readline.chomp!
543
+ Dir.mkdir(ma)
544
+
545
+ puts '作成しました。'
546
+ rescue StandardError => ex
547
+ p ex
548
+ puts 'エラーです。ファイル名を確認してください。\n'
549
+ retry
550
+ ensure
551
+ puts '終了は exit を入力してください!'
552
+ end
553
+
554
+ print '> '
555
+
556
+ elsif line.match?(once[5])
557
+ begin
558
+ x = Random.rand(1..100)
559
+
560
+ puts ''
561
+ puts '何回まで、繰り返すか指定してください (20回が限度です)'
562
+ print '> '
563
+ num = (gets.chomp.to_i).freeze
564
+ puts "#{num}回、繰り返すまでに当ててください:"
565
+ puts ''
566
+ puts '1 ~ 100までの数字をいれてください、NumberGameスタート!'
567
+ print '> '
568
+
569
+ if num < 21
570
+ num.times do |z|
571
+ input_n = (gets.chomp.to_i).freeze
572
+ input_m = input_n.to_s
573
+
574
+ if input_n < 101
575
+ if input_m.match(/^0/o)
576
+ puts ''
577
+ puts '0と00または空白を入力したため、終了します...'
578
+ puts ''
579
+ break
580
+ elsif input_n < x
581
+ puts 'コンピュータの選んだ数字の方が大きいため大きい数字を入力してください'
582
+ print '> '
583
+ elsif input_n > x
584
+ puts 'コンピュータの選んだ数字の方が小さいため小さい数字を入力してください'
585
+ print '> '
586
+ elsif input_n == x
587
+ puts ''
588
+ puts 'おめでとうございます、正解です'
589
+ puts ''
590
+ puts "#{num}回範囲内: #{z+1}回目で正解しました"
591
+ puts ''
592
+ break
593
+ else
594
+ puts ''
595
+ puts '正解は' + x.to_s + 'でした'
596
+ puts ''
597
+ puts '処理を終了します...'
598
+ puts ''
599
+ break
600
+ end
601
+ else
602
+ puts ''
603
+ puts '100を超えた数字を入力したため、終了します...'
604
+ puts ''
605
+ break
606
+ end
607
+ end
608
+ else
609
+ puts ''
610
+ puts '繰り返す回数が20回を超えたため、終了します...'
611
+ puts ''
612
+ end
613
+
614
+ rescue StandardError => s
615
+ puts s.backtrace
616
+ tanraku_execute
617
+
618
+ ensure
619
+ puts '正解は' + x.to_s + 'でした'
620
+ puts ''
621
+ puts 'お疲れさまでした、NumberGameを終了します...処理を入力してください!'
622
+ print '> '
623
+ end
624
+
625
+ elsif line.match?(once[6])
626
+ puts
627
+
628
+ class Enco
629
+ begin
630
+ puts '文字列を入力してください'
631
+ print '> '
632
+ filename = gets.chomp
633
+ rescue StandardError => ee
634
+ p ee
635
+ puts 'エラーです。文字列を確認してください!'
636
+ end
637
+
638
+ puts ''
639
+ puts '変更前のエンコードを指定してください'
640
+ puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
641
+ print '> '
642
+ befenco = gets.chomp
643
+
644
+ begin
645
+ puts ''
646
+ puts 'エンコードを指定してください'
647
+ puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
648
+ print '> '
649
+ aftenco = gets.chomp
650
+ puts
651
+ rescue StandardError => ed
652
+ p ed
653
+ puts 'エラーです。エンコーディングを確認してください!'
654
+ end
655
+
656
+ ut = Encoding::Converter.new(befenco, aftenco)
657
+ p ut.convert(filename)
658
+ ut.finish.dump
659
+ puts
660
+
661
+ ensure
662
+ puts '終了は exit を入力してください!'
663
+ puts
664
+ end
665
+ print '> '
666
+ elsif line.match?(dark[1])
667
+ begin
668
+ puts 'eval族の館へようこそ!'
669
+ puts '簡単な文字列を評価してください'
670
+ print '> '
671
+ re = gets.chomp
672
+ puts ''
673
+ p eval(re)
674
+ puts ''
675
+ rescue StandardError => et
676
+ p et
677
+ print '> '
678
+ puts 'エラーです。文字列を確認してください!'
679
+ puts ''
680
+ retry
681
+ ensure
682
+ puts '終了は exit を入力してください!'
683
+ end
684
+ print '> '
685
+
686
+ elsif line.match?(once[7])
687
+ puts ''
688
+ puts 'WEEK'.center(60, '-')
689
+ puts ''
690
+ puts '入力した日付を曜日で判定します'
691
+ puts '半角数字で入力してください'
692
+ puts 'それでは、スタート!'
693
+ puts ''
694
+ puts 'WEEK'.center(60, '-')
695
+ puts ''
696
+
697
+ begin
698
+ puts '調べたい年を入力してください'
699
+ print '> '
700
+ nen = gets.chomp.to_i
701
+ rescue StandardError => ee
702
+ p ee
703
+ puts 'エラーです。数字を確認してください!'
704
+ end
705
+
706
+ puts ''
707
+
708
+ begin
709
+ puts '調べたい月を入力してください'
710
+ print '> '
711
+ mon = gets.chomp.to_i
712
+ rescue StandardError => ey
713
+ p ey
714
+ puts 'エラーです。数字を確認してください!'
715
+ end
716
+
717
+ puts ''
718
+
719
+ begin
720
+ puts '調べたい日を入力してください'
721
+ print '> '
722
+ days = gets.chomp.to_i
723
+ rescue StandardError => ex
724
+ p ex
725
+ puts 'エラーです。数字を確認してください!'
726
+ end
727
+
728
+ puts ''
729
+
730
+ t = Time.local(nen, mon, days)
731
+
732
+ if t.sunday?
733
+ puts "#{nen}年#{mon}月#{days}日は、日曜日です。"
734
+ puts ''
735
+ elsif t.monday?
736
+ puts "#{nen}年#{mon}月#{days}日は、月曜日です。"
737
+ puts ''
738
+ elsif t.tuesday?
739
+ puts "#{nen}年#{mon}月#{days}日は、火曜日です。"
740
+ puts ''
741
+ elsif t.wednesday?
742
+ puts "#{nen}年#{mon}月#{days}日は、水曜日です。"
743
+ puts ''
744
+ elsif t.thursday?
745
+ puts "#{nen}年#{mon}月#{days}日は、木曜日です。"
746
+ puts ''
747
+ elsif t.friday?
748
+ puts "#{nen}年#{mon}月#{days}日は、金曜日です。"
749
+ puts ''
750
+ elsif t.saturday?
751
+ puts "#{nen}年#{mon}月#{days}日は、土曜日です。"
752
+ puts ''
753
+ else
754
+ puts 'ありえない曜日を指しています...終了します! '
755
+ exit!
756
+ end
757
+
758
+ print '> '
759
+
760
+ # The command which can be called is only once.
761
+
762
+ elsif line.match?(rss[0])
763
+ require 'rss'
764
+ require 'date'
765
+ require 'kconv'
766
+
767
+ begin
768
+ puts '調べたいRSSのURLを入力してください'
769
+ print '> '
770
+ URL = gets.chomp
771
+ rescue StandardError => eq
772
+ p eq
773
+ puts 'エラーです。URLを確認してください!'
774
+ end
775
+
776
+ rss = RSS::Parser.parse(URL)
777
+
778
+ puts ''
779
+
780
+ rss.items.collect do |scale|
781
+ puts scale.title
782
+ end
783
+
784
+ puts ''
785
+ print '> '
786
+
787
+ else
788
+ puts "Can't Enter this Words. Please input help"
789
+ print '> '
790
+ end
791
+ end
792
+ # Wainting Action Code exit!
793
+
794
+ # Exception throw!
795
+ rescue StandardError => ex
796
+ p ex
797
+ puts 'エラーです。文字列を確認してください!'
798
+ retry
799
+ print '> '
800
+
801
+ # Ruby ensure is Java Exception of finally.
802
+ ensure
803
+ puts '終了は exit を入力してください!'
804
+ end
805
+
806
+ __END__