Question

I have Ruby 2.0.0 and TextMate 2 playing along nicely, after some TM_RUBY settings from this blog post.

However I have:

/Users/koos/Developments/RubyDevs/RubyTests/RubyLearn/Test1.rb

and

/Users/koos/Developments/RubyDevs/RubyTests/RubyLearn/Test2.rb

Test1.rb has File.open("Test2.rb")

In TM 1.5 this worked, whether I open TM at the RubyDevs levels and drill down, or if I open TM at the RubyLearn level.

In TM2 it gets "no such file or directory" if I open at RubyDevs level but is ok if I open at RubyLearn level.

It is also OK if I change to

File.open("/Users/koos/Developments/RubyDevs/RubyTests/RubyLearn/Test2.rb")

This is clearly a settings issue of some sorts.

Any advise on this?

Was it helpful?

Solution

First of all, this has nothing to do with Textmate but with how Ruby handles that file path. So no need to fiddle with TM settings.

You are opening a file relative to the current working directory. If you run Test1.rb from the RubyDevs directory Test2.rb is not present in the current working directory, if you open the file from the RubyLearn directory it is.

To make it work from any directory you need to determine the directory of the Test1.rb file and add the Test2.rb path like this:

file = File.open(File.dirname(__FILE__) + '/Test2.rb')
file.close()

Hope this helps!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top