Je souhaite lancer une classe ruby à partir d'un fichier sample.rake.Comment puis-je lancer une classe ruby à partir d'un fichier Rake?
Considérons myruby.rb est un fichier ruby.
Je veux le faire exécuter par sample.rake comme ruby myruby.rb
Je souhaite lancer une classe ruby à partir d'un fichier sample.rake.Comment puis-je lancer une classe ruby à partir d'un fichier Rake?
Considérons myruby.rb est un fichier ruby.
Je veux le faire exécuter par sample.rake comme ruby myruby.rb
Vous pouvez utiliser des appels système
par exemple http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-system
Alternativement en supposant que votre raison de le faire de cette façon est que myruby.rb est un script ruby simple qui fonctionne sur l'exécution:
Vous pourriez penser à enfermer le contenu du script dans une méthode, require 'myruby'
dans la tâche rake et en exécutant ladite méthode dans la tâche rake.
myruby.rb est une classe rubis . Il n'y a pas de méthode particulière pour exécuter sample.rake. Dans myruby.rb j'ai commencé ... sauvetage ... bloquer c'est tout. J'ai besoin de courir comme 'ruby myruby.rb'. Cela m'apportera ce que je veux. – Prince
Ajoutant à ce que @tobias a à dire là, vous allez avec un exemple de script
exemple de contenude myruby.rb
puts "hello world"
Créer un fichier appelé Rakefile
task :default => [:test]
task :test do
ruby "my_file.rb"
end
Maintenant, si vous invoquez rake
il doit déposer le texte hello world
dans la console.
Mise à jour
Il serait plus logique si vous enveloppez votre appel dans un appel de fonction comme déjà suggéré @tobias
Ainsi, votre Rakefile
deviendrait quelque chose comme
require './myruby.rb'
task :default => [:test]
task :test do
ruby "my_file.rb"
end
task :test2 do
do_something
end
et myruby.rb
def do_something
puts "do something"
end
Maintenant rake test2
devrait cracher do something
http://ericzouthoughts.wordpress.com/2009/06/20/execute-shell-command-in-ruby-rake-task/ – apneadiving