Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "yaml"
- class Todo
- YAML.mapping(
- message: { type: String, nilable: false },
- project: { type: String, nilable: true },
- created_at: { type: Time, nilable: false, default: Time.now },
- updated_at: { type: Time, nilable: false, default: Time.now },
- due_to: { type: Time, nilable: true },
- done: { type: Bool, nilable: false, default: false }
- )
- def initialize(message : String, project : String?, due_to : Time? = nil)
- @message = ""
- @created_at = Time.now
- @updated_at = Time.now
- @done = false
- self.message = message
- self.project = project
- self.due_to = due_to
- end
- def update(message : String, project : String? | Nil?, due_to : Time? | Nil?)
- updateTime
- @message = message
- @project = project
- @due_to = due_to
- self
- end
- def update(message : String, project : String)
- update message: message, project: @project, due_to: @due_to
- end
- def update(message : String, due_to : Time)
- update message: message, project: @project, due_to: @due_to
- end
- def update(message : String)
- update message: message, project: @project, due_to: @due_to
- end
- def toggleDone
- updateTime
- @done = !@done
- end
- private def updateTime
- @updated_at = Time.now
- end
- end
- class TodoList
- end
- module TodoApp
- class Cli
- def start
- end
- end
- end
- # Testing Todo class
- todo = Todo.new message: "Message", project: "Home"
- puts todo
- todo.update message: "Hello"
- todo.update message: "Hello2", project: "Work"
- todo.update message: "Hello3", project: "Team"
- todo.update message: "Hello3", project: "Team", due_to: Time.now
- puts todo.due_to
- sleep 5.seconds
- todo.update message: "Hello3", due_to: Time.now
- puts todo.due_to
Add Comment
Please, Sign In to add comment