#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'csv'
def displayList
puts "\e[1m-持ち物リスト-------------------\e[0m"
CSV.foreach("chuukan_happyou.csv") do |i|
puts " ・ #{i[0]}"
end
puts "\e[1m--------------------------------\e[0m"
end
def displayMenu
puts "\e[30;107m\nメニュー"
if CSV.read("chuukan_happyou.csv") == []
print "\e[9m 1 : 1つずつ持ち物確認する\n 2 : リストで持ち物確認する\n\e[0m\e[30;107m 3 : 「持ち物」を追加する\n\e[9;30;107m 4 : 「持ち物」を消去する\n 5 : 「持ち物」をリセットする\n\e[0m\e[30;107m空白(何も入力しないで Enter ) : 終了する\e[0m"
else
print " 1 : 1つずつ持ち物確認する\n 2 : リストで持ち物確認する\n 3 : 「持ち物」を追加する\n 4 : 「持ち物」を消去する\n 5 : 「持ち物」をリセットする\n空白(何も入力しないで Enter ) : 終了する\e[0m"
end
end
puts "\e[1;3;93m忘れ物防止!! 確認しよう!\e[0m"
displayMenu
while true
data = CSV.read("chuukan_happyou.csv")
data2 = data
print "\nモード(半角数字を入力) : "
mode = gets.chomp
if mode == "1" && data != []
data.each do |i|
print "\e[1m#{i[0]}\e[0mは持ちましたか?(Enter)"
gets
end
puts "\e[1;3;96m準備OK!!\e[0m"
elsif mode == "2" && data != []
displayList
print "全部持ちましたか?(Enter)"
gets
puts "\e[1;3;96m準備OK!!\e[0m"
elsif mode == "3"
tsuika_array = []
while true
print "リストに追加するもの(空白で終了) : "
tsuika = gets.chomp
if tsuika == ""
break
else
if data.include?([tsuika])
puts "\e[3;91m#{tsuika}は既に持ち物リストに入っています\e[0m"
else
tsuika_array << tsuika
CSV.open("chuukan_happyou.csv", "a") do |i|
i << [tsuika]
end
end
end
end
if tsuika_array == []
puts "\n\e[3;37mキャンセルしました\e[0m"
else
puts "\e[3;37m"
tsuika_array.size.times do |i|
print "#{tsuika_array[i]}、"
end
puts "\bを持ち物リストに追加しました\e[0m"
if data2 == []
displayMenu
end
end
elsif mode == "4" && data != []
kesu_array = []
while true
print "リストから削除するもの(空白で終了) : "
kesu = gets.chomp
if kesu == ""
break
else
if data.include?([kesu])
kesu_array << kesu
data.delete_if{|i| i.include?(kesu)}
CSV.open("chuukan_happyou.csv", "w") do |i|
data.each do |j|
i << j
end
end
else
puts "\e[3;91m#{kesu}は持ち物リストに含まれていません\e[0m"
end
end
end
if kesu_array == []
puts "\n\e[3;37mキャンセルしました\e[0m"
else
puts "\e[3;37m"
kesu_array.size.times do |i|
print "#{kesu_array[i]}、"
end
puts "\bを持ち物リストから削除しました\e[0m"
end
if CSV.read("chuukan_happyou.csv") == []
displayMenu
end
elsif mode == "5" && data != []
while true
print "本当にリセットしますか?\n( 1 : リセットする / 2 : キャンセル) : "
reset = gets.chomp.to_i
case reset
when 1
CSV.open("chuukan_happyou.csv", "w") do
end
puts "\n\e[3;37m持ち物リストをリセットしました\e[0m"
displayMenu
break
when 2
puts "\n\e[3;37mキャンセルしました\e[0m"
break
else
puts "その操作は無効です"
end
end
elsif mode == ""
print "\e[3;37m終了します\n\n"
break
else
puts "\e[3;91mその操作は無効です\e[0m"
end
end