Module: Kernel
- Defined in:
- lib/helpful_utils/core_ext/kernel.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#with(object, &block) ⇒ Object
Переключение области видимости на объект.
Instance Method Details
#with(object, &block) ⇒ Object
Переключение области видимости на объект. Использовать осторожно. Рекоммендуется применять, когда в коде идет несколько операций над одним объектом. Таким образом следующий код:
Gionet.contexts.set_context(:region, :volga)
Gionet.contexts.set_context(:site, "gionet.ru")
Gionet.contexts.set_context(:special, special_object)
p Gionet.contexts.slice
Gionet.contexts.run
можно преобразовать в следующий:
with Gionet.contexts do
set_context(:region, :volga)
set_context(:site, "gionet.ru")
set_context(:special, special_object)
p slice
run
end
Внимание при использовании необходимо по причине того, что внутри блока происходит смешивание областей видимости самого объекта и окружения из которого он вызывается.
24 25 26 |
# File 'lib/helpful_utils/core_ext/kernel.rb', line 24 def with(object, &block) object.instance_eval &block end |