Используя Sinatra в Ruby, вы можете установить настройки сервера, выполнив:
set :myvariable, "MyValue"
и затем получить доступ к нему в любом месте в шаблонах и т. Д. С помощью settings.myvariable
.
В моем сценарии мне нужнобыть в состоянии переустановить эти переменные, возвращаясь к куче значений по умолчанию.Я подумал, что самый простой способ сделать это - иметь функцию, которая выполняет все вызовы set
, вызывающие ее в начале сервера Sinatra, и когда мне нужно внести изменения:
class MyApp < Sinatra::Application
helpers do
def set_settings
s = settings_from_yaml()
set :myvariable, s['MyVariable'] || "default"
end
end
# Here I would expect to be able to do:
set_settings()
# But the function isn't found!
get '/my_path' do
if things_go_right
set_settings
end
end
# Etc
end
Какобъясненный в коде выше, функция set_settings
не найдена, я поступаю неправильно?