From: "Luca (Email)" Date: 2011-12-29T15:53:03+09:00 Subject: I: Binding#with ------=_NextPart_000_42DB_01CCC5FD.7C37A100 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =20 =20 Da: Intransition [mailto:transfire@gmail.com]=20 Inviato: luned=EC 14 novembre 2011 03:31 A: ruby-talk ML; ruby-talk-google@googlegroups.com Oggetto: Binding#with =20 Binding#with =20 def with(_local_variables) eval("Proc.new{ |#{_local_variables.keys.join(',')}| binding }").call(*_local_variables.values) end =20 Try it: =20 b =3D binding.with(:a=3D>1) b.eval('a') #=3D> 1 =20 Now, it there a way to add a "yield" to the binding? I tried: =20 def with(_local_variables, &_yields) eval("lambda{ |#{_local_variables.keys.join(',')},&yields| binding }").call(*_local_variables.values, &_yields) end =20 b =3D binding.with{ |x| x+x} b.eval('yields[1]') #=3D> 2 =20 but =20 b.eval('yield(1)') #=3D> Error =20 =20 =20 =0D=0A =0D=0A --=0D=0A Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP = autenticato? GRATIS solo con Email.it http://www.email.it/f=0D=0A =0D=0A Sponsor:=0D=0A Conto Arancio al 4,20%. Zero spese e massima liberta', aprilo in due minut= i!=0D=0A Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=3D11919&d=3D29-12=0D=0A ------=_NextPart_000_42DB_01CCC5FD.7C37A100--