The only documentation I use in these matters is at www.ruby-doc.org/core/. For example: http://www.ruby-doc.org/core/classes/Module.html#M001705. Pete
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ben Hall Sent: Saturday,27 September 27, 2008 23:10 To: [email protected] Subject: Re: [Ironruby-core] RubyModule CreateAnonymousModule - NotImplementedException Hi Peter, Thanks for your reply. That is what I tried initially, however you need to return a RubyModule object. I tried: return (RubyModule) RubyUtils.EvaluateInModule(module, block); but I get the errror: E:\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\MatchCaller.Generated .cs:35:in `Call3': Unable to cast object of type 'IronRuby.Builtins.Proc' to type 'IronRuby.Builtins.RubyModule'. (System::InvalidCastException) from E:\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\CallSite.cs:275:in `UpdateAndExecute' from E:\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\UpdateDelegates.Gener ated.cs:45:in `Update3' from step.rb:19:in `init_module' I tried this implementation: RubyModule module = new RubyModule(self); module.Name = SymbolId.Empty; RubyUtils.EvaluateInModule(module, block); return module; When appears to allow me to progress some more, but now i'm hitting LocalJumpError("unexpected return"); in RuntimeFlowControl.BlockReturn, I guess something isn't correct. Out of interest, what documentation is available? Thanks Ben On Sat, Sep 27, 2008 at 5:08 PM, Peter Bacon Darwin <[EMAIL PROTECTED]> wrote: > The documentation says that the block version of the code creates the > anonymous module and then passes this new module to the block via a dynamic > call to Module#module_eval. > The following code is a quick hack (that may work!!) but really we should be > hitting a DynamicSite to invoke the module_eval. > > // Ruby constructor: > public static object CreateAnonymousModule([NotNull]BlockParam/*!*/ > block, RubyClass/*!*/ self) { > RubyModule module = > self.ExecutionContext.DefineModule(SymbolId.Empty); > return RubyUtils.EvaluateInModule(module, block); > } > > Disclaimer: I haven't tried this at all. > Pete > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Ben Hall > Sent: Saturday,27 September 27, 2008 13:54 > To: [email protected] > Subject: [Ironruby-core] RubyModule CreateAnonymousModule - > NotImplementedException > > Hello, > > Just been playing around with IronRuby, however I am hitting an issue > with RubyModule.CreateAnonymousModule() - basically, it hasn't been > implemented yet :) > > // Ruby constructor: > public static RubyModule/*!*/ > CreateAnonymousModule([NotNull]BlockParam/*!*/ block, RubyClass/*!*/ > self) { > // TODO: > throw new NotImplementedException(); > } > > You have implemented another method: > public static RubyModule/*!*/ CreateAnonymousModule(RubyClass/*!*/ self) { > return self.ExecutionContext.DefineModule(SymbolId.Empty); > } > > But I don't know how to to implement with relation to the block. Is > it just not supported yet? > > If you could provide me with any help that would be great, its really > blocking me at the moment. > > Thanks > Ben > _______________________________________________ > 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 _______________________________________________ Ironruby-core mailing list [email protected] http://rubyforge.org/mailman/listinfo/ironruby-core
