<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div>Hi Folks<br></div><div><br></div><div>I am refactoring/improving the DocToCustomHelp  class.<br></div><div><br></div><div>As I create CustomHelp subclasses , I have to account for name collisions on new class names.<br></div><div><br></div><div>I figure append an integer asWords and see what sticks, so If I have a<br></div><div>FooHelp, I need to create a FooOneHelp.</div><div><br></div><div>I have this ugly bit of cruft:</div><div><br></div><div><br></div><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>createValidClassName: aString<br></div><div> |cn i available|<br></div><div> cn := aString asCamelCase.<br></div><div> (cn endsWith:'Help')<br></div><div>    ifFalse:[cn := cn , 'Help'].<br></div><div> available := false.<br></div><div> i := 1.<br></div><div>[i < 10 and:(available not)] whileTrue: [<br></div><div>  (Smalltalk at: cn ifAbsent:[available := true])<br></div><div>     ifTrue:[i := i + 1]<br></div><div>    ifFalse:[<br></div><div>         cn := aString,(i asWords copyReplaceAll:'-' with:'') asCamelCase.<br></div><div>         (cn endsWith:'Help')<br></div><div>            ifFalse:[cn := cn , 'Help']]].<br></div><div>    (i >=10)<br></div><div>self error:'createValidClassName barfs'.<br></div></div></blockquote><div><br></div><div>Thanks for your time.<br></div><div><br></div></div><br></body></html>