Class: TodoTxt::List
- Inherits:
-
Array
- Object
- Array
- TodoTxt::List
- Defined in:
- lib/todo_txt_rb/list.rb
Instance Method Summary collapse
- #add_todo(new_todo) ⇒ Object
- #complete_todo(todo_num) ⇒ Object
- #edit_todo(todo_num, new_todo) ⇒ Object
- #get_contexts(context) ⇒ Object
- #get_projects(project) ⇒ Object
- #get_todo_index(todo_text) ⇒ Object
-
#initialize(file) ⇒ List
constructor
A new instance of List.
- #list ⇒ Object
- #list_active ⇒ Object
- #list_contexts ⇒ Object
- #list_projects ⇒ Object
- #order_by_priority ⇒ Object
- #remove_todo(todo_num) ⇒ Object
- #write_file ⇒ Object
Constructor Details
Instance Method Details
#add_todo(new_todo) ⇒ Object
23 24 25 |
# File 'lib/todo_txt_rb/list.rb', line 23 def add_todo new_todo File.open(@todo_list, "a"){|f| f.puts new_todo } end |
#complete_todo(todo_num) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/todo_txt_rb/list.rb', line 53 def complete_todo todo_num @list[todo_num - 1].mark_complete! @list << @list[todo_num - 1] @list.delete_at(todo_num - 1) self.write_file end |
#edit_todo(todo_num, new_todo) ⇒ Object
32 33 34 35 |
# File 'lib/todo_txt_rb/list.rb', line 32 def edit_todo todo_num, new_todo @list[todo_num - 1] = TodoTxt::Todo.new(new_todo + "\n") self.write_file end |
#get_contexts(context) ⇒ Object
49 50 51 |
# File 'lib/todo_txt_rb/list.rb', line 49 def get_contexts context self.list_active.select{|x| x.todo.include?(context)}.map{|x| x.todo} end |
#get_projects(project) ⇒ Object
45 46 47 |
# File 'lib/todo_txt_rb/list.rb', line 45 def get_projects project self.list_active.select{|x| x.todo.include?(project)}.map{|x| x.todo} end |
#get_todo_index(todo_text) ⇒ Object
60 61 62 |
# File 'lib/todo_txt_rb/list.rb', line 60 def get_todo_index todo_text @list.index{|x| x.todo.chomp.eql?(todo_text.chomp)} end |
#list ⇒ Object
15 16 17 |
# File 'lib/todo_txt_rb/list.rb', line 15 def list @list.collect{|x| x.todo} end |
#list_active ⇒ Object
19 20 21 |
# File 'lib/todo_txt_rb/list.rb', line 19 def list_active @list.select{|x| x.is_active?} end |
#list_contexts ⇒ Object
41 42 43 |
# File 'lib/todo_txt_rb/list.rb', line 41 def list_contexts @list.collect{|x| x.contexts}.flatten.uniq{|x| x.capitalize} end |
#list_projects ⇒ Object
37 38 39 |
# File 'lib/todo_txt_rb/list.rb', line 37 def list_projects @list.collect{|x| x.projects}.flatten.uniq{|x| x.downcase} end |
#order_by_priority ⇒ Object
64 65 66 |
# File 'lib/todo_txt_rb/list.rb', line 64 def order_by_priority @list.sort{|x,y| x.priority.to_s <=> y.priority.to_s} end |
#remove_todo(todo_num) ⇒ Object
27 28 29 30 |
# File 'lib/todo_txt_rb/list.rb', line 27 def remove_todo todo_num @list.delete_at(todo_num - 1) self.write_file end |
#write_file ⇒ Object
9 10 11 12 13 |
# File 'lib/todo_txt_rb/list.rb', line 9 def write_file File.open(@todo_list, 'w') do |f| @list.each{|x| f.puts x.todo.to_s} end end |