module Medo::CLISupport

Public Instance Methods

choose_task(select_options = {}) click to toggle source
# File lib/medo/cli_support.rb, line 33
def choose_task(select_options = {})
  task_number = Integer(options[:number] || 1) rescue
    raise(ArgumentError, "Invalid task #: #{task_number}")
  task = tasks.reject { |t| select_options[:done] ^ t.done? }.sort[task_number - 1] or
    raise(RuntimeError, "No such task!")
  [task, task_number]
end
colorize() { || ... } click to toggle source
# File lib/medo/cli_support.rb, line 29
def colorize
  yield unless global_options[:"no-color"] == false
end
committing_tasks() { || ... } click to toggle source
# File lib/medo/cli_support.rb, line 20
def committing_tasks
  yield

  if tasks_changed?
    storage.write(tasks)
    storage.commit
  end
end
edit_input(value) click to toggle source
# File lib/medo/cli_support.rb, line 45
def edit_input(value)
  process_input do |path|
    File.open(path, "w") { |f| f.write(value) }
  end
end
get_input() click to toggle source
# File lib/medo/cli_support.rb, line 41
def get_input
  process_input
end
load_commands() click to toggle source
# File lib/medo/cli_support.rb, line 3
def load_commands
  Dir.glob(File.expand_path('../commands/*', __FILE__)).each do |f|
    contents = File.read(f)
    class_eval contents, f, 1
  end
end
process_input() { |path| ... } click to toggle source
# File lib/medo/cli_support.rb, line 51
def process_input
  result = nil
  if options[:editor]
    path = File.join(Dir::Tmpname.tmpdir, "taketo-input-#{Time.now.to_i}")
    yield path if block_given?
    status = system("$EDITOR #{path}")
    if status && File.exists?(path)
      result = File.read(path)
      FileUtils.rm(path)
    end
  else
    result = arguments.join(" ").strip
  end
  result.to_s
end
tasks() click to toggle source
# File lib/medo/cli_support.rb, line 10
def tasks
  @tasks ||= storage.read
  @original_tasks ||= @tasks.map(&:dup)
  @tasks
end
tasks_changed?() click to toggle source
# File lib/medo/cli_support.rb, line 16
def tasks_changed?
  defined? @tasks and @tasks != @original_tasks
end