Mark Volkmann wrote:
Here is how one of my methods was pretty printed.
escape: aString
"escapes special characters in XML text"
| result |
result := ''.
aString
do: [:char | result := result
, (char caseOf: {
[$<] -> ['<'].
[$>] -> ['>'].
[$'] -> ['''].
[$"] -> ['"'].
[$&] -> ['&']}
otherwise: [char asString])].
^ result
Yikes! To my beginner eyes, that doesn't look good. What's the deal
with the excessive indentation?
BTW, comments better ways to do what this code does are welcomed. Could
I use collect for this?
You could do it like this:
YourClass >> escape: aString
"escapes a String"
|result|
result := ''.
aString do:[:char | result := result, char xmlEscaped].
^result
Character >> xmlEscaped
^self caseOf:
{
[$<] -> ['<'].
[$>] -> ['>'].
[$'] -> ['''].
[$"] -> ['"'].
[$&] -> ['&']
}
otherwise: [self asString].
The advantage is that your own methos is very short; you hide the actual
transformation in another method you do not have to care about for the
future.
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners