Broadly the code should work.
m = page.at('p.defaultAbstract').inner_text.match(/Closing Date: (\d+\/\d+\/\d+)/)
on_notice_to = Date.strptime(m[1], "%d/%m/%Y").to_s
s = page.at('table').search('td strong')
record = {
"council_reference" => s.find{|a| a.inner_text.strip == "Application No:"}.next_sibling.to_s,
"description" => s.find{|a| a.inner_text.strip == "Nature of Development:"}.next_sibling.to_s,
"address" => page.at('h2').inner_text + ", SA",
... should still match listings like:
<td style="border-top: none; border-left: none; border-right: none; border-bottom: 1px solid #e5e5e5; padding-left: 20px; padding-right: 20px;">
<h4>23 Ormond Grove, Toorak Gardens</h4>
<p><span class="defaultAbstract">Alterations and additions consisting of demolition of existing pool and rear verandah and construction of new pool, verandah, pool pavilion, decking, feature wall and fence attached to retaining wall.</span></p>
<p style="margin-top: -5px; margin-bottom: -5px;"><strong>Closing Date: </strong>09/01/2014</p>
<p><a href="http://www.burnside.sa.gov.au/Develop/Planning_Development/Development_Applications_on_Public_Notification/Category_2_Development_Applications/23_Ormond_Grove_Toorak_Gardens">View More</a></p>
</td>
... though the show pages are more detailed.