diff --git a/ruby/lib/gilded_rose.rb b/ruby/lib/gilded_rose.rb index be80d55d..c98a2ce4 100644 --- a/ruby/lib/gilded_rose.rb +++ b/ruby/lib/gilded_rose.rb @@ -56,6 +56,10 @@ class GildedRose def self.update_normal_quality(item) item.quality -= 1 unless item.quality.zero? end + + def self.selfarus?(item) + !item.name.downcase.match( /selfarus/).nil? + end end class Item diff --git a/ruby/spec/gilded_rose_spec.rb b/ruby/spec/gilded_rose_spec.rb index 7982dde2..14a742a7 100644 --- a/ruby/spec/gilded_rose_spec.rb +++ b/ruby/spec/gilded_rose_spec.rb @@ -94,12 +94,24 @@ let(:sulfarus) { Item.new('Sulfuras, Hand of Ragnaros', 50, 80) } end it 'does not update quality if quality == 0' do - item_double = double :item, name: "potato", sellIn: 1, quality: 0 + item_double = double :item, name: "potato", sell_in: 1, quality: 0 expect(item_double).not_to receive(:quality=).with(-1) GildedRose.update_normal_quality(item_double) end end + + describe '#selfarus?' do + it 'returns true on a selfarus item' do + selfarus_double = double :selfarus, name: 'selfarus', sell_in: 50, quality: 80 + expect(GildedRose.selfarus?(selfarus_double)).to eq true + end + + it 'returns false on a non selfarus item' do + item_double = double :item, name: "potato", sell_in: 1, quality: 0 + expect(GildedRose.selfarus?(item_double)).to eq false + end + end