Feature #8846
closed
Added by matsuda (Akira Matsuda) over 11 years ago.
Updated over 11 years ago.
Description
I propose changing Module#include to a public method.
-
Background
Module#include is currently a private method.
However, the method is actually quite often used (particularly by gem library authors) for appending some features from outside of the target module, such as:
ActiveRecord::Base.send :include, MyPagination
-
Use case
% cd rails
% git grep "send[ (]:include," | wc -l
45
Files
- File deleted (
public_include.pdf)
The basic motivation behind #include (and #prepend) being private is we didn't assume that kind of coding style.
As it turned out, that coding style became popular, I'd accept make them public.
Matz.
Great :-)
Taking Rails as an example, I find that the next in line are define_method
, remove_const
, alias_method
and attr_*
As I stated in #6539, I believe these should be public also.
- Status changed from Open to Closed
Hello Marc-Andre,
On 2013/09/01 4:20, marcandre (Marc-Andre Lafortune) wrote:
Issue #8846 has been updated by marcandre (Marc-Andre Lafortune).
Great :-)
Taking Rails as an example, I find that the next in line are define_method
, remove_const
, alias_method
and attr_*
As I stated in #6539, I believe these should be public also.
#6539 is marked closed. Best to open a new issue. Regards, Martin.
Feature #8846: Publicize Module#include
https://bugs.ruby-lang.org/issues/8846#change-41506
Author: matsuda (Akira Matsuda)
Status: Open
Priority: Low
Assignee:
Category: core
Target version: current: 2.1.0
I propose changing Module#include to a public method.
-
Background
Module#include is currently a private method.
However, the method is actually quite often used (particularly by gem library authors) for appending some features from outside of the target module, such as:
ActiveRecord::Base.send :include, MyPagination
-
Use case
% cd rails
% git grep "send[ (]:include," | wc -l
45
- Related to Feature #12697: Why shouldn't Module meta programming methods be public? added
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0