P.S. I know that I can do shift+cmd+D in text mate and open the file,
which obviously requires the path--but this script uses
TM_SUPPORT_PATH--and it seems like something that could be more
easilly accessed directly from RUBY. At any rate, I would rather be
able to do it in irb. Thanks.
################From 'open require' command of the RUBY bundle of
TextMate######################
#!/usr/bin/env ruby
gems_installed = begin
require 'rubygems'
true
rescue LoadError
false
end
requires = if ENV['TM_CURRENT_LINE'].to_s =~ REQUIRE_RE
["#{$2}.rb"]
else
$stdin.read.scan(REQUIRE_RE).map { |_, path| "#
{path}.rb" }
end
abort 'No includes found.' if requires.empty?
file = if requires.size > 1
choice = TextMate::UI.menu(requires) or exit
requires[choice]
else
requires.pop
end
dir = $LOAD_PATH.find { |dir| File.exist? File.join(dir, file) }
if not dir and gems_installed and gem_spec =
Gem::GemPathSearcher.new.find(file)
dir = File.join(gem_spec.full_gem_path, gem_spec.require_path)
end
if file and dir
dir.sub!(%r{\A\.(?=/|\z)}, ENV['TM_DIRECTORY']) if ENV
['TM_DIRECTORY']
file_path = File.join(dir, file)
puts file_path
TextMate.go_to :file => file_path
exit
else
puts "File not found: #{file}"
end
P.S. I know that I can do shift+cmd+D in text mate and open the file,
which obviously requires the path--but this script uses
TM_SUPPORT_PATH--and it seems like something that could be more
easilly accessed directly from RUBY. At any rate, I would rather be
able to do it in irb. Thanks.
################From 'open require' command of the RUBY bundle of
TextMate######################
#!/usr/bin/env ruby
gems_installed = begin
require 'rubygems'
true
rescue LoadError
false
end
requires = if ENV['TM_CURRENT_LINE'].to_s =~ REQUIRE_RE
["#{$2}.rb"]
else
$stdin.read.scan(REQUIRE_RE).map { |_, path| "#
{path}.rb" }
end
abort 'No includes found.' if requires.empty?
file = if requires.size > 1
choice = TextMate::UI.menu(requires) or exit
requires[choice]
else
requires.pop
end
dir = $LOAD_PATH.find { |dir| File.exist? File.join(dir, file) }
if not dir and gems_installed and gem_spec =
Gem::GemPathSearcher.new.find(file)
dir = File.join(gem_spec.full_gem_path, gem_spec.require_path)
end
if file and dir
dir.sub!(%r{\A\.(?=/|\z)}, ENV['TM_DIRECTORY']) if ENV
['TM_DIRECTORY']
file_path = File.join(dir, file)
puts file_path
TextMate.go_to :file => file_path
exit
else
puts "File not found: #{file}"
end
> and then I want to know the path to the base64.rb file,
> are the paths to previously required files stored in a global
> variable?
> I wan't to do something like:
>>> $required_files
> =>['/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
> ruby/1.8/base64.rb']
> Anyone?
> Thanks,
> Tim
> P.S. I know that I can do shift+cmd+D in text mate and open the file,
> which obviously requires the path--but this script uses
> TM_SUPPORT_PATH--and it seems like something that could be more
> easilly accessed directly from RUBY. At any rate, I would rather be
> able to do it in irb. Thanks.
> ################From 'open require' command of the RUBY bundle of
> TextMate######################
> #!/usr/bin/env ruby
> gems_installed = begin
> require 'rubygems'
> true
> rescue LoadError
> false
> end
> requires = if ENV['TM_CURRENT_LINE'].to_s =~ REQUIRE_RE
> ["#{$2}.rb"]
> else
> $stdin.read.scan(REQUIRE_RE).map { |_, path| "#
> {path}.rb" }
> end
> abort 'No includes found.' if requires.empty?
> file = if requires.size > 1
> choice = TextMate::UI.menu(requires) or exit
> requires[choice]
> else
> requires.pop
> end
> dir = $LOAD_PATH.find { |dir| File.exist? File.join(dir, file) }
> if not dir and gems_installed and gem_spec =
> Gem::GemPathSearcher.new.find(file)
> dir = File.join(gem_spec.full_gem_path, gem_spec.require_path)
> end
> if file and dir
> dir.sub!(%r{\A\.(?=/|\z)}, ENV['TM_DIRECTORY']) if ENV
> ['TM_DIRECTORY']
> file_path = File.join(dir, file)
> puts file_path
> TextMate.go_to :file => file_path
> exit
> else
> puts "File not found: #{file}"
> end