<div dir="ltr">-1.<div><br></div><div>Using the Method Finder, enter</div><div><br></div><div>     'hello'.  'Hello'</div><div><br></div><div>to see we already have #capitalized to do that.</div><div><br></div><div>Before introducing new API, always research existing nomenclature's.  Uncapitalization is not a common use-case, but if you want to introduce it into Squeak, I'd suggest #uncapitalized instead of two new methods named "Upshifted" and "Downshifted".  Those words describe the "procedure for obtaining a capital letter from a keyboard" (except "Downshifted," which only describes a car with a manual transmission, ready to burn rubber  :)  ).  By contrast, the #capitalized API describes the nature of the object itself.</div><div><br></div><div>Best,</div><div>  Chris</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Oct 13, 2019 at 3:34 PM <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">A new version of Collections was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Collections-ct.858.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/inbox/Collections-ct.858.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Collections-ct.858<br>
Author: ct<br>
Time: 13 October 2019, 10:33:55.310932 pm<br>
UUID: 80a9daa4-d11d-554c-8530-f4d5a1a70c8f<br>
Ancestors: Collections-pre.857<br>
<br>
Adds #withFirstCharacterUpshifted analogously to #withFirstCharacterDownshifted<br>
<br>
=============== Diff against Collections-pre.857 ===============<br>
<br>
Item was changed:<br>
  ----- Method: String>>withFirstCharacterDownshifted (in category 'converting') -----<br>
  withFirstCharacterDownshifted<br>
-       "Return a copy with the first letter downShifted"<br>
<br>
        | answer |<br>
-       <br>
        self ifEmpty: [^ self copy].<br>
        answer := self copy.<br>
        answer at: 1 put: (answer at: 1) asLowercase.<br>
+       ^ answer!<br>
-       ^ answer. !<br>
<br>
Item was added:<br>
+ ----- Method: String>>withFirstCharacterUpshifted (in category 'converting') -----<br>
+ withFirstCharacterUpshifted<br>
+ <br>
+       | answer |<br>
+       self ifEmpty: [^ self copy].<br>
+       answer := self copy.<br>
+       answer at: 1 put: (answer at: 1) asUppercase.<br>
+       ^ answer!<br>
<br>
Item was changed:<br>
  ----- Method: Symbol>>withFirstCharacterDownshifted (in category 'converting') -----<br>
  withFirstCharacterDownshifted<br>
+       "Answer an object like the receiver but with first character downshifted if necessary"<br>
-       "Answer an object like the receiver but with first character downshifted if necesary"<br>
<br>
+       ^self asString withFirstCharacterDownshifted asSymbol!<br>
-       ^self asString withFirstCharacterDownshifted asSymbol.!<br>
<br>
Item was added:<br>
+ ----- Method: Symbol>>withFirstCharacterUpshifted (in category 'converting') -----<br>
+ withFirstCharacterUpshifted<br>
+       "Answer an object like the receiver but with first character upshifted if necessary"<br>
+ <br>
+       ^self asString withFirstCharacterUpshifted asSymbol!<br>
<br>
<br>
</blockquote></div>