Нели обнови решението на 25.10.2012 21:54 (преди около 12 години)
Тази мутация names.uniq!
ще ти струва точки по две причини. Първо, лошо е подравнена. Второ, мутация е.
.........F. Failures: 1) Collection supports negation of filters Failure/Error: filtered = collection.filter Criteria.artist('Sting') & !Criteria.name('Fields of Gold') NoMethodError: undefined method `type' for #<NegationCriteria:0x99113c0> # /tmp/d20130203-23049-1m3hbbj/solution.rb:105:in `&' # /tmp/d20130203-23049-1m3hbbj/spec.rb:78:in `block (2 levels) in <top (required)>' # ./lib/homework/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/homework/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' Finished in 0.01093 seconds 11 examples, 1 failure Failed examples: rspec /tmp/d20130203-23049-1m3hbbj/spec.rb:77 # Collection supports negation of filters
Тази мутация names.uniq!
ще ти струва точки по две причини. Първо, лошо е подравнена. Второ, мутация е.
Може ли да получа жокер за each как да стане по-кратко?
Enumerable
. Има го в слайдовете :)
Още не си оправила идентацията.
При filter връща обект с повторения. Мисля, че трябва да си предефинирам equ? за Songs, но не съм сигурна.
it "supports a negation of filters" do filtered = collection.filter !Criteria.artist('Sting') filtered.map(&:album).should eq ["Live at Blues Alley", "Portrait in Jazz", "Yield", "Ten", "One", "A Love Supreme", "Mysterioso"] end
Ето при този тест проблемът е, че разултата ми е ["Live at Blues Alley", "Live at Blues Alley", "Portrait in Jazz", "Yield", "Ten", "One", "A Love Supreme", "Mysterioso"]. Как трябва да премахна повторенията. Мислех , че с uniq и предефиниране на hash и equ? за Songs ще се изчистят повторенията, но сега осъзнавам, че няма да стане така.