def aex( *symbols )
symbols.flatten!
info = QuoteData.new
symbols = symbols.dup
symbols.each do |symbol|
url = AEX_URL + '?taal=en&alf=' + symbol
aex = URI.parse( url )
host = aex.host
path = aex.path
query = aex.query
Net::HTTP::Proxy( *Finance::proxy_data ).start( host, 80 ) do |http|
if $DEBUG
$stderr.printf( "Getting http://%s%s?%s ...\n",
host, path, query )
end
response = http.get( path + '?' + query )
body = response.body
fields = body.scan( /<td>\r?\n(\d[^<]*?)\r?\n/i ).flatten.
map { |field| field.strip }
fields.delete_at( 13 )
fields.delete_at( 11 )
fields.delete_at( 9 )
fields.delete_at( 7 )
fields.delete_at( 4 )
info[symbol] = Hash[ *LABELS.zip( fields ).flatten ]
unless info[symbol][:last]
info[symbol][:success] = false
next
end
info[symbol][:date] = info[symbol][:time].dup
info[symbol][:date].sub!( /\s\d{2}:\d{2}$/, '' )
info[symbol][:time].sub!( /^\d{2}\s\w{3}\s\d{4}\s/, '' )
date = info[symbol][:date].split( /\s/ )
info[symbol][:date] = [ date[1], date[0], date[2] ].join( '/' )
info[symbol][:success] = true
info[symbol][:price] = info[symbol][:last]
info[symbol][:offer] = info[symbol][:ask]
info[symbol][:exchange] = 'Amsterdam Euronext eXchange'
info[symbol][:method] = :aex
info[symbol][:name] = symbol
info[symbol][:currency] = 'EUR'
end
end
convert( info, Finance::Currency::DEFAULT_CURRENCY_FIELDS )
yield info if block_given?
info
end