ruby - suchen - raspberry pi terminal datei bearbeiten




Relativer Pfad zu Ihrem Projektverzeichnis (2)

Sie können damit das aktuelle Verzeichnis (Verzeichnis der aktuellen Datei) abrufen

File.dirname(__FILE__)

Sie können es dann mit einem relativen Pfad zum Stamm verbinden

File.join(File.dirname(__FILE__), '../../') # add proper number of ..

Oder Sie können expand_path , um den relativen Pfad in einen absoluten zu konvertieren.

ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', File.dirname(__FILE__))

Oder Sie können den relativen Pfad zwischen zwei Verzeichnissen berechnen.

require 'pathname'; 
puts Pathname.new('/').relative_path_from(Pathname.new('/some/child/dir/')).to_s
# => ../../..

In meinem Ruby-Projekt verwende ich ein Durcheinander wie das Verschieben und Bearbeiten von Dateien auf mehreren Remote-Boxen und ich brauche so etwas wie einen relativen Pfad zu meinem Stammprojektverzeichnis. Ich habe viele Verarbeitungsordner, die in vielen Methoden verwendet werden.

Momentan habe ich Wege fest codiert, aber das macht mich unglücklich.


__dir__

Seit Ruby 2 können Sie einfach die Kernel-Funktion verwenden :__dir__ , um den absoluten Verzeichnispfad der aktuellen Datei :__dir__ . Um ein Beispiel zu geben, können Sie zu Beginn Ihres Projekts eine konstante ROOT_DIR in der Datei (config.rb, environment.rb, constants.rb oder wie auch immer Sie es nennen) festlegen.

Siehe Ruby-Dokumentation





ruby