Привет,Как временно обезьяна с глобальной константой модуля?
Я хочу поработать с глобальным объектом memcache, и я нашел следующие проблемы.
- Cache является постоянным
- Cache представляет собой модуль
Я только хочу, чтобы изменить поведение кэша глобально для небольшой части коды для возможного крупного выигрыша в производительности.
Поскольку Cache - это модуль, я не могу его повторно назначить или инкапсулировать.
Я хотел бы сделать это:
Deep в методе контроллера ...
code code code...
old_cache = Cache
Cache = MyCache.new
code code code...
Cache = old_cache
code code code...
Однако, поскольку кэш является постоянным мне запрещено менять. На данный момент нить не является проблемой. :)
Было бы «хорошими манерами» для меня, просто для alias_method специальный код мне нужен только для небольшой части кода, а затем он еще раз откажется от него? Это не пройти тест запаха ИМХО.
У кого-нибудь есть идеи?
ТИА,
-daniel
Ах, я вижу, что происходит. Я пытался заменить константу экземпляром класса, таким образом, я получил ошибку «динамического постоянного назначения». – Daniel