|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a reaction to a [bug] we hit in web-console. The cause of it was
a `Kernel` extension called `#console` that was public and was fighting
over Railties with console block to be run on `rails console`. We solved
it by making the method private. We did that through `module_function`
so `::Kernel.console` can be invoked even in `BasicObject`.
I'm proposing to make most of the core Active Support `Kernel`
extensions `module_function` as well. Those are currently public and we
are polluting every `Object` public interface with them.
```ruby
>> Object.new.respond_to? :silence_warnings
=> true
>> Object.new.respond_to? :with_warnings
=> true
>> Object.new.respond_to? :enable_warnings
=> true
>> Object.new.respond_to? :suppress
=> true
``
Some extensions like `Kernel#class_eval` should be public, but most of
them don't really need to be.
[bug]: https://github.com/rails/web-console/issues/184
|