В моем методе инициализации я пытаюсь записать его, чтобы я мог передать либо хэш, либо объект yaml для инициализации значений атрибута.Безопасный способ инициализации атрибутов из yaml или hash
Мой файл YAML выглядит следующим образом:
defaults: &defaults
host: localhost
port: 4565
timeout: 3
development:
<<: *defaults
test:
<<: *defaults
staging:
<<: *defaults
production:
<<: *defaults
настоящее время у меня это:
def initialize(options)
if options.respond_to? "has_key" && options.has_key? "defaults"
config = options["defaults"]
else
config = options
end
@hostname = config[:hostname]
@port = config[:port]
@timeout = config[:timeout]
end
Это в настоящее время не работает для меня, я получаю эту ошибку:
unexpected tSTRING_BEG, expecting keyword_then or ';' or '\n'
if options.respond_to? "has_key" && options.has_key? "defaults"
- Как я могу загрузить правильную среду? (тест, разработка, производство)
- Как я могу сделать ошибку, если один из ключей отсутствует? (или, по крайней мере, основные из них, которые мне нужны, например, имя хоста, порт)
пробелы, похоже, тоже важны? смущенный, не ожидал этого! – Blankman