From: Hew Wolff <hewwolff@sonic.net>
Date: April 21, 2006 6:52:03 PM CDT
To: submission@rubyquiz.com
Subject: Please Forward: Ruby Quiz SubmissionI read the newsgroup, whose connection to the mailing list appears to be broken. Thanks for the puzzle...
Hew Wolff
http://www.hewwolff.org----
class String
# Shuffle characters, leaving first and last the same.
def shuffleMiddle!
# Swap a random character into last place, then next to last...
(length - 2).downto(1) do |i|
j = rand(i) + 1
self[i], self[j] = self[j], self[i]
end
self
enddef shuffleWords
scan(/([^a-zA-Z]*)([a-zA-Z]*)/).collect do |punctuation, word|
punctuation + word.shuffleMiddle!
end.join
end
endtext = "They say never apologize, never explain, and I can't disagree."
puts text.shuffleWords
···
Begin forwarded message: