Hello

what is the criterion for methods to have a ! terminated variant in the 
standard ruby APIs?
For instance in String strip has a receiver-modifying counterpart but 
ljust does not.
Is it that the result fits in the same memory? (strip returns a string 
at most as long as the original while just can return a much longer one)

thanks
Jani