[Ironruby-core] Anyone interested in implementing Etc module for Mono?

Ryan Riley ryan.riley at panesofglass.org
Sat Apr 3 19:49:44 EDT 2010


I was hoping for just such pointers, thanks! I will try to get this  
updated tonight.

Ryan

Sent from my iPhone

On Apr 3, 2010, at 4:43 PM, Tomas Matousek  
<Tomas.Matousek at microsoft.com> wrote:

> Nice work.
>
>
>
> A few suggestions:
>
>
>
> -          You can move the file to C:\M0\Merlin\Main\Languages\Ruby 
> \Libs.
>
> -          Use System::Environment::  
> System::Environment.OSVersion.Platform to detect the OS (see e.g.  
> Win32API.rb in Libs).
>
> -          Rather than check for the platform in every method it  
> might be better to define the methods differently on Windows.  
> Something like:
>
>
>
> module Etc
>
>   platform = System::PlatformID
>
>   case System::Environment.OSVersion.Platform
>
>     when platform.Win32S, platform.WinCE, platform.Win32Windows,  
> platform.Win32NT:
>
>     def self.endgrent; end
>   def self.endpwent; end
>
>   def self.getgrent; end
>
>>
>     else
>
>    load_assembly 'Mono.Posix'
>
>
>   def self.endgrent
>     Mono::Unix::Native::Syscall.endgrent
>   end
>
>   def self.endpwent
>     Mono::Unix::Native::Syscall.endpwent
>   end
>
>   def self.getgrent
>     to_group(Mono::Unix::Native::Syscall.getgrent)
>   end
>
>>   end
>
> end
>
>
>
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core- 
> bounces at rubyforge.org] On Behalf Of Ryan Riley
> Sent: Saturday, April 03, 2010 3:59 PM
> To: ironruby-core at rubyforge.org
> Subject: Re: [Ironruby-core] Anyone interested in implementing Etc  
> module for Mono?
>
>
>
> I've posted an initial "complete" implementation, though I have only  
> done basic testing. I have a couple of TODO's remaining and some  
> cleanup, as well as writing actual specs. I still don't have tests  
> running. You can find the module here: http://github.com/panesofglass/ironruby/blob/linux/Merlin/External.LCA_RESTRICTED/Languages/IronRuby/Etc/IronRuby.Libraries.Etc/etc.rb
>
>
>
> Not the prettiest thing in the world, but I just wanted to get it  
> working. I definitely still have work to do.
>
>
>
> Cheers,
>
>
> Ryan Riley
>
> Email: ryan.riley at panesofglass.org
> LinkedIn: http://www.linkedin.com/in/ryanriley
> Blog: http://wizardsofsmart.net/
> Twitter: @panesofglass
> Website: http://panesofglass.org/
>
>
> On Sat, Apr 3, 2010 at 2:30 PM, Ryan Riley <ryan.riley at panesofglass.org 
> > wrote:
>
> Sure! Mono::Unix::Native::Passwd and Mono::Unix::Native::Group that  
> are returned from the Mono::Unix::Native::Syscall functions have  
> UInt32, System.String, and System.String[]. System.String is no  
> biggie, and I'm finding .to_i on a System.UInt32 is still displayed  
> as System.UInt32, so I suppose that's not an issue, either. MRI  
> displays Fixnum as the type, and I was trying to get the correct  
> types back from the functions. That leaves MRI's Array to Mono's  
> System.String[].
>
>
>
> My current implementation is just a Ruby module wrapping calls to  
> the Mono functions and returning the appropriate types. Most of it  
> is working, though without being able to run tests easily, I'm  
> testing from the command line. I still need to add conditionals to  
> return nil if it's run on Windows. I suppose I also need to  
> conditionally load the Mono.Posix.dll if it's on Windows, too.
>
>
>
> I'm about to finish the basic implementation and post to github.  
> (I've already got what I finished last night up there.) I also asked  
> Shri for a pairing session to make sure it's inline with what you're  
> wanting.
>
>
>
> Cheers,
>
>
>
> Ryan Riley
>
> Email: ryan.riley at panesofglass.org
> LinkedIn: http://www.linkedin.com/in/ryanriley
> Blog: http://wizardsofsmart.net/
> Twitter: @panesofglass
> Website: http://panesofglass.org/
>
>
> On Sat, Apr 3, 2010 at 11:25 AM, Tomas Matousek <Tomas.Matousek at microsoft.com 
> > wrote:
>
> Can you give an example of where you need the conversions?
>
>
>
> Tomas
>
>
>
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core- 
> bounces at rubyforge.org] On Behalf Of Jim Deville
> Sent: Saturday, April 03, 2010 11:00 AM
>
>
> To: ironruby-core at rubyforge.org
>
> Subject: Re: [Ironruby-core] Anyone interested in implementing Etc  
> module for Mono?
>
>
>
>
> No conversion for Fixnums is needed (Fixnums are ints). Arrays are  
> harder. I would take a look at clr_ext in merlin/main/languages/ruby/ 
> samples. Inside that file is a to_clr_array method
>
> JD
>
> From: Ryan Riley <ryan.riley at panesofglass.org>
> Sent: Saturday, April 03, 2010 12:13 AM
> To: ironruby-core at rubyforge.org <ironruby-core at rubyforge.org>
> Subject: Re: [Ironruby-core] Anyone interested in implementing Etc  
> module for Mono?
>
> Where is documentation on converting between CLR and Ruby types? I  
> can get RubyStrings, but what about Fixnum and Array?
>
>
>
> Thanks,
>
>
> Ryan Riley
>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100403/d90cc98f/attachment.html>


More information about the Ironruby-core mailing list