mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Specify refinement inheritance by Module#include.
[ruby-core:79880] [Bug #13271] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3616b07c9a
commit
476f9b6388
1 changed files with 23 additions and 0 deletions
|
@ -256,6 +256,29 @@ method lookup.
|
||||||
|
|
||||||
This behavior may be changed in the future.
|
This behavior may be changed in the future.
|
||||||
|
|
||||||
|
== Refinement inheritance by Module#include
|
||||||
|
|
||||||
|
When a module X is included into a module Y, Y inherits refinments from X.
|
||||||
|
|
||||||
|
For exmaple, C inherits refinements from A and B in the following code:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Refinements in descendents have higher precedence than those of ancestors.
|
||||||
|
|
||||||
== Further Reading
|
== Further Reading
|
||||||
|
|
||||||
See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RefinementsSpec for the
|
See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RefinementsSpec for the
|
||||||
|
|
Loading…
Add table
Reference in a new issue