Question

Je travaille sur le script en ce moment qui doit exécuter chaque script Ruby dans un répertoire et ses sous-dossiers.

par exemple.

run-all.rb
- scripts
  - folder1
    - script1.rb
    - script2.rb
  - folder2
    - script3.rb
    - script4.rb

Comme le serveur est un serveur Windows je normalement utiliser un fichier de commandes, mais la tête dev insiste tout doit être fait en Ruby que certains membres ont des Mac et de Windows ne peuvent pas comprendre des fichiers batch.

La question peut-être donnés, ma connaissance de Ruby est très basique.

Était-ce utile?

La solution

Cela dépend ce que vous entendez par « run ». Pour exécuter tout le code qui est dans chaque script dans le même processus rubis, cela fera l'affaire:

Dir["scripts/**/*.rb"].each{|s| load s }

Mais vous voulez exécuter chaque script dans son propre processus de rubis, essayez ceci:

Dir["scripts/**/*.rb"].each{|s| puts `ruby #{s}` }

Il suffit de mettre l'une ou l'autre de ceux-ci dans le contenu de run-all.rb et la course ruby run-all.rb forment la ligne de commande.

Autres conseils

Quelque chose comme cela devrait probablement travailler:

def process_directory(basedir)
puts basedir
Find.find(basedir.chomp) do |path|
    if FileTest.directory?(path)
        if File.basename(path)[0] == ?.
            Find.prune       # Don't look any further into this directory.
        else
            next
        end
    else
        puts path
    end
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top