Здравейте!
Седма задача е публикувана. Имате време до 21 декември, понеделник, в 17:30 ч.
Ако имате въпроси по условието на задачата - пишете тук.
Здравейте!
Седма задача е публикувана. Имате време до 21 декември, понеделник, в 17:30 ч.
Ако имате въпроси по условието на задачата - пишете тук.
Здравейте,
Имам следните въпроси:
Поздрави,
Теодор
scheduled
за съответната бележка, не се гледат дати на родители или деца.Надявам се да съм ти отговорил.
file = LazyMode.create_file('nesting') do
note 'task' do
scheduled '2012-08-07'
# Една подбележка с друга дата
note 'subtask1' do
scheduled '2012-08-06'
end
# Една подбележка със същата дата
note 'subtask2' do
scheduled '2012-08-07'
end
# Една подбележка без дата
note 'subtask3' do
body 'text'
end
end
end
Какво ще съдържа file.daily_agenda(LazyMode::Date.new('2012-08-07')).notes
? Само task
или и част от subtask-овете?
Какво ше съдържа file.daily_agenda(LazyMode::Date.new('2012-08-06')).notes
? Само subtask1
или нищо?
file.daily_agenda(LazyMode::Date.new('2012-08-07')).notes.map(&:header) # => ['task', 'subtask2']
file.daily_agenda(LazyMode::Date.new('2012-08-06')).notes.map(&:header) # => ['subtask1']
Като редът в който се връщат няма значение. Ако бележката няма дата просто не участва във филтрацията. Влагането им няма значение.
Въпреки, че изрично има лирическо отклонение как "времето" е лошо нещо, аз все пак имам въпрос. Ако си създадем Note във файл, който e #scheduled
за 2015-02-23 +1w
и подадем дата в #daily_agendа
, която е 2015-02-30
то ще трябва да ни бъде върнат Note-a, нали?
@Йоан времето, както пише в задачата, няма общо с истинското. Всеки месец има 30 дена. Всяка година има 12 месеца. Накратко - да.
Привет. Имам няколко въпроса:
Струва ми се, че има сбъркан тест или не съм разбрал нещо фундаментално от задачата.
В descirbe '#where'
, филтриране по tag. "task" и "subtask 2" са :important, а имаме expect в резултата да има "subtask". Точно него май не трябва да го има. (ред 108 в sample_spec)
На 112-ти ред пък не се подава дата на @file.weekly_agenda
.
@Бойко, извиняваме се. Грешката е в нас, правилно си разбрал. Тестовете са оправени.
@Веселин, вложената бележка не наследява нищо от родителя си освен #file_name
. Това дали вложената бележка трябва да знае кой е родителя е твое имплементационно решение. Като изискване строго от задачата - не.
Здравейте!
Методът #to_s на Date връща датата във формата на низ, но форматът същият като този за създаването на обекта ли е или е без prefix-овете, ако годината е с по-малко от 4 цифри, или деня или месеца са с по-малко от 2?
Спазва формата с префиксните нули.
daily_agenda.notes.first.date
Това означава ли, че LazyMode::Note има метод #date, който връща датата или е трябвало да се използва метода #scheduled
Всяка бележка от notes трябва да има всички методи на LazyMode::Note и допълнителен метод #date - датата, за която е насрочено събитието. В случая на daily_agenda, това винаги ще е датата, подадена като аргумент на #daily_agend
Нещата които се връщат от agend-ите не са задължително LazyMode::Note
.
daily_agenda ( и другите подобни ) връщат списък от "бележки", за които има метод #date. Той трябва да връща обект дата от класа Date, който отделно да има to_s, правилно ли разбирам?
Още един въпрос : weekly_agenda връща тези tasks, които са през седмицата следващата от подадената дата, включително и нея. Ако една бележка се повтаря - например подадената дата да е : '0666-10-15', а една от бележките да има scheduled '0666-10-12 +d' Това значи че тази бележка ще участва в notes на weekly_agenda. Какво трябва да връща date на тази бележка в weekly_agenda?
Привет! Имам и аз едно въпросче.
Всяка бележка от notes трябва да има всички методи на LazyMode::Note и допълнителен метод #date - датата, за която е насрочено събитието.
Нека например 1 събитие е scheduled за "05-12-2015 +1w". Ние търсим weekly agenda за датата 10-12-2015. В такъв случай нашето събитие ще е част от тази agenda. Въпросът ми е какво трябва да връщат методът #date на събитието - датата, за която е било scheduled (05-12-2015) или датата, на която се среща в нашата agenda (13-12-2015)?
Трябва ли да се съобразяваме с преминаване от един месец в друг при периода? Примерно, '2012-08-29 +4d' да бъде '2012-09-03'? Или няма да се тества с различни месеци?
До колкото разбрах аз, ще може да се преминава в дледващ месец/година, но имаш улеснението, че всеки месец ти е 30 дни. ОФтопик(нот сооу мъч): и аз вече мразя времето :@@@
@Георги,
"daily_agenda ( и другите подобни ) връщат списък от "бележки", за които има метод #date. Той трябва да връща обект дата от класа Date, който отделно да има to_s, правилно ли разбирам?"
Накратко - да, с уточнението, че всички инстанции на класа Date
си имат метод #to_s
по условие, не е само за този случай по изключение.
@Георги и @Станимира,
"Още един въпрос : weekly_agenda връща тези tasks, които са през седмицата следващата от подадената дата, включително и нея. Ако една бележка се повтаря - например подадената дата да е : '0666-10-15', а една от бележките да има scheduled '0666-10-12 +d' Това значи че тази бележка ще участва в notes на weekly_agenda. Какво трябва да връща date на тази бележка в weekly_agenda?"
Това не е валиден формат на повторение: '0666-10-12 +d'
– погледни пак условието.
Ако приемем, че си имал предвид следното:
file = LazyMode.create_file('week') do
note 'task' do
scheduled '0666-10-12 +1w'
end
end
Тогава:
agenda = file.weekly_agenda(LazyMode::Date.new('0666-10-15'))
agenda.first.date.to_s # => "0666-10-19"
Тоест, трябва да връща датата, за която се пада повторението на събитието в дадения период.
Станимира, за протокола, и ти използваш невалиден формат за дата.
@Георги, да, трябва да се съобразявате с преминаване от един месец в друг, като имате предвид улеснението, за което Ивайло споменава.
Добре де, това беше typo. Имам предвид ако е например "+1d" , то тогава очевидно ще се повтори за всеки ден от седмицата. Въпросът ми беше коя от всичките дати ще върне.
@Георги, бележката ще участва няколко пъти във weekly_agenda
, за всеки ден от седмицата.
Благодаря! :D Време е за малко пооправяне на кода.
@Георги, само доуточнение всяка бележка трябва да има различна дата за всеки ден от седмицата.
Spoiler alert
@Георги прав си, но махнах коментара ти, тъй като съдържаше конкретно решение на проблема.
Трябва да сте влезли в системата, за да може да отговаряте на теми.