File: client.rb

package info (click to toggle)
ruby-soap4r 2.0.5-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,032 kB
  • sloc: ruby: 52,729; xml: 266; sh: 42; javascript: 20; makefile: 13; perl: 10
file content (44 lines) | stat: -rw-r--r-- 1,356 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
## preparing

t = Time.now
starter = Time.local(t.year,t.mon, t.day) + (24 *3600)
ender = starter + 7 * 24 *3600
lattitude = 39.0
longitude = -77.0

## accessing through dynamically generated driver

require 'soap/wsdlDriver'

params = {:maxt => false, :mint => false, :temp => true, :dew => true,
  :pop12 => false, :qpf => false, :sky => false, :snow => false,
  :wspd => false, :wdir => false, :wx => false, :waveh => false,
  :icons => false}

wsdl = "http://weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl"
drv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
drv.wiredump_dev = STDOUT if $DEBUG
dwml = drv.nDFDgen(lattitude, longitude, 'time-series', starter, ender, params)
puts dwml

require 'xsd/mapping'
data = XSD::Mapping.xml2obj(dwml).data

data.parameters.temperature.each do |temp|
  p temp.name
  p temp.value
end

## accessing through statically generated driver

# run wsdl2ruby.rb to create needed files like this;
# wsdl2ruby.rb --wsdl http://weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl --type client
require 'defaultDriver.rb'
params = WeatherParametersType.new(false, false, true, true, false, false,
  false, false, false, false, false, false, false)

drv = NdfdXMLPortType.new
drv.wiredump_dev = STDOUT if $DEBUG
dwml = drv.nDFDgen(lattitude, longitude, ProductType::TimeSeries, starter,
  ender, params)
puts dwml