@d11wtq Sequel supports a similar syntax:
There are two related differences here. First is the usage of "o.c" vs "c", and second is the difference between the the use of "a". In the regular proc, you couldn't call c without an explicit receiver in the proc, unless the self of the surrounding scope responded to it. For a, note how ruby calls the method on the receiver of the surrounding scope in the regular proc, which returns an integer, and does the substitution before Sequel gets access to it. In the instance evaled proc, calling a without a receiver calls the a method on the VirtualRow instance. For b, note that it operates the same in both cases, as it is a local variable.
Full article:
http://sequel.rubyforge.org/rdoc/files/doc/virtual_rows_r...