Question
Comment puis-je obtenir le répertoire où se trouve le fichier rakefile.rb?
Je veux utiliser ceci comme répertoire racine pour tout localiser.
La solution
utilisez __ FILE __
pour obtenir le nom du fichier. Vous pouvez ensuite obtenir le répertoire à partir de cet emplacement:
dans test.rb
puts __FILE__
sortie:
/users/foo/test.rb
__ FILE __
est résolu en chemin complet du fichier dans lequel il se trouve.
Utilisez ceci pour obtenir le nom du répertoire:
File.dirname(__FILE__)
Autres conseils
Vous pouvez l'obtenir en appelant la méthode application.original_dir . Dans la tâche, vous pouvez réaliser un objet application à l'aide de la méthode application sur l'objet tâche.
Pourquoi ne pas simplement utiliser Dir.pwd
?
S'il s'agit d'une application RoR, votre fichier Rakefile.rb doit se trouver dans votre répertoire RAILS_ROOT. Donc, dans n'importe quel script, vous pouvez spécifier l'emplacement du fichier comme
config.load_paths += %W( #{RAILS_ROOT}/extras )
À partir de Ruby 2, vous pouvez utiliser __ dir __
au lieu de File.dirname (__ FILE __)
pour obtenir le répertoire contenant le script actuel.