[IronPython] [Ironruby-core] Code Review: RubyLibsAndYaml

C.J. Adams-Collier cjac at colliertech.org
Sun May 18 20:13:57 CEST 2008

Hey folks,

Does there exist a formal code review process for the Iron* languages
and/or the DLR?  Have you considered using a tool to ease gathering of
review feedback?

http://www.review-board.org/ - VMWare, Christian Hammond

svn checkout http://reviewboard.googlecode.com/svn/trunk/reviewboard

http://codereview.appspot.com/ - Google, Guido van Rossum



On Sat, 2008-05-17 at 21:47 -0700, Tomas Matousek wrote:
> tfpt review /shelveset:RubyLibsAndYaml;REDMOND\tomat
> Adjusts class-initializer generator to enable generating initializers for multiple libraries within a single assembly.
> Also enables extending existing Ruby modules and classes that are defined in C# libraries (previously only CLR classes could have been extended). For example, the following class adds additional methods on Kernel module:
> [RubyModule(Extends = typeof(Kernel))]
> public static class MyKernelOps {
>   [RubyMethod("foo")]
>   public static void Foo() { ... }
> }
> The type specified in Extends parameter is the C# class defining the module/class.
> Enables to group C# classes and modules into Ruby libraries (e.g. thread, socket, openssl, yaml, etc.). Each library is identified by a root namespace. All Ruby classes and modules of the assembly defined within the namespace are considered parts of the library. The shelveset updates namespaces in IronRuby.Libraries.dll to group classes by library:
> Ruby.Builtins
> Ruby.StandardLibrary.Threading
> Ruby.StandardLibrary.Sockets
> Ruby.StandardLibrary.OpenSsl
> Ruby.StandardLibrary.Digest
> Ruby.StandardLibrary.Zlib
> The list of namespaces that define libraries within an assembly is passed to the generator:
> ClassInitGenerator IronRuby.Libraries.dll /libraries:Ruby.Builtins;Ruby.StandardLibrary.Threading;Ruby.StandardLibrary.Sockets;Ruby.StandardLibrary.OpenSsl;Ruby.StandardLibrary.Digest;Ruby.StandardLibrary.Zlib /out:Initializers.Generated.cs
> The mapping from Ruby library name to the assembly and namespace is established via .rb files:
> thread.rb:
> load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.Threading'
> openssl.rb:
> load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.OpenSsl'
> etc.
> (Kernel#load_assembly now takes an optional second argument identifying the library to load by its root namespace).
> The files are included in the solution and their build action is set to "copy if new", which means they are copied to the output directory during the build. ir.exe includes the directory it is located in into the load paths list ($:), so the .rb files copied there are found by the standard Ruby require/load mechanism.
> Tomas
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080518/2fdcfe3d/attachment.pgp>

More information about the Ironpython-users mailing list