Guest User

Untitled

a guest
Feb 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. require "yaml"
  2.  
  3. class Todo
  4. YAML.mapping(
  5. message: { type: String, nilable: false },
  6. project: { type: String, nilable: true },
  7. created_at: { type: Time, nilable: false, default: Time.now },
  8. updated_at: { type: Time, nilable: false, default: Time.now },
  9. due_to: { type: Time, nilable: true },
  10. done: { type: Bool, nilable: false, default: false }
  11. )
  12.  
  13. def initialize(message : String, project : String?, due_to : Time? = nil)
  14. @message = ""
  15. @created_at = Time.now
  16. @updated_at = Time.now
  17. @done = false
  18. self.message = message
  19. self.project = project
  20. self.due_to = due_to
  21. end
  22.  
  23. def update(message : String, project : String? | Nil?, due_to : Time? | Nil?)
  24. updateTime
  25. @message = message
  26. @project = project
  27. @due_to = due_to
  28. self
  29. end
  30.  
  31. def update(message : String, project : String)
  32. update message: message, project: @project, due_to: @due_to
  33. end
  34.  
  35. def update(message : String, due_to : Time)
  36. update message: message, project: @project, due_to: @due_to
  37. end
  38.  
  39. def update(message : String)
  40. update message: message, project: @project, due_to: @due_to
  41. end
  42.  
  43. def toggleDone
  44. updateTime
  45. @done = !@done
  46. end
  47.  
  48.  
  49. private def updateTime
  50. @updated_at = Time.now
  51. end
  52. end
  53.  
  54. class TodoList
  55. end
  56.  
  57. module TodoApp
  58. class Cli
  59. def start
  60. end
  61. end
  62. end
  63.  
  64. # Testing Todo class
  65. todo = Todo.new message: "Message", project: "Home"
  66. puts todo
  67.  
  68. todo.update message: "Hello"
  69. todo.update message: "Hello2", project: "Work"
  70. todo.update message: "Hello3", project: "Team"
  71. todo.update message: "Hello3", project: "Team", due_to: Time.now
  72. puts todo.due_to
  73. sleep 5.seconds
  74. todo.update message: "Hello3", due_to: Time.now
  75. puts todo.due_to
Add Comment
Please, Sign In to add comment