summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/module/shared/set_visibility.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/module/shared/set_visibility.rb')
-rw-r--r--spec/rubyspec/core/module/shared/set_visibility.rb135
1 files changed, 0 insertions, 135 deletions
diff --git a/spec/rubyspec/core/module/shared/set_visibility.rb b/spec/rubyspec/core/module/shared/set_visibility.rb
deleted file mode 100644
index c39d59e05d..0000000000
--- a/spec/rubyspec/core/module/shared/set_visibility.rb
+++ /dev/null
@@ -1,135 +0,0 @@
-# -*- encoding: us-ascii -*-
-
-describe :set_visibility, shared: true do
- it "is a private method" do
- Module.should have_private_instance_method(@method, false)
- end
-
- describe "without arguments" do
- it "sets visibility to following method definitions" do
- visibility = @method
- mod = Module.new {
- send visibility
-
- def test1() end
- def test2() end
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test1, false)
- mod.should send(:"have_#{@method}_instance_method", :test2, false)
- end
-
- it "stops setting visibility if the body encounters other visibility setters without arguments" do
- visibility = @method
- new_visibility = nil
- mod = Module.new {
- send visibility
- new_visibility = [:protected, :private].find {|vis| vis != visibility }
- send new_visibility
- def test1() end
- }
-
- mod.should send(:"have_#{new_visibility}_instance_method", :test1, false)
- end
-
- it "continues setting visibility if the body encounters other visibility setters with arguments" do
- visibility = @method
- mod = Module.new {
- send visibility
- def test1() end
- send([:protected, :private].find {|vis| vis != visibility }, :test1)
- def test2() end
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test2, false)
- end
-
- it "does not affect module_evaled method definitions when itself is outside the eval" do
- visibility = @method
- mod = Module.new {
- send visibility
-
- module_eval { def test1() end }
- module_eval " def test2() end "
- }
-
- mod.should have_public_instance_method(:test1, false)
- mod.should have_public_instance_method(:test2, false)
- end
-
- it "does not affect outside method definitions when itself is inside a module_eval" do
- visibility = @method
- mod = Module.new {
- module_eval { send visibility }
-
- def test1() end
- }
-
- mod.should have_public_instance_method(:test1, false)
- end
-
- it "affects normally if itself and method definitions are inside a module_eval" do
- visibility = @method
- mod = Module.new {
- module_eval {
- send visibility
-
- def test1() end
- }
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test1, false)
- end
-
- it "does not affect method definitions when itself is inside an eval and method definitions are outside" do
- visibility = @method
- initialized_visibility = [:public, :protected, :private].find {|sym| sym != visibility }
- mod = Module.new {
- send initialized_visibility
- eval visibility.to_s
-
- def test1() end
- }
-
- mod.should send(:"have_#{initialized_visibility}_instance_method", :test1, false)
- end
-
- it "affects evaled method definitions when itself is outside the eval" do
- visibility = @method
- mod = Module.new {
- send visibility
-
- eval "def test1() end"
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test1, false)
- end
-
- it "affects normally if itself and following method definitions are inside a eval" do
- visibility = @method
- mod = Module.new {
- eval <<-CODE
- #{visibility}
-
- def test1() end
- CODE
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test1, false)
- end
-
- describe "within a closure" do
- it "sets the visibility outside the closure" do
- visibility = @method
- mod = Module.new {
- 1.times {
- send visibility
- }
- def test1() end
- }
-
- mod.should send(:"have_#{@method}_instance_method", :test1, false)
- end
- end
- end
-end