class Pfm::CommandsMap

def builtin(name, constant_name, require_path: NULL_ARG, desc: "")

def builtin(name, constant_name, require_path: NULL_ARG, desc: "")
  if null?(require_path)
    snake_case_path = name.tr("-", "_")
    require_path = "iapi-idlc-sdk-pfm/command/#{snake_case_path}"
  end
  command_specs[name] = CommandSpec.new(name, constant_name, require_path, desc)
end

def command_names

def command_names
  command_specs.keys
end

def have_command?(name)

def have_command?(name)
  command_specs.key?(name)
end

def initialize

def initialize
  @command_specs = {}
end

def instantiate(name)

def instantiate(name)
  spec_for(name).instantiate
end

def null?(argument)

def null?(argument)
  argument.equal?(NULL_ARG)
end

def spec_for(name)

def spec_for(name)
  command_specs[name]
end