sheltered-girl 4.0.4.1 → 4.0.4.2
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.
- checksums.yaml +4 -4
- data/bin/speak +392 -44
- data/lib/version.rb +1 -1
- metadata +2 -4
- data/bin/zinbeiw +0 -1083
- /data/req/{zinbeiw.rb → speak.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3a18d4cf60c1d56d82075edc104b72b1f1bbd71104625bae589c0de0a9a0c40
|
4
|
+
data.tar.gz: ac015b16612c9ce02f373fa65db5dbd1d16c7a13cb6ffbe5952881231a0373b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87b172b1fa29e50ca0e865ff52cedefea607b524574a073534cdf6b2dbf114da677998fdad48737557d638faff46853f9adfc05f351b39bdd75c90f464c1730a
|
7
|
+
data.tar.gz: b0ed28441759d6d6add0652c3f38998bc0a9dd515e71016ef581f6318824341af6e05d09b3db10d168499f93735c10642adbfc5206887dac0c78305144ffa9c1
|
data/bin/speak
CHANGED
@@ -3,8 +3,7 @@
|
|
3
3
|
|
4
4
|
# vim: filetype=ruby
|
5
5
|
|
6
|
-
require
|
7
|
-
require 'tanraku'
|
6
|
+
require "#{File.dirname(__FILE__)}/../req/speak"
|
8
7
|
|
9
8
|
lib = File.expand_path('lib', __dir__)
|
10
9
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
@@ -31,7 +30,7 @@ class Emerald
|
|
31
30
|
print ' '
|
32
31
|
end
|
33
32
|
puts ''
|
34
|
-
|
33
|
+
end
|
35
34
|
|
36
35
|
def fizzbizz
|
37
36
|
puts 'FizzBizz問題の出力結果です!'
|
@@ -49,7 +48,7 @@ class Emerald
|
|
49
48
|
print ' '
|
50
49
|
end
|
51
50
|
puts ''
|
52
|
-
|
51
|
+
end
|
53
52
|
|
54
53
|
def kurage
|
55
54
|
a = rand(15)
|
@@ -59,7 +58,7 @@ class Emerald
|
|
59
58
|
end
|
60
59
|
puts '<コ:彡'
|
61
60
|
puts ''
|
62
|
-
|
61
|
+
end
|
63
62
|
end
|
64
63
|
|
65
64
|
saikoro = Random.rand(4)
|
@@ -75,26 +74,26 @@ else
|
|
75
74
|
end
|
76
75
|
|
77
76
|
puts ''
|
78
|
-
puts '
|
77
|
+
puts 'helpを入力またはTab補完で実行しましょう!'
|
79
78
|
|
80
79
|
# search words
|
81
80
|
|
82
81
|
begin
|
83
82
|
str = %w[sessi kashi exit help].map!(&:freeze).freeze
|
84
83
|
|
85
|
-
once = %w[find delete remove rename makefolder
|
84
|
+
once = %w[find delete remove rename makefolder NumberGame2 Encode week calendar NumberGame].map!(&:freeze).freeze
|
86
85
|
|
87
86
|
lucky = %w[loto6 Numbers kuji].map!(&:freeze).freeze
|
88
87
|
|
89
|
-
dark = %w[OneRunner Eval].map!(&:freeze).freeze
|
88
|
+
dark = %w[OneRunner Eval output].map!(&:freeze).freeze
|
90
89
|
|
91
90
|
denki = %w[Anpea Volt Rister].map!(&:freeze).freeze
|
92
91
|
|
93
|
-
|
92
|
+
other = %w[weather reader atom result rss].map!(&:freeze).freeze
|
94
93
|
|
95
|
-
WORDS = (str + once + lucky + dark + denki +
|
94
|
+
WORDS = (str + once + lucky + dark + denki + other).map!(&:freeze).freeze
|
96
95
|
|
97
|
-
Readline.completion_proc = proc {|word|
|
96
|
+
Readline.completion_proc = proc { |word|
|
98
97
|
WORDS.grep(/\A#{Regexp.quote word}/)
|
99
98
|
}
|
100
99
|
|
@@ -104,14 +103,13 @@ begin
|
|
104
103
|
|
105
104
|
# Wainting Action code!
|
106
105
|
|
107
|
-
while (line = Readline.readline(
|
106
|
+
while (line = Readline.readline(''))
|
108
107
|
|
109
108
|
line.chomp!
|
110
109
|
|
111
110
|
if line.match?(str[0])
|
112
111
|
def seru(b)
|
113
|
-
|
114
|
-
y
|
112
|
+
(b - 32) * 5 / 9
|
115
113
|
end
|
116
114
|
puts '華氏を入力してください!'
|
117
115
|
.print '> '
|
@@ -123,8 +121,7 @@ begin
|
|
123
121
|
|
124
122
|
elsif line.match?(str[1])
|
125
123
|
def seru(b)
|
126
|
-
|
127
|
-
y
|
124
|
+
(1.8 * b) + 32
|
128
125
|
end
|
129
126
|
puts '摂氏を入力してください!'
|
130
127
|
print '> '
|
@@ -238,8 +235,7 @@ begin
|
|
238
235
|
elsif line.match?(denki[0])
|
239
236
|
|
240
237
|
def anpea(a, b)
|
241
|
-
|
242
|
-
x
|
238
|
+
b / a
|
243
239
|
end
|
244
240
|
|
245
241
|
puts
|
@@ -264,8 +260,7 @@ begin
|
|
264
260
|
elsif line.match?(denki[1])
|
265
261
|
|
266
262
|
def volt(c, d)
|
267
|
-
|
268
|
-
y
|
263
|
+
c * d
|
269
264
|
end
|
270
265
|
|
271
266
|
puts
|
@@ -289,8 +284,7 @@ begin
|
|
289
284
|
elsif line.match?(denki[2])
|
290
285
|
|
291
286
|
def rister(k, l)
|
292
|
-
|
293
|
-
z
|
287
|
+
k / l
|
294
288
|
end
|
295
289
|
|
296
290
|
puts
|
@@ -322,7 +316,7 @@ sessi 華氏から摂氏へ変換します
|
|
322
316
|
|
323
317
|
kashi 摂氏から華氏へ変換します
|
324
318
|
|
325
|
-
kuji
|
319
|
+
kuji 今日の運勢を占います
|
326
320
|
|
327
321
|
Numbers Numbers4の候補となる数字を乱数を使って出力します
|
328
322
|
|
@@ -342,6 +336,8 @@ makefolder フォルダを作成します
|
|
342
336
|
|
343
337
|
NumberGame 数字当てゲームです (疑似乱数版)
|
344
338
|
|
339
|
+
NumberGame2 数字当てゲームです (乱数版)
|
340
|
+
|
345
341
|
Encode 文字列のエンコードを評価します
|
346
342
|
|
347
343
|
Eval eval族の館へようこそ、足し算などが行えます
|
@@ -352,10 +348,26 @@ Volt オームの法則を使い、電圧を調べます
|
|
352
348
|
|
353
349
|
Rister オームの法則を使い、抵抗を調べます
|
354
350
|
|
355
|
-
week
|
351
|
+
week 現在日付と曜日を表示します
|
352
|
+
|
353
|
+
calendar PyCallでpythonを呼び出しカレンダー表示します
|
354
|
+
|
355
|
+
output 外部コマンドを実行できます
|
356
|
+
※ ただし、入力待ちは実行できません
|
357
|
+
|
358
|
+
weather zinbei2の天気機能を移植しました
|
356
359
|
|
357
360
|
reader RSSの取得先からタイトル表示 (雨音から移植)
|
358
361
|
|
362
|
+
atom gem install feedjira (v3.0.0~)
|
363
|
+
gem install httparty
|
364
|
+
atom形式のrssを読み込むことができます
|
365
|
+
|
366
|
+
result rssの記号を個数としてカウントします
|
367
|
+
※ ただし、カウント後zinbeiwを終了します
|
368
|
+
|
369
|
+
rss RSS投稿時間帯を判別します
|
370
|
+
|
359
371
|
終了するときは、exitと入力します'
|
360
372
|
|
361
373
|
puts 'COMMAND'.center(60, '-')
|
@@ -364,11 +376,11 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
364
376
|
|
365
377
|
# It is a help document of zinbeic exit!
|
366
378
|
|
367
|
-
# The command which can be called is only once.
|
379
|
+
# The command which can be called is only once.
|
368
380
|
elsif line.match?(once[0])
|
369
381
|
|
370
382
|
begin
|
371
|
-
print '探したい文字列を入力してください:
|
383
|
+
print '探したい文字列を入力してください: '
|
372
384
|
re = gets.chomp
|
373
385
|
rescue StandardError => et
|
374
386
|
p et
|
@@ -377,7 +389,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
377
389
|
end
|
378
390
|
|
379
391
|
begin
|
380
|
-
print '探したいフォルダのパスを指定してください:
|
392
|
+
print '探したいフォルダのパスを指定してください: '
|
381
393
|
fo = gets.chomp
|
382
394
|
rescue StandardError => es
|
383
395
|
p es
|
@@ -391,7 +403,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
391
403
|
end
|
392
404
|
|
393
405
|
begin
|
394
|
-
print 'ファイル名を拡張子を含んで入力してください:
|
406
|
+
print 'ファイル名を拡張子を含んで入力してください: '
|
395
407
|
|
396
408
|
filename = gets.chomp
|
397
409
|
File.open(filename) do |d|
|
@@ -418,7 +430,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
418
430
|
elsif line.match?(once[1])
|
419
431
|
|
420
432
|
begin
|
421
|
-
print '消したいフォルダのパスを指定してください:
|
433
|
+
print '消したいフォルダのパスを指定してください: '
|
422
434
|
mo = gets.chomp
|
423
435
|
rescue StandardError => es
|
424
436
|
p es
|
@@ -432,7 +444,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
432
444
|
end
|
433
445
|
|
434
446
|
begin
|
435
|
-
print 'ファイル名を拡張子を含んで入力してください:
|
447
|
+
print 'ファイル名を拡張子を含んで入力してください: '
|
436
448
|
|
437
449
|
del = readline.chomp!
|
438
450
|
File.delete(del)
|
@@ -450,7 +462,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
450
462
|
elsif line.match?(once[2])
|
451
463
|
|
452
464
|
begin
|
453
|
-
print '削除したいフォルダのパスを指定してください:
|
465
|
+
print '削除したいフォルダのパスを指定してください: '
|
454
466
|
st = gets.chomp
|
455
467
|
rescue StandardError => es
|
456
468
|
p es
|
@@ -464,7 +476,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
464
476
|
end
|
465
477
|
|
466
478
|
begin
|
467
|
-
print '削除したいフォルダ名を拡張子を含んで入力してください:
|
479
|
+
print '削除したいフォルダ名を拡張子を含んで入力してください: '
|
468
480
|
|
469
481
|
rem = readline.chomp!
|
470
482
|
Dir.rmdir(rem)
|
@@ -481,7 +493,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
481
493
|
elsif line.match?(once[3])
|
482
494
|
|
483
495
|
begin
|
484
|
-
print '名前を変えたいフォルダのパスを指定してください:
|
496
|
+
print '名前を変えたいフォルダのパスを指定してください: '
|
485
497
|
nem = gets.chomp
|
486
498
|
rescue StandardError => es
|
487
499
|
p es
|
@@ -495,7 +507,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
495
507
|
end
|
496
508
|
|
497
509
|
begin
|
498
|
-
print '現在のファイル名を拡張子を含んで入力してください:
|
510
|
+
print '現在のファイル名を拡張子を含んで入力してください: '
|
499
511
|
re = gets.chomp!
|
500
512
|
rescue StandardError => ex
|
501
513
|
p ex
|
@@ -504,7 +516,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
504
516
|
end
|
505
517
|
|
506
518
|
begin
|
507
|
-
print '変更するファイル名を拡張子を含んで入力してください:
|
519
|
+
print '変更するファイル名を拡張子を含んで入力してください: '
|
508
520
|
|
509
521
|
no = gets.chomp!
|
510
522
|
|
@@ -523,7 +535,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
523
535
|
elsif line.match?(once[4])
|
524
536
|
|
525
537
|
begin
|
526
|
-
print '作成したいフォルダのパスを指定してください:
|
538
|
+
print '作成したいフォルダのパスを指定してください: '
|
527
539
|
mk = gets.chomp
|
528
540
|
rescue StandardError => es
|
529
541
|
p es
|
@@ -537,7 +549,7 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
537
549
|
end
|
538
550
|
|
539
551
|
begin
|
540
|
-
print 'フォルダ名を入力してください:
|
552
|
+
print 'フォルダ名を入力してください: '
|
541
553
|
|
542
554
|
ma = readline.chomp!
|
543
555
|
Dir.mkdir(ma)
|
@@ -552,10 +564,9 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
552
564
|
end
|
553
565
|
|
554
566
|
print '> '
|
555
|
-
|
556
567
|
elsif line.match?(once[5])
|
557
568
|
begin
|
558
|
-
x =
|
569
|
+
x = SecureRandom.random_number(1..100).freeze
|
559
570
|
|
560
571
|
puts ''
|
561
572
|
puts '何回まで、繰り返すか指定してください (20回が限度です)'
|
@@ -637,14 +648,14 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
637
648
|
|
638
649
|
puts ''
|
639
650
|
puts '変更前のエンコードを指定してください'
|
640
|
-
puts 'ISO-2022-JP,SJIS,eucJP,UTF-8
|
651
|
+
puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
|
641
652
|
print '> '
|
642
653
|
befenco = gets.chomp
|
643
654
|
|
644
655
|
begin
|
645
656
|
puts ''
|
646
657
|
puts 'エンコードを指定してください'
|
647
|
-
puts 'ISO-2022-JP,SJIS,eucJP,UTF-8
|
658
|
+
puts 'ISO-2022-JP,SJIS,eucJP,UTF-8 が候補です。'
|
648
659
|
print '> '
|
649
660
|
aftenco = gets.chomp
|
650
661
|
puts
|
@@ -665,8 +676,8 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
665
676
|
print '> '
|
666
677
|
elsif line.match?(dark[1])
|
667
678
|
begin
|
668
|
-
puts 'eval族の館へようこそ!
|
669
|
-
|
679
|
+
puts 'eval族の館へようこそ!
|
680
|
+
簡単な文字列を評価してください'
|
670
681
|
print '> '
|
671
682
|
re = gets.chomp
|
672
683
|
puts ''
|
@@ -683,6 +694,32 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
683
694
|
end
|
684
695
|
print '> '
|
685
696
|
|
697
|
+
elsif line.match?(dark[2])
|
698
|
+
begin
|
699
|
+
puts ''
|
700
|
+
puts 'OUTPUT'.center(60, '-')
|
701
|
+
puts ''
|
702
|
+
puts '外部コマンドを実行できます!'
|
703
|
+
puts ''
|
704
|
+
puts 'OUTPUT'.center(60, '-')
|
705
|
+
puts ''
|
706
|
+
print '> '
|
707
|
+
re = gets.chomp
|
708
|
+
puts ''
|
709
|
+
stdout, stderr, status = Open3.capture3(re)
|
710
|
+
puts stdout
|
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
|
+
|
686
723
|
elsif line.match?(once[7])
|
687
724
|
puts ''
|
688
725
|
puts 'WEEK'.center(60, '-')
|
@@ -757,9 +794,117 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
757
794
|
|
758
795
|
print '> '
|
759
796
|
|
797
|
+
elsif line.match?(once[8])
|
798
|
+
puts ''
|
799
|
+
puts 'WEEK'.center(60, '-')
|
800
|
+
puts ''
|
801
|
+
puts '入力した日付をカレンダーで表示します'
|
802
|
+
puts '半角数字で入力してください'
|
803
|
+
puts 'それでは、スタート!'
|
804
|
+
puts ''
|
805
|
+
puts 'WEEK'.center(60, '-')
|
806
|
+
puts ''
|
807
|
+
|
808
|
+
begin
|
809
|
+
puts '調べたい年を入力してください'
|
810
|
+
print '> '
|
811
|
+
nen = gets.chomp.to_i
|
812
|
+
rescue StandardError => ee
|
813
|
+
p ee
|
814
|
+
puts 'エラーです。数字を確認してください!'
|
815
|
+
end
|
816
|
+
|
817
|
+
puts ''
|
818
|
+
|
819
|
+
begin
|
820
|
+
puts '調べたい月を入力してください'
|
821
|
+
print '> '
|
822
|
+
mon = gets.chomp.to_i
|
823
|
+
rescue StandardError => ey
|
824
|
+
p ey
|
825
|
+
puts 'エラーです。数字を確認してください!'
|
826
|
+
end
|
827
|
+
|
828
|
+
puts ''
|
829
|
+
|
830
|
+
t = Time.local(nen, mon)
|
831
|
+
|
832
|
+
pyimport :calendar
|
833
|
+
puts(calendar.month(nen, mon))
|
834
|
+
|
835
|
+
puts ''
|
836
|
+
|
760
837
|
# The command which can be called is only once.
|
838
|
+
print '> '
|
839
|
+
|
840
|
+
elsif line.match?(other[0])
|
841
|
+
|
842
|
+
require 'net/http'
|
843
|
+
require 'uri'
|
844
|
+
require 'json'
|
845
|
+
require 'time'
|
846
|
+
require 'date'
|
847
|
+
require 'rinku'
|
848
|
+
require 'sanitize'
|
849
|
+
|
850
|
+
|
851
|
+
text = <<-EOS
|
852
|
+
------------------------------------------------------------------------
|
853
|
+
|
854
|
+
IDの詳細はこちら → https://github.com/takkii/Utakata/wiki/Utakata-wiki
|
855
|
+
|
856
|
+
※ 日本全国のIDから自分の地域IDを入力!
|
857
|
+
------------------------------------------------------------------------
|
858
|
+
EOS
|
859
|
+
|
860
|
+
links = Rinku.auto_link(text, mode=:all, link_attr=nil, skip_tags=nil)
|
861
|
+
puts Sanitize.clean(links)
|
862
|
+
|
863
|
+
begin
|
864
|
+
puts '調べたい地域のIDを入力してください'
|
865
|
+
puts ''
|
866
|
+
print '> '
|
867
|
+
ID = gets.chomp
|
868
|
+
rescue StandardError => es
|
869
|
+
p es
|
870
|
+
puts 'エラーです。IDを確認してください!'
|
871
|
+
end
|
872
|
+
|
873
|
+
url = 'https://weather.tsukumijima.net/api/forecast?city=' + ID
|
874
|
+
uri = URI.parse(url)
|
875
|
+
json = Net::HTTP.get(uri)
|
876
|
+
result = JSON.parse!(json)
|
877
|
+
today_tel = result['forecasts'][0]['telop']
|
878
|
+
tomor_tel = result['forecasts'][1]['telop']
|
879
|
+
min_tem = result['forecasts'][1]['temperature']['min']['celsius']
|
880
|
+
max_tem = result['forecasts'][1]['temperature']['max']['celsius']
|
881
|
+
des = result['description']['text']
|
882
|
+
des1 = result['description']['publicTime']
|
883
|
+
des2 = DateTime.parse(des1)
|
884
|
+
|
885
|
+
# puts result
|
886
|
+
puts ' 天気予報 '.center(60, '-')
|
887
|
+
puts ''
|
888
|
+
puts '今日の天気は、' + today_tel + ' でしょう '
|
889
|
+
puts '最低気温は、' + min_tem + '℃' + ' でしょう '
|
890
|
+
puts '最高気温は、' + max_tem + '℃' + ' でしょう '
|
891
|
+
puts '明日の天気は、' + tomor_tel + ' でしょう '
|
892
|
+
puts ''
|
893
|
+
puts ' 天気予報 '.center(60, '-')
|
894
|
+
puts ''
|
895
|
+
puts ''
|
896
|
+
puts ' 天気概況文 '.center(60, '-')
|
897
|
+
puts
|
898
|
+
puts des
|
899
|
+
puts ''
|
900
|
+
print ' 天気概況文の発表時刻 : '
|
901
|
+
puts des2.strftime('%Y年%m月%d日 %H時%M分%S秒')
|
902
|
+
puts ''
|
903
|
+
puts ' 天気概況文 '.center(60, '-')
|
904
|
+
|
905
|
+
print '> '
|
761
906
|
|
762
|
-
|
907
|
+
elsif line.match?(other[1])
|
763
908
|
require 'rss'
|
764
909
|
require 'date'
|
765
910
|
require 'kconv'
|
@@ -784,6 +929,207 @@ reader RSSの取得先からタイトル表示 (雨音から移植)
|
|
784
929
|
puts ''
|
785
930
|
print '> '
|
786
931
|
|
932
|
+
elsif line.match?(other[2])
|
933
|
+
|
934
|
+
require 'feedjira'
|
935
|
+
require 'httparty'
|
936
|
+
require 'date'
|
937
|
+
require 'kconv'
|
938
|
+
|
939
|
+
begin
|
940
|
+
puts ''
|
941
|
+
puts '調べたいRSSのURLを入力してください'
|
942
|
+
puts ''
|
943
|
+
print '>'
|
944
|
+
URL = gets.chomp
|
945
|
+
rescue StandardError => es
|
946
|
+
p es
|
947
|
+
puts 'エラーです。URLを確認してください!'
|
948
|
+
end
|
949
|
+
|
950
|
+
Feedjira.logger.level = Logger::FATAL
|
951
|
+
atom = HTTParty.get(URL).body
|
952
|
+
|
953
|
+
Feedjira.parse(atom).entries.collect do |entry|
|
954
|
+
v = /1[0-9]/
|
955
|
+
w = /0[0-9]/
|
956
|
+
x = /2[0-4]/
|
957
|
+
s = entry.published.to_time.strftime '%H'
|
958
|
+
|
959
|
+
if s.match?(v)
|
960
|
+
print '#'
|
961
|
+
print ' '
|
962
|
+
elsif s.match?(w)
|
963
|
+
print '$'
|
964
|
+
print ' '
|
965
|
+
elsif s.match?(x)
|
966
|
+
print '@'
|
967
|
+
print ' '
|
968
|
+
end
|
969
|
+
end
|
970
|
+
|
971
|
+
puts ''
|
972
|
+
print '>'
|
973
|
+
|
974
|
+
elsif line.match?(other[3])
|
975
|
+
|
976
|
+
begin
|
977
|
+
puts 'rssの出力結果を貼り付けてください'
|
978
|
+
print '>'
|
979
|
+
re = gets.chomp
|
980
|
+
rescue StandardError => ee
|
981
|
+
p ee
|
982
|
+
puts 'エラーです。数字を確認してください!'
|
983
|
+
end
|
984
|
+
|
985
|
+
puts 'ログの最近の投稿時間を判別します...'
|
986
|
+
|
987
|
+
str = re.split('')
|
988
|
+
|
989
|
+
puts ''
|
990
|
+
print '20~24時に投稿した回数は...'
|
991
|
+
print str.count('@')
|
992
|
+
puts ' 回あります'
|
993
|
+
print '0時から9時に投稿した回数は...'
|
994
|
+
print str.count('$')
|
995
|
+
puts ' 回あります'
|
996
|
+
print '10時から19時に投稿した回数は...'
|
997
|
+
print str.count('#')
|
998
|
+
puts ' 回あります'
|
999
|
+
|
1000
|
+
puts ''
|
1001
|
+
enum = [str.count('@'), str.count('$'), str.count('#')]
|
1002
|
+
|
1003
|
+
q = enum.max
|
1004
|
+
t = enum.min
|
1005
|
+
|
1006
|
+
puts '最も多い数字は ' + q.to_s + ' 回です'
|
1007
|
+
puts '最も少ない数字は ' + t.to_s + ' 回です'
|
1008
|
+
|
1009
|
+
puts ''
|
1010
|
+
print '合計 '
|
1011
|
+
print str.count('@') + str.count('$') + str.count('#')
|
1012
|
+
puts ' 回です'
|
1013
|
+
puts ''
|
1014
|
+
|
1015
|
+
exit!
|
1016
|
+
|
1017
|
+
elsif line.match?(other[4])
|
1018
|
+
|
1019
|
+
require 'rss'
|
1020
|
+
require 'date'
|
1021
|
+
require 'kconv'
|
1022
|
+
|
1023
|
+
# date = Time.new.strftime('現在時刻 : %Y年%m月%d日 %H時%M分')
|
1024
|
+
|
1025
|
+
begin
|
1026
|
+
puts '調べたいRSSのURLを入力してください'
|
1027
|
+
print '>'
|
1028
|
+
URL = gets.chomp
|
1029
|
+
rescue StandardError => es
|
1030
|
+
p es
|
1031
|
+
puts 'エラーです。URLを確認してください!'
|
1032
|
+
end
|
1033
|
+
|
1034
|
+
rss = RSS::Parser.parse(URL)
|
1035
|
+
|
1036
|
+
rss.items.collect do |scale|
|
1037
|
+
# puts scale.pubDate.strftime '投稿時刻 : %Y年%m月%d日 %H時%M分'
|
1038
|
+
# scale.pubDate.strftime '%H'
|
1039
|
+
|
1040
|
+
v = /1[0-9]/
|
1041
|
+
w = /0[0-9]/
|
1042
|
+
x = /2[0-4]/
|
1043
|
+
s = scale.pubDate.strftime '%H'
|
1044
|
+
|
1045
|
+
if s.match?(v)
|
1046
|
+
print '#'
|
1047
|
+
print ' '
|
1048
|
+
elsif s.match?(w)
|
1049
|
+
print '$'
|
1050
|
+
print ' '
|
1051
|
+
elsif s.match?(x)
|
1052
|
+
print '@'
|
1053
|
+
print ' '
|
1054
|
+
# print ' '
|
1055
|
+
# puts scale.title
|
1056
|
+
# puts scale.link
|
1057
|
+
# puts scale.description
|
1058
|
+
# print ' '
|
1059
|
+
end
|
1060
|
+
end
|
1061
|
+
puts ''
|
1062
|
+
print '>'
|
1063
|
+
|
1064
|
+
elsif line.match?(once[9])
|
1065
|
+
begin
|
1066
|
+
x = Random.rand(1..100)
|
1067
|
+
|
1068
|
+
puts ''
|
1069
|
+
puts '何回まで、繰り返すか指定してください (20回が限度です)'
|
1070
|
+
print '> '
|
1071
|
+
num = (gets.chomp.to_i).freeze
|
1072
|
+
puts "#{num}回、繰り返すまでに当ててください:"
|
1073
|
+
puts ''
|
1074
|
+
puts '1 ~ 100までの数字をいれてください、NumberGameスタート!'
|
1075
|
+
print '> '
|
1076
|
+
|
1077
|
+
if num < 21
|
1078
|
+
num.times do |z|
|
1079
|
+
input_n = (gets.chomp.to_i).freeze
|
1080
|
+
input_m = input_n.to_s
|
1081
|
+
|
1082
|
+
if input_n < 101
|
1083
|
+
if input_m.match(/^0/o)
|
1084
|
+
puts ''
|
1085
|
+
puts '0と00または空白を入力したため、終了します...'
|
1086
|
+
puts ''
|
1087
|
+
break
|
1088
|
+
elsif input_n < x
|
1089
|
+
puts 'コンピュータの選んだ数字の方が大きいため大きい数字を入力してください'
|
1090
|
+
print '> '
|
1091
|
+
elsif input_n > x
|
1092
|
+
puts 'コンピュータの選んだ数字の方が小さいため小さい数字を入力してください'
|
1093
|
+
print '> '
|
1094
|
+
elsif input_n == x
|
1095
|
+
puts ''
|
1096
|
+
puts 'おめでとうございます、正解です'
|
1097
|
+
puts ''
|
1098
|
+
puts "#{num}回範囲内: #{z+1}回目で正解しました"
|
1099
|
+
puts ''
|
1100
|
+
break
|
1101
|
+
else
|
1102
|
+
puts ''
|
1103
|
+
puts '正解は' + x.to_s + 'でした'
|
1104
|
+
puts ''
|
1105
|
+
puts '処理を終了します...'
|
1106
|
+
puts ''
|
1107
|
+
break
|
1108
|
+
end
|
1109
|
+
else
|
1110
|
+
puts ''
|
1111
|
+
puts '100を超えた数字を入力したため、終了します...'
|
1112
|
+
puts ''
|
1113
|
+
break
|
1114
|
+
end
|
1115
|
+
end
|
1116
|
+
else
|
1117
|
+
puts ''
|
1118
|
+
puts '繰り返す回数が20回を超えたため、終了します...'
|
1119
|
+
puts ''
|
1120
|
+
end
|
1121
|
+
|
1122
|
+
rescue StandardError => s
|
1123
|
+
puts s.backtrace
|
1124
|
+
tanraku_execute
|
1125
|
+
|
1126
|
+
ensure
|
1127
|
+
puts '正解は' + x.to_s + 'でした'
|
1128
|
+
puts ''
|
1129
|
+
puts 'お疲れさまでした、NumberGameを終了します...処理を入力してください!'
|
1130
|
+
print '> '
|
1131
|
+
end
|
1132
|
+
|
787
1133
|
else
|
788
1134
|
puts "Can't Enter this Words. Please input help"
|
789
1135
|
print '> '
|
@@ -803,4 +1149,6 @@ ensure
|
|
803
1149
|
puts '終了は exit を入力してください!'
|
804
1150
|
end
|
805
1151
|
|
1152
|
+
GC.compact
|
1153
|
+
|
806
1154
|
__END__
|