en INICIO/path_test/tengo:archivo de configuración de carga Rubí (yaml) en el mismo directorio como fuente de
load_test.rb:
require 'yaml'
cnf = YAML::load(File.open('config.yml'))
puts cnf['Hello']
config.yml:
Hello: world!!!
cuando en HOME/path_test/obtengo lo que esperaba:
-bash-3.2$ ruby load_test.rb
world!!!
cuando en INICIO/(cd ..) consigo
-bash-3.2$ ruby path_test/load_test.rb
path_test/load_test.rb:3:in `initialize': No such file or directory - config.yml (Errno::ENOENT)
from path_test/load_test.rb:3:in `open'
from path_test/load_test.rb:3:in `<main>'
¿Cuál es el comportamiento correcto, pero no lo que yo hubiera deseado :)
¿Hay una manera de cargar el archivo .yml en relación con el archivo de origen, y no relativo al actual DIR de trabajo?
Solución (load_Test.rb):
require 'yaml'
fn = File.dirname(File.expand_path(__FILE__)) + '/config.yml'
cnf = YAML::load(File.open(fn))
puts cnf['Hello']
Gracias (un ')' demasiado al final:]) justo lo que necesitaba – FelixHJ
Esta es la solución completa (dividida en 2 líneas para mayor claridad): 'require 'yaml' fn = File.dirname (Archivo .expand_path (__ FILE__)) + '/config.yml' cnf = YAML :: load (File.open (fn)) puts cnf ['Hello'] ' – FelixHJ
Hmm no puedo obtener el formateo para trabajar .... – FelixHJ