通过Ruby避免AppleScript:rb-appscript或rubyosa?

时间:2009-08-21 03:24:52

标签: ruby macos applescript rb-appscript rubyosa

你好Mac ruby​​ists和AppleScript仇恨者,

对于那些对rubyosa和rb-appscript都有经验的人,我希望听到每个人的优点和缺点,你决定坚持哪一个,以及你推荐哪一个非完全非-AppleScript精明的红宝石老人。另外,我还有其他选择吗?

另外,欢迎任何处理AppleScript方面的提示(例如浏览词典等)。

查看一些示例代码也有很大帮助。

4 个答案:

答案 0 :(得分:46)

答案 1 :(得分:5)

我没有尝试过RubyOSA,但我在rb-appscript取得了很大的成功。它对我来说非常有效,并且比直接使用AppleScript更好。

你见过this thread comparing the two吗?它有一个很好的详细答案,注意到差异。

答案 2 :(得分:3)

Apple通过名为“Scripting Bridge”的框架提供对Cocoa兼容语言的脚本支持。我通过RubyCocoa / MacRuby使用它来满足我的脚本需求。它包含在盒子里,所以非常方便。

require 'osx/cocoa'
require_framework 'ScriptingBridge'
iTunes = SBApplication.applicationWithBundleIdentifier 'com.apple.iTunes'
puts iTunes.selection.name

我在Scripting Bridge中发现的唯一主要烦恼是你必须使用这样的捆绑ID而不是名字,但对我来说这对我来说并不是什么大问题。它也只包含在10.5中,所以如果你需要Panther或Tiger支持,你需要其中一个。

在其他两个版本中,rb-appscript仍在积极开发,而RubyOSA在几年前被有效冻结,所以我可能会选择前者。随着Ruby 2,MacRuby和其他新实现带来语言的变化,rb-appscript更有可能在未来发挥作用。否则他们非常相似。我基本上将rb-appscript视为RubyOSA的新版本,尽管从技术上讲它并不正确。

答案 3 :(得分:2)

简短回答:rb-appscript。

因为Scripting Bridge似乎很乱,RubyOSA已经停止使用。