summaryrefslogtreecommitdiff
path: root/spec/ruby/core/module/refine_spec.rb
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2021-02-27 13:00:26 +0100
committerBenoit Daloze <eregontp@gmail.com>2021-02-27 13:00:26 +0100
commit36dde35e029c7a6607e6c674062ce6fc7a51c0bd (patch)
tree47f9c820a93d5b9a68f7e903cc01ee607913e2dd /spec/ruby/core/module/refine_spec.rb
parentdbea0be13dc1f44833eca43a73f3ab898fa27c15 (diff)
Update to ruby/spec@37e52e5
Diffstat (limited to 'spec/ruby/core/module/refine_spec.rb')
-rw-r--r--spec/ruby/core/module/refine_spec.rb39
1 files changed, 38 insertions, 1 deletions
diff --git a/spec/ruby/core/module/refine_spec.rb b/spec/ruby/core/module/refine_spec.rb
index 54217a9326..e5f65f5f96 100644
--- a/spec/ruby/core/module/refine_spec.rb
+++ b/spec/ruby/core/module/refine_spec.rb
@@ -574,6 +574,43 @@ describe "Module#refine" do
end
ruby_version_is "" ... "2.7" do
+ it "is not honored by Kernel#public_method" do
+ klass = Class.new
+ refinement = Module.new do
+ refine klass do
+ def foo; end
+ end
+ end
+
+ -> {
+ Module.new do
+ using refinement
+ klass.new.public_method(:foo)
+ end
+ }.should raise_error(NameError, /undefined method `foo'/)
+ end
+ end
+
+ ruby_version_is "2.7" do
+ it "is honored by Kernel#public_method" do
+ klass = Class.new
+ refinement = Module.new do
+ refine klass do
+ def foo; end
+ end
+ end
+
+ result = nil
+ Module.new do
+ using refinement
+ result = klass.new.public_method(:foo).class
+ end
+
+ result.should == Method
+ end
+ end
+
+ ruby_version_is "" ... "2.7" do
it "is not honored by Kernel#instance_method" do
klass = Class.new
refinement = Module.new do
@@ -592,7 +629,7 @@ describe "Module#refine" do
end
ruby_version_is "2.7" do
- it "is honored by Kernel#method" do
+ it "is honored by Kernel#instance_method" do
klass = Class.new
refinement = Module.new do
refine klass do