Of course you should be able to build the expression tree manually – though 
even here, you may have trouble under .NET 3.5 as a result of the duplicated 
namespace. (That issue goes away with .NET 4.)

From: [email protected] 
[mailto:[email protected]] On Behalf Of Ivan Porto Carrero
Sent: Tuesday, May 05, 2009 7:46 AM
To: [email protected]
Subject: Re: [Ironruby-core] Building expressions

Yes
I have since changed my approach. I've also talked with Mark about approaching 
this.

The approach I take now is to generate a proxy to the object/class/interface 
that will record method calls.
After recording you can then run verifications on those method calls.  The way 
I generate the proxy for an interface came out of my talk with Mark.

http://github.com/casualjim/caricature/blob/922bdcd11d9b0a1aa5500c3fe430483863d9041e/lib/caricature/proxy.rb#L92

But the deeper implication is then that when a library uses Expression<Func<,>> 
as parameters you cannot use it from ironruby at all?  Not even by building the 
expression tree yourself?


(I forgot to hit send apparently :))
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
GSM: +32.486.787.582
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)

Emo Philips<http://www.brainyquote.com/quotes/authors/e/emo_philips.html>  - "I 
got some new underwear the other day. Well, new to me."
On Sun, May 3, 2009 at 11:37 PM, Shri Borde 
<[email protected]<mailto:[email protected]>> wrote:

It cannot be done. Even if you could get to the ExpressionTree of a Ruby 
lambda, the ExpressionTree would be loosely-bound as Ruby uses duck-typing, 
whereas Moq expects a strongly-typed ExpressionTree so that it can figure out 
the exact method that you are trying to associate some expectation with.



FWIW, Mark had also been playing with mocking, and in our discussions, we said 
that the easiest mocking approach would be to use Ruby features like 
method_missing, monkey-patching, etc (like rspec does). Ie. something like this:



def mock(clrInterface):

  class ClrMock < clrInterface

    # monkey-patch all of “clrInterface.methods" here, and redirect to the 
mocking framework

  end

  return ClrMock.new

end



From: 
[email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Ivan Porto Carrero
Sent: Sunday, May 03, 2009 3:18 AM
To: ironruby-core
Subject: [Ironruby-core] Building expressions



Hi

I'm trying to get some Moq mockery going in IronRuby but Moq expects 
Expression<Func<MyObject, TReturn>> in his methods.
Is there a way to make a RubyProc/lambda return an expression or convert it to 
an expression?

---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Author of IronRuby in Action (http://manning.com/carrero)

Steve Martin<http://www.brainyquote.com/quotes/authors/s/steve_martin.html>  - 
"I've got to keep breathing. It'll be my worst business mistake if I don't."

_______________________________________________
Ironruby-core mailing list
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to