update_name_from_foo_to_fixme実装

This commit is contained in:
ando-s 2025-03-12 15:13:45 +09:00
parent 71261052fa
commit 1e3c8cc606
2 changed files with 24 additions and 2 deletions

View File

@ -49,12 +49,23 @@ class GildedRose
end
end
end
# itemのnameがfooだった場合に、fixmeに更新する
item.update_name_from_foo_to_fixme
end
end
end
# 必ず自身のインスタンス変数を操作するよう実装する
# いいクラスの構成要素
# インスタンス変数
# 完全性を保証するようにインスタンス変数を操作するメソッド
# コンストラクタで初期化する
# initializeメソッドを実装する
class Item
attr_accessor :name, :sell_in, :quality
attr_accessor :sell_in, :quality
attr_reader :name
def initialize(name, sell_in, quality)
@name = name
@ -65,4 +76,15 @@ class Item
def to_s()
"#{@name}, #{@sell_in}, #{@quality}"
end
def update_name_from_foo_to_fixme
return if can_change_name_fixme?
@name = "fixme"
end
private
def can_change_name_fixme?
@name != "foo"
end
end

View File

@ -3,7 +3,7 @@ require 'rspec'
require File.join(File.dirname(__FILE__), 'gilded_rose')
describe GildedRose do
it "does not change the name" do
it "fooをfixmeに変える" do
items = [Item.new("foo", 0, 0)]
GildedRose.new(items).update_quality()
expect(items[0].name).to eq "fixme"