Report abuse

def self.def_extend_command(cmd_name, load_file, *aliases)
  Context.module_eval %[
    def #{cmd_name}(*opts, &b)
      Context.module_eval {remove_method(:#{cmd_name})}
      require "#{load_file}"
      send :#{cmd_name}, *opts, &b
    end

    for ali in aliases
      alias_method ali, cmd_name
    end
  ]
end