В Ruby вы можете легко получить программный доступ к локальным переменным, используя local_variables
и eval
.Мне бы очень хотелось иметь доступ к этим переменным для метапрограммирования, используя один вызов метода, такой как
# define a variable in this scope, such as
x = 5
Foo.explore_locals # inside the Foo#explore_locals method, access x
, где Foo
- некоторый внешний модуль.Идея состоит в том, чтобы красиво отображать и экспортировать локальные переменные.
Что должно быть внутри метода explore_locals
?Есть ли способ сделать это возможным?Если это абсолютно необходимо, я думаю, это может быть
Foo.explore_locals binding
, но это гораздо менее элегантно для приложения, которое я имею в виду.