I just think some methods should add a trailing exclamation mark, which are: String#clear String#concat String#insert String#replace String#setbyte Array#clear Array#concat Array#delete Array#delete_at Array#delete_if Array#fill Array#insert Array#pop Array#push Array#replace Array#shift Array#unshift Hash#clear Hash#delete Hash#delete_if Hash#replace Hash#shift Hash#store Hash#update (synonym for Hash#merge!, which has a bang!) These methods all alert the receiver in place. They have no trailing exclamation mark because there are no methods of the same name which return a modified copy of the object only. I don't think a bang is an alarm to tell you "there is a same name method", a bang should be an alam "it will change your object, be carefull!" So string.clear should be string.clear!, even if there's no "clear" method which doesn't alert the receiver. I think it's logical. -- Posted via http://www.ruby-forum.com/.