Набросал простенькую библиотеку, которая делает следующее: блок кода сохраняется в переменной или же выполняется в отдельном потоке, но при этом почти любое обращение к переменной ждет результата выполнения и в дальнейшем ведет себя уже как вычисленное значение.
Спасибо Ruby 1.9 за класс BasicObject
— перекрывать всю массу методов Object
я бы поленился.
Брать с ГитХаба — https://github.com/shikhalev/lazy.
upd: Проект перенесен, см. пост от 2013-04-18.
Еще бы в гем его запихнуть и было бы кошерно.
ОтветитьУдалитьТак лень же.
УдалитьА вообще, по хорошему такие вещи должны делаться на уровне языка, а не библиотеки.
УдалитьВот с этим согласен. Вообще обидно, что в mri этого нет как и нет настоящего параллелизма, concurrency only.
Удалить