Skip to content

Instantly share code, notes, and snippets.

@flakyfilibuster
Created October 21, 2012 22:17
Show Gist options
  • Save flakyfilibuster/3928712 to your computer and use it in GitHub Desktop.
Save flakyfilibuster/3928712 to your computer and use it in GitHub Desktop.
Todo app
require 'yaml'
class TodoList < Hash
def initialize(file_name)
@file_name = file_name
File.open( @file_name, 'w' ) { |file| YAML.dump( self, file )}
end
def save_yaml
File.open( @file_name, 'w' ) { |file| YAML.dump( self, file )}
end
def read_yaml
# File.open( @file_name, 'r' ) { |file| YAML.load_file( file )}
YAML.load_file(@file_name)
end
def add_todo(item)
self[self.size] = item
save_yaml
end
end
class TodoItem
attr_accessor :name, :priority, :status, :date
def initialize(name, priority, status, date)
@name, @priority, @status, @date = name, priority, status, date
end
end
todo_list = TodoList.new("todolist.yml")
todo_list.add_todo(TodoItem.new("test", "high", "not started", "21.10.2012"))
todo_list.add_todo(TodoItem.new("buy some lunch", "med", "in progress", "20.10.2012"))
todo_list.add_todo(TodoItem.new("do something else", "low", "done", "18.10.2012"))
# todo_list.read_yaml
YAML.load_file("todolist.yml")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment