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