Пуснали сме ново предизвикателство. Срокът е до петък на обяд. Ако имате въпроси, задавайте ги тук.
Единадесето предизвикателство
Кода за клас студент трябва ли да го оставим в решението или ще приемем, че имаме дефиниран следния код , значи че вашите тестове имат достъп до този код?
P.S. Какъв е markdown синтаксисът за italics, че с единичен атерикс или долна черта не става?
Малко тестове.
Не, този клас
Student
няма да го има в теста, нито трябва вие да го дефинирате. Ползваме го само като илюстрация за една примерна употреба на въпроснитеto_proc
дефиниции.P.S. Синтаксисът за italic е принципно точно една подчертавка, или една звезда, но нещо се е променило в Markdown rendering библиотеката и това вече не работи. Може да ползвате HTML таговете
<em></em>
за целта.Аз искам да попитам дали методът в Array И съответно в Hash трябва винаги да работи с обекти на този клас Student(Само със списъци съдържащи обекти от тип Student) или няма значение, какъв е обектът? Или просто методът трябва да може да приема (&[:иманаполе1, :именаполе2, ..., именаполеN]) и да прави нещо с елементите от първоначалният списък?
p students.each &{points: 0, rank: :last} #=> [#, #, #]
това защо не е отбелязано в условието?!
@Александър,
Забелязвам тенденция описанията на примерите да се свеждат до шаблона „X works with Y“.
Това е лоша практика, защото подобни описания са прекалено общи и не показват точно очакваното поведение.
Пример за добри описания можеш да видиш в тестовете на второто предизвикателство например, както и на betterspecs.org.
Пуснах тестовете, може да си видите резултатите вече :)
Изглежда липсва тест за извикване на private методи, което да провери поведение съвпадащо с това на
Symbol#to_proc
. Примерния код на масив от символи от условието изглежда като съкратен вариант на това да се извика повече от веднъжSymbol#to_proc
, дори виждам колеги са го имплементирали буквално с извикването на този методitem.to_sym.to_proc.call(object)
, което между другото ми изглежда една идея по-добре от това да се извика#public_send
за консистентност съсSymbol#to_proc
.Друго интересно е, че в някои решения метода
to_proc
връщаlambda
вместоproc
. Ако се сетите за случай, в който тази разлика би имала значение, може да се разпише под формата на тест.Интересни наблюдения, да. В случая, ние не сме търсили паритет между
Symbol#to_proc
и нашите алтернативни имплементации, но различните решения на хората са любопитни.Условието е не особено стриктно и не конкретизира как трябва да се държат имплементациите за private методи, или пък дали трябва да се връща Proc или ламбда, което означава, че сме дали свобода да го имплементирате както прецените. Харесва ми, че някои хора са се сетили и са ползвали
public_send
, вместоsend
, например.
Трябва да сте влезли в системата, за да може да отговаряте на теми.