GildedRose-Refactoring-Kata/ruby/items/normal_item.rb
2023-06-27 21:53:46 +02:00

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