[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[SOLUTION] Current Temperature (#68

Shane Emmons

2/26/2006 1:51:00 PM

# Author: Shane Emmons
#
# 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

3 Answers

James Gray

2/26/2006 4:37:00 PM

0

On Feb 26, 2006, at 7:53 AM, semmons99@gmail.com 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..."

:D

Seriously, thanks you for the submission.

James Edward Gray II



Shane Emmons

2/27/2006 4:36:00 PM

0

# Author: Shane Emmons
#
# 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.
;-)
#
# 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

Shane Emmons

2/27/2006 4:38:00 PM

0

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

# Author: Shane Emmons
#
# 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.
;-)
#
# 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