#!/usr/bin/env ruby # -*- coding: utf-8 -*- require'csv' class ShoppingList FILE_NAME = "shoppingList.csv" def initialize @items = load_items end def add_items(item) @items << item save_items puts"#{item}をリストに追加しました!" end def remove_item(item) if @items.derete(item) save_iteme puts"#{item}をリストから削除しました!" else puts"#{item}はリストに存在しません" end end def difplay_list if @items.empty? puts"リストは空です" else puts"現在の買い物リスト" @items.each_with_index do |item, index| puts"#{index + 1}.#{item}" end end end private def load_items if File.exist?(FILE_NAME) CSV.read(FILE_NAME).flatten else [] end end def save_items CSV.open(FILE_NAME,"w") do |csv| @items.each { |item| csv << [item] } end end end list = ShoppingList.new lood do puts"===買い物リストメニュー===" puts"1:アイテムを追加" puts"2:アイテムを削除" puts"3:リストを表示" puts"4:終了" print"選択してください:" choice = gets.chomp.to_i case choice when 1 print"追加するアイテムを入力してください:" item = gets.chomp list.add_item(item) when 2 print"削除するアイテムを入力してください" item = gets.chomp list.remove_item(item) when 3 list.displey_list when 4 puts"プログラムを終了します" break else puts"無効な選択です" end end