La forma más común para almacenar los datos de configuración en Ruby es usar YAML:
settings.yml
user1:
path:/
days: 5
user2:
path: /tmp/
days: 3
luego cargarla en su código como este:
require 'yaml'
settings = YAML::load_file "settings.yml"
puts settings.inspect
Usted puede crear el archivo YAML usando to_yaml
:
File.open("settings.yml", "w") do |file|
file.write settings.to_yaml
end
Dicho esto, se puede incluir código Ruby recta también, usando load
:
load "settings.rb"
Sin embargo, no se puede acceder a las variables locales fuera del archivo, por lo que tendría que cambiar su código de utilizar una variable de instancia o una variable global:
settings.rb
SETTINGS = {
'user1' => { 'path' => '/','days' => '5' },
'user2' => { 'path' => '/tmp/','days' => '3' }
}
@settings = { 'foo' => 1, 'bar' => 2 }
A continuación, cargue así:
load "settings.rb"
puts SETTINGS.inspect
puts @settings.inspect
Buena respuesta, pero se está olvidando 'eval' – glebm
@glebm: Sí, y a propósito. Yo uso 'eval' cuando es la única opción disponible, de lo contrario. –
cierto, pero para que el lector conozca a su enemigo, lo mencionaría :) – glebm