From 982443e6e373f5a3ac22ee495909cb9adffcd08d Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Fri, 18 Dec 2020 14:12:42 +0900 Subject: Revert "Better cooperation between public/protected/private with attr* and alias_method" This reverts commit 81739ad4fdfcc86a769056fec352f27c686fba1b. --- spec/ruby/core/main/fixtures/classes.rb | 8 ------ spec/ruby/core/main/private_spec.rb | 31 ++++------------------- spec/ruby/core/main/public_spec.rb | 27 +++----------------- spec/ruby/core/module/alias_method_spec.rb | 15 ++---------- spec/ruby/core/module/attr_accessor_spec.rb | 16 ------------ spec/ruby/core/module/attr_reader_spec.rb | 16 ------------ spec/ruby/core/module/attr_spec.rb | 20 --------------- spec/ruby/core/module/attr_writer_spec.rb | 16 ------------ spec/ruby/core/module/shared/set_visibility.rb | 34 -------------------------- 9 files changed, 10 insertions(+), 173 deletions(-) (limited to 'spec') diff --git a/spec/ruby/core/main/fixtures/classes.rb b/spec/ruby/core/main/fixtures/classes.rb index 757cee4e4a..6aba948ce0 100644 --- a/spec/ruby/core/main/fixtures/classes.rb +++ b/spec/ruby/core/main/fixtures/classes.rb @@ -13,14 +13,6 @@ def main_public_method end public :main_public_method -def main_public_method2 -end -public :main_public_method2 - def main_private_method end private :main_private_method - -def main_private_method2 -end -private :main_private_method2 diff --git a/spec/ruby/core/main/private_spec.rb b/spec/ruby/core/main/private_spec.rb index 78c5d287d4..e34e0c7b7b 100644 --- a/spec/ruby/core/main/private_spec.rb +++ b/spec/ruby/core/main/private_spec.rb @@ -4,41 +4,20 @@ require_relative 'fixtures/classes' describe "main#private" do after :each do Object.send(:public, :main_public_method) - Object.send(:public, :main_public_method2) end - context "when single argument is passed and it is not an array" do - it "sets the visibility of the given methods to private" do - eval "private :main_public_method", TOPLEVEL_BINDING - Object.should have_private_method(:main_public_method) - end - end - - context "when multiple arguments are passed" do - it "sets the visibility of the given methods to private" do - eval "private :main_public_method, :main_public_method2", TOPLEVEL_BINDING - Object.should have_private_method(:main_public_method) - Object.should have_private_method(:main_public_method2) - end - end - - ruby_version_is "3.0" do - context "when single argument is passed and is an array" do - it "sets the visibility of the given methods to private" do - eval "private [:main_public_method, :main_public_method2]", TOPLEVEL_BINDING - Object.should have_private_method(:main_public_method) - Object.should have_private_method(:main_public_method2) - end - end + it "sets the visibility of the given method to private" do + eval "private :main_public_method", TOPLEVEL_BINDING + Object.should have_private_method(:main_public_method) end it "returns Object" do eval("private :main_public_method", TOPLEVEL_BINDING).should equal(Object) end - it "raises a NameError when at least one of given method names is undefined" do + it "raises a NameError when given an undefined name" do -> do - eval "private :main_public_method, :main_undefined_method", TOPLEVEL_BINDING + eval "private :main_undefined_method", TOPLEVEL_BINDING end.should raise_error(NameError) end end diff --git a/spec/ruby/core/main/public_spec.rb b/spec/ruby/core/main/public_spec.rb index bfc27a9e80..afe25c705a 100644 --- a/spec/ruby/core/main/public_spec.rb +++ b/spec/ruby/core/main/public_spec.rb @@ -4,32 +4,11 @@ require_relative 'fixtures/classes' describe "main#public" do after :each do Object.send(:private, :main_private_method) - Object.send(:private, :main_private_method2) end - context "when single argument is passed and it is not an array" do - it "sets the visibility of the given methods to public" do - eval "public :main_private_method", TOPLEVEL_BINDING - Object.should_not have_private_method(:main_private_method) - end - end - - context "when multiple arguments are passed" do - it "sets the visibility of the given methods to public" do - eval "public :main_private_method, :main_private_method2", TOPLEVEL_BINDING - Object.should_not have_private_method(:main_private_method) - Object.should_not have_private_method(:main_private_method2) - end - end - - ruby_version_is "3.0" do - context "when single argument is passed and is an array" do - it "sets the visibility of the given methods to public" do - eval "public [:main_private_method, :main_private_method2]", TOPLEVEL_BINDING - Object.should_not have_private_method(:main_private_method) - Object.should_not have_private_method(:main_private_method2) - end - end + it "sets the visibility of the given method to public" do + eval "public :main_private_method", TOPLEVEL_BINDING + Object.should_not have_private_method(:main_private_method) end it "returns Object" do diff --git a/spec/ruby/core/module/alias_method_spec.rb b/spec/ruby/core/module/alias_method_spec.rb index 5d3d0c23d9..742e289a3f 100644 --- a/spec/ruby/core/module/alias_method_spec.rb +++ b/spec/ruby/core/module/alias_method_spec.rb @@ -85,19 +85,8 @@ describe "Module#alias_method" do Module.should have_public_instance_method(:alias_method, false) end - describe "returned value" do - ruby_version_is ""..."3.0" do - it "returns self" do - @class.send(:alias_method, :checking_return_value, :public_one).should equal(@class) - end - end - - ruby_version_is "3.0" do - it "returns symbol of the defined method name" do - @class.send(:alias_method, :checking_return_value, :public_one).should equal(:checking_return_value) - @class.send(:alias_method, 'checking_return_value', :public_one).should equal(:checking_return_value) - end - end + it "returns self" do + @class.send(:alias_method, :checking_return_value, :public_one).should equal(@class) end it "works in module" do diff --git a/spec/ruby/core/module/attr_accessor_spec.rb b/spec/ruby/core/module/attr_accessor_spec.rb index 665a9346bd..6a749341be 100644 --- a/spec/ruby/core/module/attr_accessor_spec.rb +++ b/spec/ruby/core/module/attr_accessor_spec.rb @@ -67,22 +67,6 @@ describe "Module#attr_accessor" do Module.should have_public_instance_method(:attr_accessor, false) end - ruby_version_is ""..."3.0" do - it "returns nil" do - Class.new do - (attr_accessor :foo, 'bar').should == nil - end - end - end - - ruby_version_is "3.0" do - it "returns an array of defined methods names as symbols" do - Class.new do - (attr_accessor :foo, 'bar').should == [:foo, :foo=, :bar, :bar=] - end - end - end - describe "on immediates" do before :each do class Fixnum diff --git a/spec/ruby/core/module/attr_reader_spec.rb b/spec/ruby/core/module/attr_reader_spec.rb index e16b7ba2e3..238e3db9ea 100644 --- a/spec/ruby/core/module/attr_reader_spec.rb +++ b/spec/ruby/core/module/attr_reader_spec.rb @@ -61,20 +61,4 @@ describe "Module#attr_reader" do it "is a public method" do Module.should have_public_instance_method(:attr_reader, false) end - - ruby_version_is ""..."3.0" do - it "returns nil" do - Class.new do - (attr_reader :foo, 'bar').should == nil - end - end - end - - ruby_version_is "3.0" do - it "returns an array of defined methods names as symbols" do - Class.new do - (attr_reader :foo, 'bar').should == [:foo, :bar] - end - end - end end diff --git a/spec/ruby/core/module/attr_spec.rb b/spec/ruby/core/module/attr_spec.rb index 060d072f27..8b91e77658 100644 --- a/spec/ruby/core/module/attr_spec.rb +++ b/spec/ruby/core/module/attr_spec.rb @@ -145,24 +145,4 @@ describe "Module#attr" do it "is a public method" do Module.should have_public_instance_method(:attr, false) end - - ruby_version_is ""..."3.0" do - it "returns nil" do - Class.new do - (attr :foo, 'bar').should == nil - (attr :baz, false).should == nil - (attr :qux, true).should == nil - end - end - end - - ruby_version_is "3.0" do - it "returns an array of defined methods names as symbols" do - Class.new do - (attr :foo, 'bar').should == [:foo, :bar] - (attr :baz, false).should == [:baz] - (attr :qux, true).should == [:qux, :qux=] - end - end - end end diff --git a/spec/ruby/core/module/attr_writer_spec.rb b/spec/ruby/core/module/attr_writer_spec.rb index 59d8b7bf53..e4b193a9d8 100644 --- a/spec/ruby/core/module/attr_writer_spec.rb +++ b/spec/ruby/core/module/attr_writer_spec.rb @@ -61,20 +61,4 @@ describe "Module#attr_writer" do it "is a public method" do Module.should have_public_instance_method(:attr_writer, false) end - - ruby_version_is ""..."3.0" do - it "returns nil" do - Class.new do - (attr_writer :foo, 'bar').should == nil - end - end - end - - ruby_version_is "3.0" do - it "returns an array of defined methods names as symbols" do - Class.new do - (attr_writer :foo, 'bar').should == [:foo=, :bar=] - end - end - end end diff --git a/spec/ruby/core/module/shared/set_visibility.rb b/spec/ruby/core/module/shared/set_visibility.rb index 9f31e230ca..a04b1a54a0 100644 --- a/spec/ruby/core/module/shared/set_visibility.rb +++ b/spec/ruby/core/module/shared/set_visibility.rb @@ -6,40 +6,6 @@ describe :set_visibility, shared: true do end describe "with argument" do - describe "one or more arguments" do - it "sets visibility of given method names" do - visibility = @method - old_visibility = [:protected, :private].find {|vis| vis != visibility } - - mod = Module.new { - send old_visibility - def test1() end - def test2() end - send visibility, :test1, :test2 - } - mod.should send(:"have_#{visibility}_instance_method", :test1, false) - mod.should send(:"have_#{visibility}_instance_method", :test2, false) - end - end - - ruby_version_is "3.0" do - describe "array as a single argument" do - it "sets visibility of given method names" do - visibility = @method - old_visibility = [:protected, :private].find {|vis| vis != visibility } - - mod = Module.new { - send old_visibility - def test1() end - def test2() end - send visibility, [:test1, :test2] - } - mod.should send(:"have_#{visibility}_instance_method", :test1, false) - mod.should send(:"have_#{visibility}_instance_method", :test2, false) - end - end - end - it "does not clone method from the ancestor when setting to the same visibility in a child" do visibility = @method parent = Module.new { -- cgit v1.2.3