Forum: Italian Ruby user group da blocco a codice

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-04-27 11:12
(Received via mailing list)
Qualcuno di voi ha idea su come trasformare un block in una stringa
contente il suo codice?
mi serve per poter iniettare nuovo codice nel blocco per una DSL.  mi
servono i binding del blocco, quindi non posso semplicemente
aggiungere una chiamata in coda alla chiamata al blocco.

--
Chiaroscuro
---
Liquid Development: http://liquiddevelopment.blogspot.com/
B1c45f949749d001b4b9a75f50f69d38?d=identicon&s=25 Paolo Donà (Guest)
on 2006-04-27 12:48
(Received via mailing list)
non sono un guru di DSL e non so rispondere alla tua domanda, ma prova a
dare un okkio qui
http://www.whytheluckystiff.net/articles/seeingMet...

forse trovi quello che cerchi (anche se non metti esattamente un blocco
in
una stringa)
ah.. se trovi risposta ai tuoi dubbi faccelo sapere che sono curioso

On 4/27/06, chiaro scuro <kiaroskuro@gmail.com> wrote:
> Liquid Development: http://liquiddevelopment.blogspot.com/
> _______________________________________________
> Ml mailing list
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>



--
Paolo Donà
email me: paolo[dot]dona[at]gmail[dot]com
skype me: paolo[dot]dona
Bfb1c10329e5952ca638f12bb803c069?d=identicon&s=25 Gabriele Lana (Guest)
on 2006-04-27 13:07
(Received via mailing list)
giovedi 27 aprile 2006, alle 11:10, il navigatore chiaro scuro scrisse:

> Qualcuno di voi ha idea su come trasformare un block in una stringa
> contente il suo codice?

http://www.zenspider.com/ZSS/Products/ParseTree/
dovrebbe fare al caso tuo

> mi serve per poter iniettare nuovo codice nel blocco per una DSL.
> mi servono i binding del blocco, quindi non posso semplicemente
> aggiungere una chiamata in coda alla chiamata al blocco.

cosa intendi con i binding del blocco?
30cb10b258fc90a05e97d63380133bf0?d=identicon&s=25 Massimiliano Mirra (Guest)
on 2006-04-27 13:28
(Received via mailing list)
> Qualcuno di voi ha idea su come trasformare un block in una stringa
> contente il suo codice?
> mi serve per poter iniettare nuovo codice nel blocco per una DSL.  mi
> servono i binding del blocco, quindi non posso semplicemente
> aggiungere una chiamata in coda alla chiamata al blocco.

Se oltre al binding non ci sono altre considerazioni che ti fanno
scartare questa possibilità , puoi provare con qualcosa del genere:

    bard@yokai:/tmp$ cat test.rb
    def make_block
      a = 5
      proc {
        puts "a => #{a}"
        external_code_callback(binding)
        puts "a => #{a}"
      }
    end

    def external_code_callback(foreign_binding)
      code_to_inject = "a = 6"
      eval(code_to_inject, foreign_binding)
    end

    block = make_block
    block.call

    bard@yokai:/tmp$ ruby test.rb
    a => 5
    a => 6



--
blog: http://blog.hyperstruct.net
code: http://dev.hyperstruct.net, http://repo.hyperstruct.net
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-04-27 14:03
(Received via mailing list)
On 4/27/06, Gabriele Lana <gabriele.lana@fastwebnet.it> wrote:
> giovedi 27 aprile 2006, alle 11:10, il navigatore chiaro scuro scrisse:
>
> > Qualcuno di voi ha idea su come trasformare un block in una stringa
> > contente il suo codice?
>
> http://www.zenspider.com/ZSS/Products/ParseTree/
> dovrebbe fare al caso tuo

adesso guardo, grazie.


> cosa intendi con i binding del blocco?

voglio poter estrarre i nomi e i valori di variabili locali dichiarate
entro il blocco da fuori del blocco.
per fare questo devo interrogare il contesto del blocco, che ottengo
con il metodo 'binding'

non voglio però (entro il blocco) dover ritornare esplicitamente i binding.
This topic is locked and can not be replied to.