From 0d4d1e14f7e13f96bac650ff38290d8a774fae7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20K=C3=A4chele?= Date: Wed, 25 Feb 2015 15:18:30 +0100 Subject: [PATCH] added #is_today and #tasks_today --- lib/working_class/task.rb | 9 +++++++++ lib/working_class/tasklist.rb | 9 +++++++++ lib/working_class/version.rb | 2 +- test/task_test.rb | 22 +++++++++++++++++++++- test/tasklist_test.rb | 12 ++++++++++++ 5 files changed, 52 insertions(+), 2 deletions(-) diff --git a/lib/working_class/task.rb b/lib/working_class/task.rb index 3d7392e..bb923bb 100644 --- a/lib/working_class/task.rb +++ b/lib/working_class/task.rb @@ -77,6 +77,15 @@ module WorkingClass alias :is_tomorrow? :is_tomorrow alias :tomorrow? :is_tomorrow + # Returns true if the Task is due today. + # A finished task or a Task without a date is never today. + # + # @return [Boolean] true if the task is due today + def is_today + !@is_finished and @date == Date.today + end + alias :is_today? :is_today + alias :today? :is_today end end diff --git a/lib/working_class/tasklist.rb b/lib/working_class/tasklist.rb index ead2ae5..f9de5d6 100644 --- a/lib/working_class/tasklist.rb +++ b/lib/working_class/tasklist.rb @@ -29,6 +29,14 @@ module WorkingClass @tasks.select { |task| task.is_upcoming } end + # Returns all the tasks that are due today + # + # @return [Array] an Array with the tasks due today + # + def tasks_today + @tasks.select { |task| task.is_today } + end + # Returns all the tasks that are due tomorrow # # @return [Array] an Array with the tasks due tomorrow @@ -53,5 +61,6 @@ module WorkingClass @tasks.select { |task| !task.is_finished } end + end end diff --git a/lib/working_class/version.rb b/lib/working_class/version.rb index 6c5fc9f..b677e49 100644 --- a/lib/working_class/version.rb +++ b/lib/working_class/version.rb @@ -1,5 +1,5 @@ module WorkingClass # The version of the gem. # We use semantic versioning - VERSION = "0.1.1" + VERSION = "0.2.1" end diff --git a/test/task_test.rb b/test/task_test.rb index af3b6d4..662a918 100644 --- a/test/task_test.rb +++ b/test/task_test.rb @@ -61,6 +61,24 @@ class TaskTest < Minitest::Test assert(task.is_upcoming) end + def test_is_today + task = Task.new "Be a WUUH Girl", :date => Date.today + + assert(task.is_today) + end + + def test_is_today_without_a_date + task = Task.new "Never be a WUUH Girl" + + assert(!task.is_today) + end + + def test_is_today_with_future_date + task = Task.new "Never be a WUUH Girl again", :date => Date.today + 1 + + assert(!task.is_today) + end + def test_is_tomorrow task = Task.new "Eat chips", :date => Date.today + 1 @@ -92,7 +110,6 @@ class TaskTest < Minitest::Test end def test_alias_methods - task = Task.new "my awesome task" assert_respond_to(task, :is_finished?) @@ -103,6 +120,9 @@ class TaskTest < Minitest::Test assert_respond_to(task, :is_upcoming?) assert_respond_to(task, :upcoming?) + + assert_respond_to(task, :is_today?) + assert_respond_to(task, :today?) end end diff --git a/test/tasklist_test.rb b/test/tasklist_test.rb index 5a39326..8a9ab14 100644 --- a/test/tasklist_test.rb +++ b/test/tasklist_test.rb @@ -65,5 +65,17 @@ class TasklistTest < Minitest::Test assert_equal(expected, tasklist.unfinished_tasks) end + def test_tasks_today + task_1 = Task.new("Task 1", :is_finished => true) + task_2 = Task.new("Task 2", :date => Date.today) + task_3 = Task.new("Task 3", :date => Date.today + 1) + task_4 = Task.new("Task 4", :is_finished => true) + tasks = [task_1, task_2, task_3, task_4] + + tasklist = Tasklist.new("example_task_list", tasks) + expected = [task_2] + + assert_equal(expected, tasklist.tasks_today) + end end