class Tudu::Core

Tudu::Core

Public Instance Methods

add(*task_names) click to toggle source
== add task to todo
=== Params
  • task_names : add task name list

# File lib/tudu_core.rb, line 25
def add(*task_names)
  Tasks.add(*task_names)
end
choose(task_name) click to toggle source
== choose todo => doing task
=== Params
  • task_name : target task name

# File lib/tudu_core.rb, line 39
def choose(task_name)
  Tasks.choose task_name
end
doings(search_word) click to toggle source
== search doings
=== Params
  • search_word : search word. enable regexp.

# File lib/tudu_core.rb, line 73
def doings(search_word)
  doings_task(search_word).map(&:name)
end
Also aliased as: now
done() click to toggle source
== doing to done
  • if doings size == 0, nothing todo.

  • after move doing to done, next todo move to doing.

# File lib/tudu_core.rb, line 46
def done
  Tasks.done
end
dones(search_word) click to toggle source
== search dones
=== Params
  • search_word : search word. enable regexp.

# File lib/tudu_core.rb, line 80
def dones(search_word)
  dones_task(search_word).map(&:name)
end
init() click to toggle source

generate files [Tudufile, todos, doings, dones]

# File lib/tudu_core.rb, line 13
def init
  Dir.mkdir TuduPaths::TUDU_DIR unless File.exist? TuduPaths::TUDU_DIR
  TuduFileKeys::TUDU_KEYS.each do |key|
    File.open("./tudu/#{TuduPaths::INIT_FILES[key]}", 'w:UTF-8') do |f|
      f.print Tudu::Templates::INIT_FILES_TEMPLATE[key]
    end
  end
end
now(search_word)
Alias for: doings
progress() click to toggle source

display tasks progress

Returns

return progress

# File lib/tudu_core.rb, line 87
def progress
  Tasks.progress
end
remove(*task_names) click to toggle source
== remove task to todo
=== Params
  • task_names : remove task name list

# File lib/tudu_core.rb, line 32
def remove(*task_names)
  Tasks.remove(*task_names)
end
tasks(search_word, options) click to toggle source
== search tasks
=== Params
  • search_word : search word. enable regexp.

  • options : options.

# File lib/tudu_core.rb, line 54
def tasks(search_word, options)
  todo_s = todos search_word
  doing_s = doings search_word
  done_s = dones search_word
  todo_s, doing_s, done_s = coloring(options, todo_s, doing_s, done_s)
  categorise(options, todo_s, doing_s, done_s)
  todo_s + doing_s + done_s
end
todos(search_word) click to toggle source
== search todos
=== Params
  • search_word : search word. enable regexp.

# File lib/tudu_core.rb, line 66
def todos(search_word)
  todos_task(search_word).map(&:name)
end

Private Instance Methods

categorise(options, todo_list, doing_list, done_list) click to toggle source
# File lib/tudu_core.rb, line 104
def categorise(options, todo_list, doing_list, done_list)
  return unless categorised?(options)
  todo_list.insert(0, '========TODOS========')
  doing_list.insert(0, '========DOINGS========')
  done_list.insert(0, '========DONES========')
end
categorised?(options) click to toggle source
# File lib/tudu_core.rb, line 115
def categorised?(options)
  options && options[:category]
end
colored?(options) click to toggle source
# File lib/tudu_core.rb, line 111
def colored?(options)
  options && options[:color]
end
coloring(options, todo_list, doing_list, done_list) click to toggle source
# File lib/tudu_core.rb, line 95
def coloring(options, todo_list, doing_list, done_list)
  return todo_list, doing_list, done_list unless colored?(options)
  h = HighLine.new
  colored_todo_list = todo_list.map { |todo|h.color(todo, :red) }
  colored_doing_list = doing_list.map { |doing|h.color(doing, :yellow) }
  colored_done_list = done_list.map { |done|h.color(done, :cyan) }
  [colored_todo_list, colored_doing_list, colored_done_list]
end
doings_task(search_word) click to toggle source
# File lib/tudu_core.rb, line 123
def doings_task(search_word)
  Tasks.filter_tasks(Tasks.doings, search_word)
end
dones_task(search_word) click to toggle source
# File lib/tudu_core.rb, line 127
def dones_task(search_word)
  Tasks.filter_tasks(Tasks.dones, search_word)
end
todos_task(search_word) click to toggle source
# File lib/tudu_core.rb, line 119
def todos_task(search_word)
  Tasks.filter_tasks(Tasks.todos, search_word)
end