module Tr3llo::Command::Label

Public Instance Methods

execute(subcommand, args) click to toggle source
# File lib/3llo/command/label.rb, line 8
def execute(subcommand, args)
  case subcommand
  when "list"
    board = Application.fetch_board!()

    Command::Label::List.execute(board[:id])
  when "add"
    board = Application.fetch_board!()

    Command::Label::Add.execute(board[:id])
  when "edit"
    label_key, = args
    Utils.assert_string!(label_key, "label key is missing")

    Command::Label::Edit.execute(label_key)
  when "remove"
    label_key, = args
    Utils.assert_string!(label_key, "label key is missing")

    Command::Label::Remove.execute(label_key)
  else
    handle_invalid_subcommand(subcommand, args)
  end
rescue InvalidArgumentError, InvalidCommandError, BoardNotSelectedError => exception
  Command::Label::Invalid.execute(exception.message)
end

Private Instance Methods

handle_invalid_subcommand(subcommand, _args) click to toggle source
# File lib/3llo/command/label.rb, line 37
def handle_invalid_subcommand(subcommand, _args)
  case subcommand
  when String
    raise InvalidCommandError.new("#{subcommand.inspect} is not a valid command")
  when NilClass
    raise InvalidCommandError.new("command is missing")
  end
end