From: James Edward Gray II Date: 2005-04-06T04:23:13+09:00 Subject: Re: [SOLUTION] Code Cleaning (#26) Here's my solution to the first script. See Thursday's summary for how it came about... James Edward Gray II #!/usr/local/bin/ruby # wiki.cgi require 'cgi' HOME = 'HomePage' LINK = 'wiki.cgi?name=%s' query = CGI.new 'html4' # fetch query data page_name = if query['name'] == '' then HOME else query['name'] end page_changes = query['changes'] # fetch file content for this page, unless it's a new page content = File.read(page_name) rescue content = '' # save page changes, if needed unless page_changes == '' content = CGI.escapeHTML(page_changes) File.open(page_name, 'w') { |f| f.write content } end # output requested page query.instance_eval do out do h1 { page_name } + a(LINK % HOME) { HOME } + pre do # content area content.gsub(/([A-Z]\w+){2}/) do |match| a(LINK % match) { match } end end + form('get') do # update from textarea('changes') { content } + hidden('name', page_name) + submit end end end