mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
42 lines
801 B
Ruby
42 lines
801 B
Ruby
class NormalItem
|
|
attr_reader :item
|
|
|
|
def initialize(item)
|
|
@item = item
|
|
end
|
|
|
|
def spend_day_in_shop
|
|
decrease_sell_in_day
|
|
|
|
decrease_quality
|
|
decrease_quality if item.sell_in.negative?
|
|
|
|
keep_quality_lower_limit_in_bounds
|
|
keep_quality_upper_limit_in_bounds
|
|
|
|
self
|
|
end
|
|
|
|
private
|
|
|
|
def decrease_sell_in_day
|
|
item.sell_in -= 1
|
|
end
|
|
|
|
def decrease_quality
|
|
item.quality -= 1
|
|
end
|
|
|
|
def increase_quality
|
|
item.quality += 1
|
|
end
|
|
|
|
def keep_quality_lower_limit_in_bounds
|
|
item.quality = GildedRose::QUALITY_LOWER_LIMIT if item.quality < GildedRose::QUALITY_LOWER_LIMIT
|
|
end
|
|
|
|
def keep_quality_upper_limit_in_bounds
|
|
item.quality = GildedRose::QUALITY_UPPER_LIMIT if item.quality > GildedRose::QUALITY_UPPER_LIMIT
|
|
end
|
|
end
|