mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-10 12:11:20 +00:00
update_name_from_foo_to_fixme実装
This commit is contained in:
parent
71261052fa
commit
1e3c8cc606
@ -49,12 +49,23 @@ class GildedRose
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# itemのnameがfooだった場合に、fixmeに更新する
|
||||||
|
item.update_name_from_foo_to_fixme
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 必ず自身のインスタンス変数を操作するよう実装する
|
||||||
|
# いいクラスの構成要素
|
||||||
|
# インスタンス変数
|
||||||
|
# 完全性を保証するようにインスタンス変数を操作するメソッド
|
||||||
|
|
||||||
|
# コンストラクタで初期化する
|
||||||
|
# initializeメソッドを実装する
|
||||||
class Item
|
class Item
|
||||||
attr_accessor :name, :sell_in, :quality
|
attr_accessor :sell_in, :quality
|
||||||
|
attr_reader :name
|
||||||
|
|
||||||
def initialize(name, sell_in, quality)
|
def initialize(name, sell_in, quality)
|
||||||
@name = name
|
@name = name
|
||||||
@ -65,4 +76,15 @@ class Item
|
|||||||
def to_s()
|
def to_s()
|
||||||
"#{@name}, #{@sell_in}, #{@quality}"
|
"#{@name}, #{@sell_in}, #{@quality}"
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@ -3,7 +3,7 @@ require 'rspec'
|
|||||||
require File.join(File.dirname(__FILE__), 'gilded_rose')
|
require File.join(File.dirname(__FILE__), 'gilded_rose')
|
||||||
|
|
||||||
describe GildedRose do
|
describe GildedRose do
|
||||||
it "does not change the name" do
|
it "fooをfixmeに変える" do
|
||||||
items = [Item.new("foo", 0, 0)]
|
items = [Item.new("foo", 0, 0)]
|
||||||
GildedRose.new(items).update_quality()
|
GildedRose.new(items).update_quality()
|
||||||
expect(items[0].name).to eq "fixme"
|
expect(items[0].name).to eq "fixme"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user