В моем коде у меня есть несколько методов, использующих следующий шаблон
def my_method only: [], ignore: []
something('textvalue') if (only.empty? && ignore.empty?) || (only.any? && only.include?('textvalue')) || (ignore.any? && !ignore.include?('textvalue'))
end
Другими словами, я могу отфильтровать результаты, указав only
или ignore
, в зависимости от того, какой из них более удобен в контексте.
Я хотел бы объявить помощника want
, который обращается к локальным параметрам only
и ignore
без необходимости каждый раз указывать их, в идеале результат будет выглядеть следующим образом:
def my_method only: [], ignore: []
something('textvalue') if want('textvalue')
end
Этот помощник будет использоваться в нескольких различных методах, классах и т. Д. Он будет каким-то образом проверять локальные переменные в вызывающей точке, проверять, существуют ли only
и ignore
, а затем проверять, нужен ли параметр или нет .
Можно ли получить доступ к стеку вызовов и посмотреть там локальные переменные?