DHH mentioned in his talk at railsconf that he was toying with the
idea of using instance_eval in the routing API to make it less verbose
or more concise or whatever.
I just wanted to point out a related alternative to using a plain
instance_eval. Which gets you a little more but also makes things a
little more complicated.
Rather than just instance_eval()ing on some proxy object we could dup
the self object of the current binding, mix in some module which would
handle the routing methods, and then call instance_eval on the dup()ed
self. This way ''self'' will be almost identical to the way it
is in
todays routing API. The only difference being modifications to self
would not persist outside of the block.
example:
def Routes.draw(*args, &blk)
dup_self = eval(''self'', blk).dup
dup_self.extend RoutingDSL
dup_self.instance_eval(&blk)
end
just some thoughts...