class MicroManager::CLI::CommandBuilder
Public Instance Methods
build(input)
click to toggle source
# File lib/cli/command_builder.rb, line 8 def build(input) params = parse_input(input) if params[:help] ShowHelp.new(parser) elsif params[:"complete-task"] CompleteTask.new elsif params[:"list-tasks"] || params[:rest].empty? ListTasks.new else task = { description: params[:rest].join(" ") } task.merge!(due: params[:due]) if params[:due] AddTask.new(**task) end end
Private Instance Methods
parse_input(input)
click to toggle source
# File lib/cli/command_builder.rb, line 26 def parse_input(input) params = {} rest = parser.parse(input, into: params) params.merge(rest: rest) end
parser()
click to toggle source
# File lib/cli/command_builder.rb, line 33 def parser OptionParser.new do |opts| opts.accept(RelativeDate) do |date| RelativeDate.parse(date) end opts.on("-d", "--due [DATE]", RelativeDate, "Date to which the task is due, defaults to Date.today. Supports relative dates (e.g. 1-day, 2-weeks, etc)") opts.on("-c", "--complete-task", "Prompts on a task to mark as completed") opts.on("-l", "--list-tasks", "Lists all due tasks and tasks completed today") opts.on("-h", "--help", "Prints this help") end end