Задача 1: Въпроси
-
Тук задавайте въпроси по първата задача.
Скоро ще публикуваме подробности за това как се изпращат задачите и на как ще ги тестваме. За тези от вас, на които това им говори нещо – положението е идентично с курса по Python.
Публикувано преди повече от 4 години -
Нещо се скарахме с unit test-а :)
Става въпрос за следната проверка:
@collection.find(:song, :tags => [:jazz, :piano!, :saxophone!]) do |song| assert_equal "Miles Davis", song.artist end
Доколкото разбирам, това трябва да намери всички песни, които имат таг :jazz, нямат таг :piano и нямат таг :saxophone и всички те трябва да са на Miles Davis. Но не отговарят ли на условията и долните?
Autumn Leaves; Bill Evans; Jazz; popular Waltz for Debbie; Bill Evans; Jazz; 'Round Midnight; Thelonious Monk; Jazz, Bebop;
Или не съм разбрал условието както трябва?
Публикувано преди повече от 4 години -
Евънс и Монк са двамата най-брутални джаз пианисти. А ние търсим песни без пиано.
Тъй де, очевидно съм изтървал нещо в теста. Ъпдейт.
Публикувано преди повече от 4 години -
Аз имам въпрос.
Ако имаме имена на каквото и да е, и те се различават само с някакви интервали, това различни имена ли са?
Примерно имаме тези 2 реда:My Favourite Things; John (тук трябва да има много интервали, но като публикувам, не излизат) Coltrane; Jazz, Bebop; popular, cover Greensleves; John Coltrane; Jazz, Bebop; popular, cover
и 2-те ли са John Coltrane или са различни имена?
А също така, ако имаме дупликати — т.е. ако имената на изпълнителите и на песента съвпадат, при find извеждаме и 2-та?Публикувано преди повече от 4 години -
Здравейте,
Поздрави за форума :)И аз имам въпрос, който до някаква степен е свързан с предходния.
В какъв формат ще е стрингът със съдържанието на файла? Ще има ли тези интервали(вертикалната табулация), ние ли трябва да се погрижим да ги махнем? Прегледах unit теста и видях, че там са запазени интервалите както и ‘\n’ в края на всеки запис. Накратко трябва и да се грижим за правилния формат на входа?Поздрави!
Публикувано преди повече от 4 години -
# Намира всички класически песни с по-дълги имена: collection.find :song, :filter => lambda { |song| song.length > 15 }, :tags => :classical
Горе се в lambda-та трябва да пише song.name.length, предполагам? И още няколко бързи въпроса :)
Може ли да има два абсолютно еднавкви реда в стринга, който се дава на конструктура на Collection и ако да как трябва да се третират, да сложим две еднакви песни или само една?
Може ли да има жанрове от тип: Punk-Rock, Sk8_Punk; или пък Punk rock, Rock and Roll; примерно?
Публикувано преди повече от 4 години -
Не се притеснявайте, като тестови данни не може да има нищо повече от това, което сме показали. Няма да има:
- Един артист записан по различни начини
- Стилове, които на са валидни идентификатори
- Дубликати на двойката (песен, артист)
- Никакви вертикални табулации, нормални табулации и прочее странности
Единственото, което има значение и си личи от теста, е че преди и след имената искам да мога да слагам колкото си искам интервали, но това вероятно се досещате. Ако се справяте да изпарсите примера, който съм дал, няма да имате проблеми с този, с който ще тествате.
Иначе, да, song.name.length трябва да пише.
Публикувано преди повече от 4 години -
Здравейте!
Искам да попитам докога точно е крайният срок. Неделя вечерта до 12 или понеделник вечерта до 12? Кое се счита за 27? :)
Поздрави!
Публикувано преди повече от 4 години -
В страницата за изпращане на решение http://fmi.rails-bg.net/tasks/1/solution пише “Краен срок: 13:00, 27 октомври 2008” :-)
Публикувано преди повече от 4 години -
Мерси много, убягнало ми е от погледа :)
Публикувано преди повече от 4 години -
А направих часът 13:00 само за да избегна този въпрос, уви… :)
Публикувано преди повече от 4 години -
Имам един въпрос.
Има ли начин да достъпя метод на даден обект по символ или стринг, съвпадащ с името на метода? Нещо от сорта на:song.getmethod(:name) => "Goldberg Variatons"
Публикувано преди повече от 4 години -
Има начин:
song.send(:name)
И още нещо полезно:
:name == "name".to_sym # В случай, че разполагаш с низ
Публикувано преди повече от 4 години -
Има много начини да се достъпи метод на даден обект по символ или стринг, един от многоto е и комбинация с eval() :)
Публикувано преди повече от 4 години -
Прибягвайте до eval() само ако няма друг вариант, не е добра практика :)
Публикувано преди повече от 4 години -
Текстов
eval
се ползва само в краен случай.eval("song.#{name}")
е грешно отвсякъде.song.send(name)
, къдетоname
може да е както низ, така и символ.Публикувано преди повече от 4 години -
Има ли значение какво ще върнем, ако се извика с блок find?
Публикувано преди повече от 4 години -
Щом не е упоменато, значи вероятно не ни интересува :)
Публикувано преди повече от 4 години -
Факт.
Публикувано преди повече от 4 години
Нов отговор
Трябва да сте вътре за да отговаряте.