Pour ajouter un répertoire $LOAD_PATH (Ruby)

J'ai vu deux techniques couramment utilisées pour ajouter le répertoire du fichier actuellement en cours d'exécution à l' $LOAD_PATH (ou $:). Je vois les avantages de le faire dans le cas où vous ne travaillez pas avec un bijou. L'un semble plus détaillé que les autres, évidemment, mais est-il une raison pour aller avec l'un plutôt que l'autre?

La première, en clair méthode (peut-être exagéré):

$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))

et la plus simple, rapide et sale:

$:.unshift File.dirname(__FILE__)

Aucune raison d'aller avec l'un plutôt que l'autre?

  • Un un peu moins verbeux version de la verbose est: File.expand_path(File.dirname(__FILE__)).tap {|pwd| $LOAD_PATH.unshift(pwd) unless $LOAD_PATH.include?(pwd)}
  • comment au sujet de la "si" clause? Comment les deux ci-dessus équivalent?
  • Comme quelqu'un qui est venu ici pour essayer de comprendre comment l'utiliser, c'est super cryptique. Je ne vois pas où le nom du répertoire est à venir à partir d'exemples. Je vous serais reconnaissant si quelqu'un pouvait le faire comprendre.
  • À l'aide de __dir__ (comme de Ruby 2.0) peut faire l'un de ces plus concis.
InformationsquelleAutor Mark W | 2009-05-07