У меня возникли проблемы с доступом к данным последовательно через различные части промежуточного расширения. Для того, чтобы объяснить, вот упрощенный пример расширение, которое просто устанавливает переменные:Как получить доступ к переменной через расширение Middleman?
class NextPrevious < Middleman::Extension
option :var1, true, 'A example variable.'
def initialize(app, options_hash={}, &block)
super
app.set :var2, true
@var3 = true
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> true
puts defined?(var2) ? var2 : false #=> true
puts defined?(@var3) ? @var3 : false #=> true
end
def manipulate_resource_list(resources)
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> true
puts defined?(var2) ? var2 : false #=> false
puts defined?(@var3) ? @var3 : false #=> true
end
helpers do
def test_helper
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> false
puts defined?(var2) ? var2 : false #=> true
puts defined?(@var3) ? @var3 : false #=> false
end
end
end
Так дали три переменные, вариант, глобальным, и переменные экземпляра, никто не может получить доступ по всем трем методам. Мне нужны все три метода, потому что я хочу собрать некоторые данные (из .yml), манипулировать им через карту сайта (используя manipulate_resource_list
) и использовать ее в помощнике. Я не знаю, как найти, где заканчивается их область действия, или как правильно их передать, так как я не совсем понимаю, где каждый метод вызывается в процессе загрузки или их взаимосвязи друг с другом. Какие-либо предложения?