Pregunta

Creo que me estoy volviendo loco. ¿Alguien puede ayudar?

Tengo la carpeta c: \ project \ bin Ejecuto lo siguiente para ejecutar mi script de rastrillo

cd C:\project
rake

En mi script de rastrillo tengo:

require 'rake/clean'
CLOBBER.include('bin')

task :default => [:compile]

task :compile do
    # do nothing
end

No elimina el " bin " carpeta ni el contenido del " bin " carpeta. Estoy ejecutando Ruby en Windows (1.86 más o menos) e instalé rake usando, gem install rake.

¿Me he perdido algo? He intentado - rastrear, etc., pero no recibo comentarios.

¿Fue útil?

Solución

TL; DR: $ rake clobber


Como dice la respuesta anterior, no se invocan implicilmente. Aquí hay un ejemplo, como lo solicitó.

~/deleteme$ cd project
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile


~/deleteme/project$ cat Rakefile
require 'rake/clean'
CLOBBER.include('bin')

task :default => ["compile"]

task :compile do
  mkdir 'bin'
end


~/deleteme/project$ rake
(in /Users/josh/deleteme/project)
mkdir bin


~/deleteme/project$ ls -l
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile
drwxr-xr-x  2 josh  staff   68 Jun 27 06:05 bin


~/deleteme/project$ rake -T
(in /Users/josh/deleteme/project)
rake clean    # Remove any temporary products.
rake clobber  # Remove any generated file.


~/deleteme/project$ rake clobber
(in /Users/josh/deleteme/project)
rm -r bin


~/deleteme/project$ ls -l
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile

Otros consejos

CLEAN ni CLOBBER no son tareas implícitas: debe declarar dependencia o invocarlas

Para una manera más fácil de hacerlo, intente

task :default => [:compile, :clobber]

en lugar de

task :default => ["compile"]

Y luego, en su línea de comandos, puede ejecutar

rake

Recuerde, en Ruby se prefiere usar símbolos en lugar de literales de cadena

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top