Ruby浪漫?如何从自身更新脚本

当我使用我的极客能力“浪漫”时,我的妻子喜欢它,所以我有一个想法,可以在她的Mac上安装一个ruby脚本,它会在一整天内发送她的报价和小笔记.

我已经发现我将使用GeekTool在后台运行脚本,我将使用growlnotify来显示消息.

现在我需要的是一种从Web更新脚本的方法,以防我更改它.

除了如何与控制台交互之外,我基本上都不了解
ruby.

我有2个目标:
1)有一个带有消息的XML文件.这需要可以从互联网更新,但如果她没有网络连接,则必须是本地的.
2)在我发现错误或想要改进它的情况下,从互联网更新脚本本身.

现在我知道如果我愿意,我显然可以手动更新她Mac上的脚本,但我认为这是学习更高级ruby的好方法.

优先级1将是XML文件,如果更改,则能够下载新版本.我可以使用哪些ruby来下载文件并将其保存到本地的某个位置?

我以前用过hpricot,那会是一个好方法吗?

注意:我妻子的mac是Macbook,运行Leopard(但可能是10.4,而不是100%肯定).

编辑

如果有人对脚本的第一个版本感兴趣,你可以找到它here

附: – >该脚本的第一个版本实际上并没有更新,它只是更新messages.xml文件,而这就是全部.

最佳答案

require 'net/http'

Net::HTTP.start("your.webhost.com") { |http|
  resp = http.get("/messages/messages.xml")
  open("messages.xml", "wb") { |file|
    file.write(resp.body)
  }
}

这样的事情应该有效.您也可以下载Ruby脚本,然后调用.

exec("ruby script2.rb")
#no further lines in script1 will execute
点赞