I''ve checked out revision 76 of IronRuby, and finally got it setup in VS2008 where everything was compiling. For some reason the VS project file looks for the sub-projects in the wrong locations, and you have to redirect it to the proper project locations, and reset all the references. I thought I would try to hack in a few more of the ruby string methods, and located the source file in the "MutableStringOps.cs" file in the IronRuby.Libraries project. I''ve written the code, but for some reason, it won''t get called. I''ve cleaned the solution, and built from scratch. I have a feeling I''m missing something obvious. I''ve continued to simplify it until now I have this: [RubyMethodAttribute("reverse", RubyMethodAttributes.PublicInstance)] public static MutableString/*!*/ Reverse(MutableString/*!*/ self) { MutableString result = new MutableString("reverse"); //just temp return result; } When I try calling this method on a string from the ruby console, I get a NoMethodError. This is driving me crazy. I would really like to hack this together, and contribute it back, but I''m at my wits end here. It should work, but it''s not. Sincerely, Josh
Josh Charles:> > I''ve checked out revision 76 of IronRuby, and finally got it setup in > VS2008 where everything was compiling. For some reason the VS project > file looks for the sub-projects in the wrong locations, and you have > to redirect it to the proper project locations, and reset all the > references.You should use the *other* solution in that directory - IronRuby.sln. That points to the right locations.> I thought I would try to hack in a few more of the ruby string > methods, and located the source file in the "MutableStringOps.cs" file > in the IronRuby.Libraries project. I''ve written the code, but for > some reason, it won''t get called. I''ve cleaned the solution, and > built from scratch. I have a feeling I''m missing something obvious. > I''ve continued to simplify it until now I have this: > > [RubyMethodAttribute("reverse", > RubyMethodAttributes.PublicInstance)] > public static MutableString/*!*/ Reverse(MutableString/*!*/ > self) { > MutableString result = new MutableString("reverse"); //just > temp > return result; > } >You''ll need to run ''rake gen'' from the command line to regenerate the Initializers.Generated.cs file. -John
Or you can actually use the ClassInitGenerator.exe in your output directory directly: classinitgenerator IronRuby.Libraries.dll Ruby.Libraries LibrariesInitalizer > Initializer.Generated.cs copy Initializer.Generated.cs to trunk/src/IronRuby.Libraries/ recompile. I didn''t even know there was a rake task, I''ve been doing it like that from the start ;) Still fighting to make the rake files play nice on Cygwin.. On Tue, Mar 11, 2008 at 2:54 PM, John Lam (DLR) <jflam at microsoft.com> wrote:> Josh Charles: > > > > > I''ve checked out revision 76 of IronRuby, and finally got it setup in > > VS2008 where everything was compiling. For some reason the VS project > > file looks for the sub-projects in the wrong locations, and you have > > to redirect it to the proper project locations, and reset all the > > references. > > You should use the *other* solution in that directory - IronRuby.sln. That points to the right locations. > > > > I thought I would try to hack in a few more of the ruby string > > methods, and located the source file in the "MutableStringOps.cs" file > > in the IronRuby.Libraries project. I''ve written the code, but for > > some reason, it won''t get called. I''ve cleaned the solution, and > > built from scratch. I have a feeling I''m missing something obvious. > > I''ve continued to simplify it until now I have this: > > > > [RubyMethodAttribute("reverse", > > RubyMethodAttributes.PublicInstance)] > > public static MutableString/*!*/ Reverse(MutableString/*!*/ > > self) { > > MutableString result = new MutableString("reverse"); //just > > temp > > return result; > > } > > > > You''ll need to run ''rake gen'' from the command line to regenerate the Initializers.Generated.cs file. > > -John > > > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core >-- Michael Letterle [Polymath Prokrammer] http://blog.prokrams.com
Or more easily run GenerateInitializers.cmd from trunk\src\IronRuby.Libraries Pete -----Original Message----- From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Michael Letterle Sent: Tuesday,11 March 11, 2008 19:04 To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] Revision Or you can actually use the ClassInitGenerator.exe in your output directory directly: classinitgenerator IronRuby.Libraries.dll Ruby.Libraries LibrariesInitalizer > Initializer.Generated.cs copy Initializer.Generated.cs to trunk/src/IronRuby.Libraries/ recompile. I didn''t even know there was a rake task, I''ve been doing it like that from the start ;) Still fighting to make the rake files play nice on Cygwin.. On Tue, Mar 11, 2008 at 2:54 PM, John Lam (DLR) <jflam at microsoft.com> wrote:> Josh Charles: > > > > > I''ve checked out revision 76 of IronRuby, and finally got it setup in > > VS2008 where everything was compiling. For some reason the VS project > > file looks for the sub-projects in the wrong locations, and you have > > to redirect it to the proper project locations, and reset all the > > references. > > You should use the *other* solution in that directory - IronRuby.sln.That points to the right locations.> > > > I thought I would try to hack in a few more of the ruby string > > methods, and located the source file in the "MutableStringOps.cs" file > > in the IronRuby.Libraries project. I''ve written the code, but for > > some reason, it won''t get called. I''ve cleaned the solution, and > > built from scratch. I have a feeling I''m missing something obvious. > > I''ve continued to simplify it until now I have this: > > > > [RubyMethodAttribute("reverse", > > RubyMethodAttributes.PublicInstance)] > > public static MutableString/*!*/ Reverse(MutableString/*!*/ > > self) { > > MutableString result = new MutableString("reverse"); //just > > temp > > return result; > > } > > > > You''ll need to run ''rake gen'' from the command line to regenerate theInitializers.Generated.cs file.> > -John > > > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core >-- Michael Letterle [Polymath Prokrammer] http://blog.prokrams.com _______________________________________________ Ironruby-core mailing list Ironruby-core at rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core
John Lam (DLR) <jflam at microsoft.com> wrote:> You should use the *other* solution in that directory - IronRuby.sln. That points to the right locations.Got it, thanks!> You''ll need to run ''rake gen'' from the command line to regenerate the Initializers.Generated.cs file.I feel a bit foolish at the moment for not seeing that. Never-the-less, I went ahead and implemented the string.reverse methods and submitted the patch to rubyforge. I don''t know how helpful that is specifically, but I hope to contribute more down the line. Sincerely, Josh