Ich würde dringend empfehlen, die Konfiguration zu so etwas wie YAML zu übertragen. Es ist leicht verständlich, flexibel, universell implementiert, gut dokumentiert, sowohl als standard als auch als part of the core library, und leicht zu verstehen. (Ja, ich sagte es zweimal absichtlich.)
Meine YAML-Dateien laden in Rubin als Hash, wenn ich so etwas wie:
require 'yaml'
config = YAML.load_file('/path/to/config/file')
ich in Ruby die ursprüngliche Vorlage für die Konfigurationsdatei erstellen werden, als Hash, serialisiert es dann und schreiben es auf die Festplatte. Auf diese Weise weiß ich, was auf der Platte ist genau die Art, wie YAML es will und hilft mir zu vermeiden, dass "es wird nicht geladen, weil entweder die Daten falsch oder der Code ist falsch" Zwickmühle.
# A simple round-trip (load and dump) of an object.
require 'yaml'
test_obj = {
'foo' => 'bar',
'one_two_three' => [1, 2, 3],
'hash' => {'another' => 'hash'}
} #=> {"foo"=>"bar", "one_two_three"=>[1, 2, 3], "hash"=>{"another"=>"hash"}}
File.open('./config.yaml', 'w') { |fo| fo.puts YAML::dump(test_obj) } #=> nil
ruby_obj = YAML::load_file('./config.yaml') #=> {"foo"=>"bar", "one_two_three"=>[1, 2, 3], "hash"=>{"another"=>"hash"}}
ruby_obj == test_obj #=> true
require 'pp'
pp ruby_obj
{"foo"=>"bar", "one_two_three"=>[1, 2, 3], "hash"=>{"another"=>"hash"}}
pp test_obj
{"foo"=>"bar", "one_two_three"=>[1, 2, 3], "hash"=>{"another"=>"hash"}}
'@var [Schlüssel] [val]' wäre weder eine gültige Hash-Zuweisung, noch wäre es eine gültige Methode, um auf einen Wert zuzugreifen, der Ihre Daten enthält. '@var [key] = val 'würde zuweisen. '@var [key]' würde auf den Wert zugreifen. –