This has been covered before ( http://lists.macromates.com/textmate-dev/2009-May/013933.html ), so I'm not hopfeul, but I thought it was worth asking again, in case anything has changed. Probably not.
The responders to the thread linked above recommend writing Ruby modules and stuff, which I do when I'm working on a bundle, but what if I have a bundle and I want to call another bundle's commands?
Fortunately, I'm in control of both bundles, but for organizational and responsibility reasons, I don't want to combine them. One is very utilitarian (basic FTP) and the other is extremely specific (stuff related to a single project I work on, has absolutely no relevance to anything outside of the project). The good news is that I already have my bundles set up to be somewhat modular/class-driven.
I realize that doing this creates dependencies between bundles, but I'm OK with this, and feel it's better than recreating my FTP commands in another bundle.
One thought I had would be to get the TM_BUNDLE_SUPPORT value, pop off the bundle name and replace it with the bundle name of the target, and get to the Ruby file I need. But then...wouldn't any TM_BUNDLE_SUPPORT values used in the other bundle's scripts evalulate to the wrong place?
Would it be better to find a place for such universally appealing ruby files outside of TextMate? Should I learn how to write plugins, and/or deposit code into the SUPPORT_PATH?
The original poster's idea seems close to my idea. But it would be sweet to be able to do something like:
require ENV['TM_SUPPORT_PATH'] + '/lib/bundle_access' BundleAccess.executeCommand("Some Bundle", "Some Command", argin)
Or something that could safely instantiate Ruby objects from other bundles to allow them to be used in your bundle without mucking with the BUNDLE_SUPPORT value.
I don't know...just spitballing.
Thanks, Dru