Я унаследовал инструмент, который работает правильно, но когда я пытаюсь его расширить, он просто терпит неудачу. Так как я новичок в рубин и YAML я действительно не знаю, что является причиной, почему это не удается ...YAML Ruby Загрузить несколько переменных окружения
Так у меня есть класс конфигурации, который выглядит следующим
class Configuration
def self.[] key
@@config[key]
end
def self.load name
@@config = nil
io = File.open(File.dirname(__FILE__) + "/../../../config/config.yml")
YAML::load_documents(io) { |doc| @@config = doc[name] }
raise "Could not locate a configuration named \"#{name}\"" unless @@config
end
def self.[]=key, value
@@config[key] = value
end
end
end
raise "Please set the A environment variable" unless ENV['A']
Helpers::Configuration.load(ENV['A'])
raise "Please set the D environment variable" unless ENV['D']
Helpers::Configuration.load(ENV['D'])
raise "Please set the P environment variable" unless ENV['P']
Helpers::Configuration.load(ENV['P'])
Так что я был первый вариант с переменная окружения A, которая работала нормально, тогда, когда я хочу интегрировать еще 2 переменные среды, они терпят неудачу (это разные наборы ключей/значений). Я отлаживал его, и, похоже, когда он читает второй ключ/значение, он удаляет другие (например, чтение третьего удаляет предыдущие 2, поэтому я заканчиваю с @@ config только с третьим ключом/значением par вместо все значения, которые мне нужны).
Возможно, это легко исправить, любая идея как?
Спасибо!
EDIT: Использование файла конфигурации выглядеть следующим образом:
Test:
position_x: “56”
position_y: “56”
Теперь я хочу, чтобы это сделать, как
“x56”:
position_x: “56”
“x15”:
position_x: “15”
“y56”:
position_y: “56”
“y15”:
position_y: “15”
Моя идея заключается в том, что я поставил их отдельно, и мне не нужно для создания всех комбинаций ...
Не могли бы вы поделиться файлом 'config.yml'? На первый взгляд, похоже, что вы должны «@@ config = YAML :: load» вместо того, что вы там делаете. – mudasobwa
Конечно, я хотел сделать это, забыл включить его.Его используют, чтобы быть Simples как это: Тест: position_x: «56» position_y: «56» Теперь я хочу, чтобы это сделать, как «X56»: position_x: «56» «x15 «: position_x:„15“ „y56“: position_y:„56“ „Y15“: position_y:„15“ Моя идея заключается в том, что я поставил их отдельно, и мне не нужно, чтобы создать все комбинации ... – yvuqld
U pdate ваш пост, pls. – mudasobwa