Седма задача

  1. Здравейте,

    Имам следните въпроси:

    1. Има ли ограничение в нивата на влагане на бележки?
    2. Вложените бележки могат ли да имат собствени дати?
    3. Ако могат, при групирането на бележки към дадена дата, само root датата ли се ползва или се гледат и датите в дълбочина?

    Поздрави,
    Теодор

    1. Няма ограничение в нивата на влагане на бележките.
    2. Всяка бележка може да има дата.
    3. Дата се определя само от scheduled за съответната бележка, не се гледат дати на родители или деца.

    Надявам се да съм ти отговорил.

  2. 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 или нищо?

  3. 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']
    

    Като редът в който се връщат няма значение. Ако бележката няма дата просто не участва във филтрацията. Влагането им няма значение.

  4. Въпреки, че изрично има лирическо отклонение как "времето" е лошо нещо, аз все пак имам въпрос. Ако си създадем Note във файл, който e #scheduled за 2015-02-23 +1w и подадем дата в #daily_agendа, която е 2015-02-30то ще трябва да ни бъде върнат Note-a, нали?

  5. Привет. Имам няколко въпроса:

    1. Вложената бележка получава всички неща от родителската бележка и презаписва само дефинираните за нея, нали?
    2. Вложената бележка трябва ли да знае коя бележка ѝ е родител?
  6. Струва ми се, че има сбъркан тест или не съм разбрал нещо фундаментално от задачата.

    В descirbe '#where', филтриране по tag. "task" и "subtask 2" са :important, а имаме expect в резултата да има "subtask". Точно него май не трябва да го има. (ред 108 в sample_spec)

    На 112-ти ред пък не се подава дата на @file.weekly_agenda.

  7. @Бойко, извиняваме се. Грешката е в нас, правилно си разбрал. Тестовете са оправени.

    @Веселин, вложената бележка не наследява нищо от родителя си освен #file_name. Това дали вложената бележка трябва да знае кой е родителя е твое имплементационно решение. Като изискване строго от задачата - не.

  8. Здравейте!

    Методът #to_s на Date връща датата във формата на низ, но форматът същият като този за създаването на обекта ли е или е без prefix-овете, ако годината е с по-малко от 4 цифри, или деня или месеца са с по-малко от 2?

  9. Всяка бележка от notes трябва да има всички методи на LazyMode::Note и допълнителен метод #date - датата, за която е насрочено събитието. В случая на daily_agenda, това винаги ще е датата, подадена като аргумент на #daily_agend

    Нещата които се връщат от agend-ите не са задължително LazyMode::Note.

  10. daily_agenda ( и другите подобни ) връщат списък от "бележки", за които има метод #date. Той трябва да връща обект дата от класа Date, който отделно да има to_s, правилно ли разбирам?

    Още един въпрос : weekly_agenda връща тези tasks, които са през седмицата следващата от подадената дата, включително и нея. Ако една бележка се повтаря - например подадената дата да е : '0666-10-15', а една от бележките да има scheduled '0666-10-12 +d' Това значи че тази бележка ще участва в notes на weekly_agenda. Какво трябва да връща date на тази бележка в weekly_agenda?

  11. Привет! Имам и аз едно въпросче.

    Всяка бележка от 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)?

  12. @Георги,

    "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"
    

    Тоест, трябва да връща датата, за която се пада повторението на събитието в дадения период.

    Станимира, за протокола, и ти използваш невалиден формат за дата.

Трябва да сте влезли в системата, за да може да отговаряте на теми.