diff options
author | Benoit Daloze <eregontp@gmail.com> | 2021-02-27 13:00:26 +0100 |
---|---|---|
committer | Benoit Daloze <eregontp@gmail.com> | 2021-02-27 13:00:26 +0100 |
commit | 36dde35e029c7a6607e6c674062ce6fc7a51c0bd (patch) | |
tree | 47f9c820a93d5b9a68f7e903cc01ee607913e2dd /spec/ruby/core/module/refine_spec.rb | |
parent | dbea0be13dc1f44833eca43a73f3ab898fa27c15 (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.rb | 39 |
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 |