2010-10-19 2 views
0

J'ai un projet Ruby démarré avec NetBeans, donc le fichier Rake a été généré. Y a-t-il une manière que je puisse exécuter le projet au-dessus de la ligne de commande?Est-il possible d'exécuter un projet Ruby via Rake?

Cela fonctionne très bien lorsque j'utilise F6 via NetBeans, tout comme ma suite de tests automatisés avec Alt + F6. Je cherche essentiellement quelque chose comme ...

$ rake run

Est-ce que cela existe?

Répondre

3

Le but de la programmation ruby ​​est (généralement) soit d'écrire une application web, soit d'écrire un programme qui peut être exécuté à partir de la ligne de commande.

Pour une application Web une option rake run pourrait être utile, mais vraiment le web cadre de applicaition le plus commun est Rails, et pour les rails, il vous suffit de lancer un serveur web dédié exécutant votre application Web avec script/server.

Pour un programme de ligne de commande, il suffit d'exécuter le fichier selon Ruby, vous avez l'intention que le fichier principal (celui avec le code qui fonctionne au démarrage). Ruby n'a aucune des difficultés de Java (par exemple, avoir un fichier JAR avec l'attribut Main-class correct, et obtenir le bon chemin de classe, etc ...). Vous n'avez donc pas vraiment besoin d'une cible rake run, car il n'y a pas de complexité qui doit être cachée dans le rakefile.

+0

L'idée a du sens, car c'est un programme en ligne de commande. Mais quand je cours ruby ​​

.rb, il soulève une erreur parce qu'il ne peut pas résoudre le bon chemin pour une classe qu'il doit utiliser. Pourquoi la ligne de commande a-t-elle un problème et NetBeans ne le fait pas? – Mike

+0

@Mike - Utilisez-vous Ruby 1.9.2? Si c'est le cas, alors votre problème pourrait être parce qu'il n'inclut pas le répertoire courant dans le chemin que ruby ​​utilise pour trouver des scripts ruby. Vous pouvez corriger cela en ajoutant votre projet à la variable d'environnement RUBYLIB. – Jeremy

+0

Netbeans ajoute probablement le chemin du projet à '$:' pour que 'require' puisse être résolu par rapport à lui. Cela peut généralement être corrigé en mettant $: << File.dirname (__ FILE __) 'dans le fichier que vous prévoyez d'exécuter. Vous pouvez également utiliser la gemme Facets ou la gemme Extensions, et vous obtiendrez 'require_relative' qui peut également résoudre ce problème. ('require_relative' est intégré dans Ruby 1.9.2) –

2

Bien que Ken a raison, vous pouvez certainement effectuer une tâche de rake pour exécuter votre programme. Dans lib/tâches/project.rake:

namespace :project do 
    task :run do 
     call_your_code() 
    end 
end 

puis rake project:run fera ce que vous voulez.