Я предлагаю вам выучить AppleScript хотя бы на один день. Дело в том, что взаимодействие между GUI-приложениями в OS X осуществляется через Apple Events, конструкция которого соответствует структуре его основного языка AppleScript. Существует множество мостов, которые позволяют вам вызывать Apple Events с разных языков, но сначала вам нужно понять концепцию Apple Events. Так что, по крайней мере, вам нужно немного познакомиться с AppleScript.
Это так же, как в случае с Какао: вы можете кодировать приложения Какао на многих языках, но большая часть документации и концепции основана на Objective-C. Поэтому вам необходимо хотя бы немного ознакомиться с Objective-C, прежде чем кодировать Какао на других языках.
Итак, позвольте мне дать вам очень очень краткий обзор системы Apple Events / AppleScript.
Каждое приложение реализует объектно-ориентированную систему и представляет ее внешнему миру в виде словаря , который можно прочитать с помощью AppleScript Editor. Откройте редактор AppleScript, выберите «Файл» → «Открыть словарь» и выберите «iTunes». Там вы видите список команд, классов, методов в этих классах и т. Д. Затем из AppleScript, Ruby или Lua вы получаете доступ к этим объектам и методам.
Предположим, вы хотите переименовать выбранные записи iTunes из «A-B» в «B-A». Тогда код будет
set text item delimiters to "-"
tell application "iTunes" -- following statements are targeted to iTunes
repeat with entry in selection -- "selection" is a concept implemented in iTunes
set s to name of entry -- copy the name of entry to a local string s
set x to text items of s -- split the string s to a list according to text item delimiters
set y to {item 2 of x, item 1 of x} -- construct another list
set name of entry to y as string -- set the name. Note that "as string" adds the delimiters
end repeat
end tell
Да, грамматика AppleScript немного странная, но она в основном имеет однозначное соответствие с обычным императивным языком. Просто обратитесь к официальному языку , если вы не уверены. А текстовые операции в AppleScript без хорошего OSAX (системы расширений AppleScript) являются рутиной. Поэтому я согласен, что неплохо сначала ознакомиться с концепцией AppleScript, а затем использовать ее на Ruby или на любом из ваших любимых языков.
Но помните, откройте словарь в редакторе AppleScript, потому что именно здесь вы найдете то, что каждое приложение реализует и предоставляет системе!