--- nobu.nokada / softhome.net wrote:
> Hi,
> 
> At Sun, 22 May 2005 04:41:25 +0900,
> noreply / rubyforge.org wrote in [ruby-core:05065]:
> > The 'facade' requirement can be removed and that
> module can
> > be inlined if you don't like the dependency.  It's
> only about
> > 20 lines of code.
> 
> Where is it?

It's on the RAA.  Here it is (comments removed):

module Facade
  
   def facade(klass, *methods)
      methods.flatten!
      methods = klass.methods(false) if methods.empty?
      methods.collect!{|m| m.to_s}                    

      methods -= self.instance_methods                


      methods.each do |methname|
         define_method(methname){ ||
            meth = klass.method(methname)
            if meth.arity.zero?                       

               meth.call
            else
               meth.call( self )
            end
         }
      end
   end
end
 
> > require "Win32API" if File::ALT_SEPARATOR
> 
> File::ALT_SEPARATOR is not Windows specific.

On what other platform is it not nil?
 
> >    def initialize(path)
> >       @sep = File::ALT_SEPARATOR ||
> File::SEPARATOR
> > 
> >       # Convert forward slashes to backslashes on
> Win32
> >       path.tr!("/",@sep) if File::ALT_SEPARATOR
> 
> This changes the argument.

Yes, I know.  That's intentional.
 
> >    def root
> >       dir = "."   
> >       if File::ALT_SEPARATOR
> >          # We only want the portion up to the
> first '\0'
> >          if @@PathStripToRoot.call(self) > 0
> >             dir = self.split(0.chr).first
> 
> This is destructive operation.

I'll fix.
 
> >    def +(string)
> >       unless string.kind_of?(Pathname)
> >          string = Pathname.new(string)
> >       end
> > 
> >       # Any path plus "." is the same directory
> >       return self if string == "."
> >       
> >       # Use the builtin PathAppend method if on
> Windows - much easier
> >       if File::ALT_SEPARATOR
> >          buf = 0.chr * MAX_PATH
> >          buf[0..self.length-1] = self
> >          @@PathAppend.call(buf, string << 0.chr)
> 
> Also.
> 
> And, I doubt about necessity of Win32API.

I don't.  UNC pathname issues are too difficult to
deal with in a generic manner without getting into
lots of conditionals.

Regards,

Dan

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com