2014-06-27 1 views
0

Je n'ai aucune expérience avec Ruby ou rake ou quoi que ce soit, mais j'utilise slate pour la documentation API, et il utilise Ruby et rake et d'autres choses pour construire le fichier. Je ne sais rien du tout de ces choses, mais ce que je sais est ceci: quand je fais un rake build il met à jour un dossier (slate/build). Je dois ensuite copier manuellement slate/build à ../app/docs après chaque rake build. Est-ce qu'il y a quelque chose que je peux faire qui va copier ce dossier sur chaque rake build automatiquement pour moi?Pouvez-vous créer un dossier avec rake build?

Répondre

3

Ajouter à votre Rakefile:

ROOT = File.expand_path('..', __FILE__) 

task :build_and_move => [:build] do 
    cp_r(File.join(ROOT, 'slate/build'), File.join(ROOT, '../app/docs')) 
    # or 
    # mv(File.join(ROOT, 'slate/build'), File.join(ROOT, '../app/docs')) 
end 

puis exécutez rake build_and_move.

+0

Rake comprend déjà 'FileUtils' (il fait [enveloppe toutes les commandes] (https://github.com/jimweirich/rake/blob/v10.3.2/lib/rake/file_utils_ext.rb# L21-L40), mais ils sont tous là) donc vous n'avez pas besoin de 'require' et pouvez simplement appeler par exemple 'cp_r' directement. – matt

+0

@matt, cool, merci pour l'info! Je n'étais pas au courant de ça. J'ai mis à jour ma réponse. –

0

Vous pouvez utiliser FileUtils pour cela.

Documents: http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-copy

exemple à partir des documents:

Copies src à dest. Si src est un répertoire, cette méthode copie tous ses contenus de manière récursive. Si dest est un répertoire, copie src vers dest/src.

FileUtils.cp 'eval.c', 'eval.c.org' 
FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6' 
FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', :verbose => true 
FileUtils.cp 'symlink', 'dest' # copy content, "dest" is not a symlink