Actions
Feature #8571
closedRefinement inheritance by Module#include
Description
Currently, refinements are not inherited by Module#include.
How about to make using to activate refinements in the ancestors of the specified module?
For example,
module A
refine X do ... end
refine Y do ... end
end
module B
refine Z do ... end
end
module C
include A
include B
end
using C
Refinements in A and B are activated here.¶
In this code,
using C
is equivalent to
C.ancestors.reverse_each { |m| using m }
This feature enables you to distribute refinements into different modules, and then package the refinements into one module.
Please note that Module#include does't activate refinements in the argument module.
For example,
module C
include A
include B
# Refinements in A and B are not activated here.
end
I've implemented this feature, and have attached the patch.
Actions
Like0
Like0Like0Like0