The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.

Muvaw Pnazte <bugathlon / yahoo.com> writes:

> So taking File as an example I can't see that chmod really belongs
> there. I'm not saying that we should have FSUnixLike (mix-in?) where we
> have functionality for such weird idioms like chmod. I feel that File
> should be more generic. I feel that program which successful operation
> depends on chmod, and thus is not runnable on DOS, should clearly point
> out it's using such feature.

For the chmod function, my belief is that Ruby simply relies on the C
library's 'chmod' call. I believe it's a Posix function, and most C
compilers have it in their library. So, Ruby programs are really no more
susceptible to this problem than regular C programs.

Under Cygwin on Windows, chmod does actually do something - you can use 
it to change a file's read-only status.

However, perhaps it might be an idea to do as you suggest and separate 
out other calls, which are Unix specific, and make them available as
optionally mix-ins.

  File.include_option('unix_features')
  Process.include_option('unix_features')

This will certainly boost both portability and make documentation
easier ;-)

Regards


Dave