Current Temperature (#68)


#1

Hello everyone !

Here is my solution, actually it’s my first ruby program, I just
started learning… Suggestions on how to improve my code are
welcome :slight_smile:

This is how it looks when executed, I couldn’t find where to turn
these warnings off :confused:


root@black /# ./weather.rb madrid
ignored element: {http://schemas.xmlsoap.org/wsdl/http/}binding
ignored element: {http://schemas.xmlsoap.org/wsdl/http/}operation
ignored element: {http://schemas.xmlsoap.org/wsdl/http/}urlEncoded
ignored element: {http://schemas.xmlsoap.org/wsdl/mime/}mimeXml
ignored element: {http://schemas.xmlsoap.org/wsdl/mime/}content
ignored element: {http://schemas.xmlsoap.org/wsdl/http/}address
The temperature in Madrid / Cuatro Vientos is 3 C


#!/usr/local/bin/ruby
require ‘soap/wsdlDriver’
require ‘rexml/document’

URL = ‘http://www.webservicex.net/globalweather.asmx?WSDL

process the comandline arguments

if ARGV[0] == nil
abort(“Usage: weather.rb city”)
else
city = ARGV.join(’ ')
end

soap = SOAP::WSDLDriverFactory.new(URL).create_rpc_driver
begin
weather = soap.GetWeather(:CityName => city, :CountryName => “”)

strip the first line with <? ?> stuff, else REXML wont parse

xml = weather.getWeatherResult.gsub(/(<?.*?>\n)/, ‘’)
data = REXML::Document.new(xml)

celsius degrees are in parentheses

data.elements["//Temperature"].text[/((.))/]; temp = $1
data.elements["//Location"].text[/^(.
),/]; loc = $1

show the gathered data

puts "The temperature in " + loc + " is " + temp
rescue
puts "Could not find data for your supplied city: " + city
end


Best regards,
Rudolfs


#2

Rudolfs O. removed_email_address@domain.invalid writes:

Here is my solution, actually it’s my first ruby program, I just
started learning… Suggestions on how to improve my code are
welcome :slight_smile:

This is how it looks when executed, I couldn’t find where to turn
these warnings off :confused:

$-w = nil should work.

Actually, I tried to use this webservice too, but I got so mad at it
and it’s freaking dumb semantics that I dropped that for health
reasons. Looks like you did it, though. :wink:


#3

$-w = nil should work.

Actually, I tried to use this webservice too, but I got so mad at it
and it’s freaking dumb semantics that I dropped that for health
reasons. Looks like you did it, though. :wink:


Christian N. removed_email_address@domain.invalid http://chneukirchen.org

Yay, that works, no warnings anymore :slight_smile: Where can I read more about this
magic
$-w variable ?

Regards,
Rudolfs