Newer
Older
Ruby / j2433_last.rb
@SUGAWARA Ayaka SUGAWARA Ayaka on 25 Jan 1 KB 2025-01-25 14:15:44
#!/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