Я хотел бы использовать MacRuby со ScriptingBridge вместо AppleScript для управления приложениями Mac, которые поддерживают AppleScript. Раньше я делал это с помощью appscript, который фактически устарел, поэтому переместил мост MacRuby и сценариев .
Единственная проблема заключается в том, что фреймворк ScriptingBridge загружается примерно за секунду, даже на быстрой машине с быстрым SSD. Например, этот простой скрипт выполняется примерно за 0,9 секунды, при этом почти все время уходит на загрузку фреймворка ScriptingBridge:
#!/usr/bin/env macruby
framework "ScriptingBridge"
textedit = SBApplication.applicationWithBundleIdentifier("com.apple.TextEdit")
textedit.activate
Эквивалентный osascript запускается примерно 70 миллисекунд, и py-appscript раньше давал такое же время:
osascript -e 'tell application "TextEdit" to activate'
Есть ли простой способ связать/скомпилировать/сжать сценарий MacRuby/ScriptingBridge во что-то, что запускается быстрее?
Я попытался использовать macrubyc для объединения скрипта в автономный исполняемый файл, но полученный исполняемый файл не работает намного быстрее, чем скрипт при обычном запуске, и все еще занимает около секунды для запуска.
(Моя догадка — нет, так как этап компиляции, такой как macrubyc, не может легко увидеть, к каким частям фреймворка будет обращаться скрипт, что затрудняет оптимизацию.)