Issue #5009 has been updated by Michael Edgar.


This is a common misconception about the use of bang methods in Ruby. Bang does not indicate that a method mutates its receiver, merely that it should be used with caution.

A good writeup on this can be found here: http://dablog.rubypal.com/2007/8/15/bang-methods-or-danger-will-rubyist

From the conclusion:

> If you let go of the notion that ! means destructive, and if you think through the naming and pairing of dangerous and non-dangerous methods, you???ll see how valuable a flag the ! can be.
----------------------------------------
Feature #5009: Bang method (!) consistency in Ruby 2 API
http://redmine.ruby-lang.org/issues/5009

Author: Suraj Kurapati
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 2.0


=begin
Hello,

In Ruby 2, please use bang methods (those that end with !) consistently in the API.  For example, the Ruby 1 API inconsistently names the following "destructive" methods plainly (without a bang):

* Array#push
* Array#pop
* Array#shift
* Array#unshift
* Array#concat
* Array#delete
* Array#clear

Please convert these into bang methods in the Ruby 2 API.

Thanks for your consideration.
=end


-- 
http://redmine.ruby-lang.org