2013-08-13 4 views

Répondre

1

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.

+0

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

5

Ajoutant à ce que @tobias a à dire là, vous allez avec un exemple de script

exemple de contenu

de 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

Questions connexes