Я однажды натолкнулся на библиотеку Ruby (я не уверен, что она когда-либо была упакована как гем), которая позволяла вам удобно применять временные модификации к модулям Ruby.Эти изменения будут активны только в блоках, выполняемых в объявлении with, например:
with(modifications) do
[interesting stuff requiring the modifications]
end
Это обеспечило отсутствие необходимости постоянно загрязнять (основные) модули только для того, чтобы сделать что-то особенное в определенныхмест.
В качестве конкретного примера того, что я хочу сделать: я хотел бы определить 'in?'метод Fixnum, поэтому пользователи внутреннего DSL могут набрать:
if value.in? [12, 16, 27, 28]
[do something interesting]
end
Я бы обернул оценку DSL методом 'with', и мне не пришлось бы загрязнять Fixnum этим?метод.Я знаю, что это не так сложно сделать, но, возможно, есть некоторые темные углы, и у меня сложилось впечатление, что эта библиотека была очень удобной для этой цели.
Кто-нибудь знает название этой библиотеки, которую я ищу?Кажется, я помню, что это было что-то вроде «plusplus», но Google ничего мне не дает.