Several learner-facing exercises require exclamaition-suffixed methods: issue_pass!, revoke_pass!, claim_free_popcorn!, update!, reverse! These are non-idiomatic uses of such names in the Ruby language, according to Matz:
The bang (!) does not mean “destructive” nor lack of it mean non destructive either. The bang sign means “the bang version is more dangerous than its non bang counterpart; handle with care”. Since Ruby has a lot of “destructive” methods, if bang signs follow your opinion, every Ruby program would be full of bangs, thus ugly.
Thus, in idiomatic Ruby, to suffix a method name with an exclamation (bang), there needs to be a corresponding method similarly named without an exclamation. However, no such corresponding method exists in these examples.
In exercism/ruby#1801, I propose we rename those methods to their non-bang forms across stubs, unit tests, and exemplar implementations (issue_pass, revoke_pass, claim_free_popcorn, update, reverse). The implementations themselves remain behaviourally identical; only their public signatures and matching expectations were adjusted to drop the non-idiomatic suffix.
Then, Ruby learners can work with idiomatic Ruby naming. Clarity is improved without altering the core exercises.