Current Temperature (#68)


#1

Author: Shane E.

Allows retrieval of current temperature information. Pretty simple

and straight forward. Uses match to extract data from the xml

document

that is returned. Sorry about the long lines, but I like putting as

much code in one line as possible.

usage: ruby current_temp.rb [zipcode|other]

zipcode: US zipcode

other: country code information. example: SPXX0050 for Madrid,

Spain

require ‘net/http’

begin
weather_info = Net::HTTP.get( “xml.weather.yahoo.com”,
“/forecastrss?p=”.concat( ARGV[ 0 ] ) )
print “The temperature in “, weather_info.match( /Yahoo! Weather
for (.*)</ )[ 1 ], " is “, weather_info.match(
/<yweather:condition.*temp=”(\d+)”/ )[ 1 ], " degrees “,
weather_info.match( /<yweather:units temperature=”(.)”/ )[ 1 ], “.\n”
rescue
print "Information for “, ARGV[ 0 ], " was not found or
unavailable.”
end


#2

On Feb 26, 2006, at 7:53 AM, removed_email_address@domain.invalid wrote:

Sorry about the long lines, but I like putting as much code in one
line as possible.

Repeat after me:

“Horizontal scrolling is bad… Horizontal scrolling is bad…
Horizontal scrolling is bad…”

:smiley:

Seriously, thanks you for the submission.

James Edward G. II


#3

Author: Shane E.

Allows retrieval of current temperature information. Pretty simple

and straight forward. Uses match to extract data from the xml

document that is returned. Adjusted for easier horizontal reading.

:wink:

usage: ruby current_temp.rb [zipcode|other]

zipcode: US zipcode

other: country code information.

example: SPXX0050 for Madrid, Spain

require ‘net/http’

ARGV[ 0 ] = ‘48601’

begin
info = Net::HTTP.get(
xml.weather.yahoo.com”, “/forecastrss?p=”.concat( ARGV[ 0 ] )
)

location    = info.match( /Yahoo! Weather for (.*)</ )[ 1 ]
temperature = info.match( /<yweather:condition.*temp="(\d+)"/ )[ 1

]
measured_in = info.match( /<yweather:units temperature="(.)"/ )[ 1
]

print "The temperature in ",
    location, " is ", temperature, " degrees ", measured_in, ".\n"

rescue
print “Information for #{ ARGV[ 0 ] } was not found or
unavailable.\n”
end


#4

** Sorry had my test code still in there for my location

Author: Shane E.

Allows retrieval of current temperature information. Pretty simple

and straight forward. Uses match to extract data from the xml

document that is returned. Adjusted for easier horizontal reading.

:wink:

usage: ruby current_temp.rb [zipcode|other]

zipcode: US zipcode

other: country code information.

example: SPXX0050 for Madrid, Spain

require ‘net/http’

begin
info = Net::HTTP.get(
xml.weather.yahoo.com”, “/forecastrss?p=”.concat( ARGV[ 0 ] )
)

location    = info.match( /Yahoo! Weather for (.*)</ )[ 1 ]
temperature = info.match( /<yweather:condition.*temp="(\d+)"/ )[ 1

]
measured_in = info.match( /<yweather:units temperature="(.)"/ )[ 1
]

print "The temperature in ",
    location, " is ", temperature, " degrees ", measured_in, ".\n"

rescue
print “Information for #{ ARGV[ 0 ] } was not found or
unavailable.\n”
end


#5

On Feb 27, 2006, at 10:38 AM, removed_email_address@domain.invalid wrote:

… Adjusted for easier horizontal reading. :wink:

I was just giving you a hard time, but that’s so much for making the
change anyway. This version is 1,000 times sexier, in my opinion. :wink:

James Edward G. II