在 Alfred 工作流中运行的 Ruby 脚本中包含 Gem
Posted
技术标签:
【中文标题】在 Alfred 工作流中运行的 Ruby 脚本中包含 Gem【英文标题】:Include Gem in Ruby Script Run in Alfred Workflow 【发布时间】:2014-02-02 04:17:44 【问题描述】:我正在尝试创建一个 Alfred 工作流程,以通过 Alfred 使用热键更改音量。
控制Sonos的工作宝石在这里:https://github.com/soffes/sonos
问题是:将 gem 作为脚本的一部分简单地包含在内是行不通的。当我运行工作流程时,没有任何反应。我附上了我正在谈论的 Alfred 截图的截图。
我尝试了其他 Ruby 脚本,它们运行良好。但是任何需要宝石的东西都行不通。
我也尝试过下载 gem,只需要绝对路径,但也没有运气。
【问题讨论】:
【参考方案1】:sonos
gem 使用 savon
gem 与 Sonos api 进行 SOAP 通信。 Savon
正在登录到 stdout
,这阻止了 Alfred 工作流程的工作(它们依赖于 stdout
进行通信)。 My fork of the sonos gem 禁用日志记录,可用于您的 Alfred 工作流程。
require '/path/to/sonos'
Sonos.savon_config = log: false
speaker = Sonos::System.new.speakers.first
puts case "query"
when "play" then speaker.play and "Playing"
when "pause" then speaker.pause and "Paused"
when "up" then speaker.volume += 5 and "Turned up"
when "down" then speaker.volume -= 5 and "Turned down"
when "next" then speaker.next and "Next"
else "Unknown command"
end
【讨论】:
Alfred 中的语言下拉菜单设置为 bash 还是 Ruby? 截图如下:dropbox.com/s/mce4vmc6qdt4grf/… 如果您使用系统 ruby,那么您可以从 Alfred 工作流程的下拉菜单中选择 ruby。以上是关于在 Alfred 工作流中运行的 Ruby 脚本中包含 Gem的主要内容,如果未能解决你的问题,请参考以下文章
python 愚蠢的简单脚本通过Alfred运行,从.app或.icns文件中生成512x512图标并将其复制到Munki仓库