За методи се броят:
- Методи на инстанциите класа.
- Класови методи.
- attr_accessor, attr_reader и прочее не се броят за методи.
Втора задача
todo_list = TodoList.parse(text) колеги това не трябва ли по скоро да е от вида todo_list = TodoList.new.parse(text) ? :)
Не, parse е класов метод.
От пожълтения коментар трябва да става ясно, но все пак да попитам.
За броя на методи в клас да НЕ се доверяваме на skeptic (той не брои класови методи), а да следваме инструкциите в сайта.
Това така ли е? Съжелявам, ако ставам досаден по темата.
Какво трябва да върне това:
todo_list.filter Criteria.tags([])
Целиятtodo
списък или само тези задачи без тагове?Това което пита @Христо ми е интересно и на мен. В момента за да не правя 9 метода (с parse) правя някакви мета неща, които не ме кефят, за да мога да имам initialize метод.
С parse и initialize методите стават 9 и skeptic (до колкото си спомням) хвърляше грешка. Довечера ще проверя пак :)
П.П Проверих - всъщност skeptic наистина игнорва класовите методи и може да има 8 инстанционни и 1 класови и е ОК.
@Георги При мен, ако използвам начина
self.parse
sceptic не го брои като метод, но ако използвамclass << self end
го брои.@Георги Шопов - exactly :) това май е бъг в skeptic :)
Skeptic брои instance методи и class методи отделно. Има разумни причини за това.
В общи линии, доверявайте се на skeptic. Ако ви каже, че нещо е ОК, няма какво да го мислите.
Разбира се, ако нещо трябва да е instance метод, но вие го сложите като class метод, това ще го приемам като опити да заобикаляте и ще действаме по съответния начин. Обърнете внимание, че дори skeptic да броеше и двата вида методи заедно, пак щяхте да можете да cheat-нете ако поставите "фалшивия" class метод в друг клас.
И да, skeptic има някои пропуски. Ако някой отвори issue, ще го оправя.
Вече е доста късно и едва ли някой ще намаже много, но искам да отбележа, че решението на задачката го има на този сайт :Д Чувствам се хем прецакана, че го виждам сега, хем удовлетворена, че съм я решила по този начин.. но при всички случаи не ми се вижда редно.
@Наталия, за кой сайт говориш?
Из архивите на http://fmi.ruby.bg.
@Наталия, URL or it didn't happen :)
@Наталия, мерси. Това го бях забравил :) Да, тази задача е подобна на миналогодишната, макар и не съвсем 1:1. Кодът е подобен.
Failure/Error: todo_list.tasks.count.should eq text_input.lines.count NoMethodError: undefined method `tasks' for #<TodoList:0xb916b6b0> Failure/Error: todo_list.completed?.should eq false NoMethodError: undefined method `completed?' for #<TodoList:0xb902ea18>
Просто да питам тези грешки какво точно показват. tasks и completed? не съм забелязал да се изискват от условието.
За completed? пише, но за tasks няма и дума. (CTRL+F не лъже)
Този example ще се махне и ще се пуснат наново тестовете.
Peace (:
Здравейте, кога/как мога да видя log-а от изпълнението?
@Никола, отиваш си на решението, скролираш малко надолу и ще го видиш в секция "Лог от изпълнението".
Трябва да сте влезли в системата, за да може да отговаряте на теми.