1

我在寒假期间给自己一些小项目,并尝试编写可用于桌面的小 geektool 脚本。我为 ruby​​ 编写了这个,它在终端中工作,但是当我在 textmate 中运行它时,我得到一个主机已关闭错误,当我将它放在 geektool 中时它不会运行。

 #!/usr/bin/ruby

require 'open-uri'
require 'nokogiri'

def fetch_xml()
  open("http://weather.yahooapis.com/forecastrss?w=2424766&u=f")
end


def parse_xml()
    source = Nokogiri::XML(fetch_xml)
    location = source.xpath("//yweather:location")
    condition = source.xpath("//item//yweather:condition")
    forecast = source.xpath("//item//yweather:forecast")
    [location[0]['city'], location[0]['region'], condition[0]['temp'].to_i, condition[0]['text'], forecast[0]['high'], forecast[0]['low']]
end


def display_weather()
  result = parse_xml()
  print "#{result}\n"
end


display_weather

它在终端中运行并给我正确的输出: ["Houston", "TX", 64, "Cloudy", "69", "63"]

但是就像我之前提到的,它不会在 textmate 中运行,并且在 geektool 中什么也没有显示。提前感谢您的帮助。

4

0 回答 0