Help choose the location of the 2007 Wikitravel Get-together!

User:Jpatokal/listing.rb Travel Guide
From Wikitravel
#!/usr/local/bin/ruby
#
# listing.rb
# Converts Manual of Style listings to the tag listing format.
# By User:Jpatokal in 2006
#
# Usage: ./listing.rb <inputfile>
#
# Expects the following format:
# ==Heading==
# * '''Name''', Address (''Directions''), tel. Phone, [Url]. Description.
infile = File.new(ARGV[0], "r")
linearray = infile.readlines
tag = "other"
linearray.each{|i|
if i =~ /^==[^=]/
tag = i.downcase.chomp.delete "="
end
i.gsub!('tel.', 'tel')
# match "*", but don't match "**", "* <"
if i =~ /^\* ?[^ <*]/
name = "Unknown"
url, address, dir, phone = nil
if i.index('. ')
head = i[0, i.index('. ')]
foot = i[i.index('. ') + 1, i.length].strip
else
head = i
foot = ""
end
#puts "HEAD #{head}\nFOOT #{foot}"
head.split(/[,*]/).each do |s|
s.strip!
#puts "S #{s}"
case s
# '''Name'''
when /^'/
name = s.delete "\'"
# [Url]
when /^\[/
url = s.delete "[] "
# tel Phone, phone Phone
when /^[Tt]el/, /^[Pp]hone/
s.gsub!(/[Tt]el/, "")
s.gsub!(/[Ph]one/, "")
phone = s.strip
when ""
# do nothing
# Address (''Directions'')
else
s.gsub!(/\(''(.*)''\)/) {|match|
dir = $1
""
}
address = s.strip
end
end
listing = "* <#{tag} name=\"#{name}\""
listing += " address=\"#{address}\"" if address
listing += " directions=\"#{dir}\"" if dir
listing += " phone=\"#{phone}\"" if phone
listing += " url=\"#{url}\"" if url
listing += ">#{foot}</#{tag}>"
puts listing
else
puts i
end
}
infile.close