Method: Command::CommandSet#build_command

Defined in:
lib/command-set/command-set.rb

#build_command(home, name_or_class, name_or_nil, block) ⇒ Object



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
# File 'lib/command-set/command-set.rb', line 316

def build_command(home, name_or_class, name_or_nil, block)
  if Class === name_or_class && Command > name_or_class
    if block.nil?
      command = name_or_class.dup
      name = command.name
    else
      name = name_or_nil.to_s
      command = name_or_class.setup(self, name, &block)
    end
  else
    if String === name_or_class or Symbol === name_or_class
      name = name_or_class.to_s
    else
      raise RuntimeError, "#{name_or_class} is neither a Command class nor a name!"
    end
    command = Command.setup(name, &block)
  end

  home[name] = command
end