class KBSecret::CLI::Command::Todo
The implementation of `kbsecret todo`.
Constants
- SUBCOMMANDS
The list of subcommands supported by `kbsecret todo`.
Public Class Methods
new(argv)
click to toggle source
Calls superclass method
KBSecret::CLI::Command::Abstract::new
# File lib/kbsecret/cli/command/todo.rb, line 11 def initialize(argv) super(argv) do |cli| cli.slop cmds: SUBCOMMANDS do |o| o.banner = <<~HELP Usage: kbsecret todo <start|suspend|complete> <record> HELP o.string "-s", "--session", "the session to search in", default: :default end cli.dreck do string :command string :label end cli.ensure_session! end end
Public Instance Methods
complete_todo()
click to toggle source
Completes the todo associated with the current invocation, unless already completed. @return [void] @api private
# File lib/kbsecret/cli/command/todo.rb, line 73 def complete_todo cli.die "That task is already completed!" if @todo.completed? @todo.complete! puts "#{@todo.label}: '#{@todo.todo}' marked as completed at #{@todo.stop}" end
run!()
click to toggle source
# File lib/kbsecret/cli/command/todo.rb, line 44 def run! case @subcmd when "start" then start_todo when "suspend" then suspend_todo when "complete" then complete_todo end end
setup!()
click to toggle source
# File lib/kbsecret/cli/command/todo.rb, line 32 def setup! @todo = cli.session[cli.args[:label]] @subcmd = cli.args[:command] end
start_todo()
click to toggle source
Starts the todo associated with the current invocation, unless already started. @return [void] @api private
# File lib/kbsecret/cli/command/todo.rb, line 55 def start_todo cli.die "That task is already started!" if @todo.started? @todo.start! puts "#{@todo.label}: '#{@todo.todo}' marked as started at #{@todo.start}" end
suspend_todo()
click to toggle source
Suspends the todo associated with the current invocation, unless already suspended. @return [void] @api private
# File lib/kbsecret/cli/command/todo.rb, line 64 def suspend_todo cli.die "That task is already suspended!" if @todo.suspended? @todo.suspend! puts "#{@todo.label}: '#{@todo.todo}' marked as suspended at #{@todo.stop}" end
validate!()
click to toggle source
@see Command::Abstract#validate!
# File lib/kbsecret/cli/command/todo.rb, line 38 def validate! cli.die "No such todo record: #{@todo}." unless @todo && @todo.type == :todo cli.die "Unknown subcommand: #{@subcmd}." unless SUBCOMMANDS.include?(@subcmd) end