This is actually correct behavior.
p("dsfs") calls Kernel#p with parameter "dsfs"
d("dsfs") attempts to call method "d", which doesn't exist.
You need to do p.invoke("dsfs") and d.invoke("dsfs") to invoke the delegates.
Tomas
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jim Deville
Sent: Tuesday, June 09, 2009 10:32 AM
To: [email protected]
Subject: Re: [Ironruby-core] An Issue with CLR Delegates
Looks like some odd caching or invalidation. Please file a bug on Codeplex.
JD
...there is no try
> -----Original Message-----
> From: [email protected] [mailto:ironruby-core-
> [email protected]] On Behalf Of Shay Friedman
> Sent: Tuesday, June 09, 2009 5:35 AM
> To: [email protected]
> Subject: [Ironruby-core] An Issue with CLR Delegates
>
> Hi,
>
> Today I'm playing with CLR delegates :)
>
> I've run into a strange behavior.
>
> Take a look at the next C# block:
> -----------
> public class Printer
> {
> public delegate void PrintValue(string value); }
> -----------
>
> Assuming the above is the content of assembly.dll, take a look at the next IR
> console output:
>
> -----------
> >>> require "assembly.dll"
> => true
> >>> p = Printer::PrintValue.new { |x| puts x }
> => Printer+PrintValue
> >>> p("dsfs")
> "dsfs"
> => nil
> >>> d = Printer::PrintValue.new { |x| puts x }
> => Printer+PrintValue
> >>> d("dsfd")
> :0: undefined method `d' for main:Object (NoMethodError)
> ------------
>
> Why does p work and d doesn't?
>
> BTW, I see that delegates are converted to something called LightLambda.
> What is that?
>
> Many thanks!
> Shay.
> ----------------------------
> http://www.ironshay.com
> Follow me: http://twitter.com/ironshay
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ironruby-core mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core