Luis,
Thanks for your help. There does indeed seem to be something wrong on my end.
Kernel.system('call ...') executes in a different directory than
Kernel.system('...'), but for my co-worker, it does not. We have the exact
same version of ruby, too.
Brian
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Luis Lavena
> Sent: Wednesday, May 26, 2010 5:43 PM
> To: Rake Development and Discussion
> Subject: Re: [Rake-devel] Rake 0.8.7 broken on Windows
>
> On Wed, May 26, 2010 at 7:17 PM, Hartin, Brian
> <[email protected]> wrote:
> > Luis,
> >
> > I have created three one-line ruby scripts to demonstrate
> the issue with 'call'. Please note the directory locations:
> >
> > c:\temp\print_working_directory.rb:
> >
> > puts "Working directory is #{Dir.pwd}"
> >
> > c:\temp\invoke_ruby.rb
> >
> > Kernel.system('c:\ruby\bin\ruby.exe
> c:\temp\print_working_directory.rb')
> >
> > c:\temp\invoke_ruby_using_call.rb
> >
> > Kernel.system('call c:\ruby\bin\ruby.exe
> c:\temp\print_working_directory.rb')
> >
> > Next, I opened a command window and executed the following commands:
> >
> > c:\>cd c:\temp
> > c:\temp>ruby invoke_ruby.rb (prints "Working
> directory is C:/temp")
> > c:\temp>ruby invoke_ruby_using_call.rb (prints
> "Working directory is C:/Documents and Settings/hartbr")
> >
> >
> > When I run 'rake test' from my project directory
> (C:\workspaces\project), I see the same thing. To
> demonstrate, here's what you need to do:
> >
> > 1) gem install rake 0.7.3
> > 2) Modify rake_test_loader.rb to print the working directory.
> > 3) Run 'rake:test' from the root directory of any Rails
> project. You should see that the forked ruby process runs
> the tests from that directory.
> > 4) Uninstall rake 0.7.3 (Just for clarity's sake)
> > 5) Install rake 0.8.7
> > 6) Repeat step 2
> > 7) Repeat step 3, and I think it will fail to find the unit tests.
> >
> > I traced things from the Rails rake tasks all the way to
> alt_system.rb, and this doesn't seem to be a Rails issue.
> Rails correctly assembles the file list, consisting of
> relative paths like "test/unit/foo_test.rb". The directory
> issue causes Rake 0.8.7 to fail with a "No such file to load" error.
> >
> > I did a fresh install of Ruby today, to make sure my Ruby
> installation wasn't part of the problem.
> >
>
> The only one reporting me "No such file to load" is Ruby 1.9.2 that do
> not add "." to the $LOAD_PATH
>
> Invoking "rake test" or "rake spec" in any project I've used takes the
> directory where Rakefile is found and executed.
>
> That had worked and still works for me.
>
> There was several back and forth on alt_system issues because Ruby
> 1.8.x is flawed to handle system calls. "call" was required to handle
> *args calls to system.
>
> --
> Luis Lavena
> AREA 17
> -
> Perfection in design is achieved not when there is nothing
> more to add,
> but rather when there is nothing more to take away.
> Antoine de Saint-Exupéry
> _______________________________________________
> Rake-devel mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rake-devel
>
_______________________________________________
Rake-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rake-devel