В Ruby, как я могу поддерживать длинный список переменных экземпляра из файла? - PullRequest
1 голос
/ 09 июня 2019

Например, я храню много переменных экземпляра в файле YAML. Это позволяет мне изменять состояние программы во время ее работы. Однако мне нужно изменить метод, который читает файл каждый раз, когда я добавляю новую переменную.

, например

config = YAML.open_file 'config.yml'
@var1 = config["var1"]
@var2 = config["var2"]
@var3 = config["var3"]
@var4 = config["var4"]
@var5 = config["var5"]
...

Как я могу сделать это более динамичным и не нужно менять его, когда я добавляю переменные в файл YAML?

1 Ответ

5 голосов
/ 09 июня 2019

Используйте метапрограммирование Ruby!

instance_variable_set Ваш друг здесь:

config = YAML.load_file 'config.yml'
config.each do |key,value|
  instance_variable_set('@'+key, value)
end

Тест:

puts @var1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...