Issue #10924 has been updated by Robert A. Heiler.


I think that, the name aside, this would be a wonderful example for different
namespaces and restoring to the old default afterwards.

That way, you could undefine String#b for the purpose of only your gem alone here
but leave it untouched otherwise.

Just like your code would be in its own little namespace whereas for everywhere
else outside, String#b works fine as it would be.

----------------------------------------
Bug #10924: String#b
https://bugs.ruby-lang.org/issues/10924#change-51731

* Author: Thomas Sawyer
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.1.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Well, I just learned about the String#b [method](http://ruby-doc.org/core-2.1.0/String.html#methodi-b) today. And of course it breaks the [Radix](https://github.com/rubyworks/radix) gem :-(  Honestly, back when I create Radix in 2009 I could not have imagined a safer bet than `#b` for an extension if I tried. And yet sure enough, Ruby makes `String#b` an official method for converting to ASCII 8-bit. Is it really such a popular method to get such a short name? I mean `String#ascii` wouldn't have been a better choice? To go along with `#ascii_only`?

Okay, so much for my mini-rant. So bottom line, can I ask that this method not be called `#b`? Even putting the conflict with Radix aside, I think it's a pretty bad name for a standard Ruby method. Just read it: "#b". Do you have any idea what that does without looking it up in the documentation? Nope, no way. 

(P.S. Bug or feature, not sure what to label it. Left it a bug b/c it did [break people's code](https://github.com/rubyworks/radix/issues/10).)



-- 
https://bugs.ruby-lang.org/