summaryrefslogtreecommitdiff
path: root/spec/ruby/core/module
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/module')
-rw-r--r--spec/ruby/core/module/set_temporary_name_spec.rb218
-rw-r--r--spec/ruby/core/module/shared/class_eval.rb6
2 files changed, 110 insertions, 114 deletions
diff --git a/spec/ruby/core/module/set_temporary_name_spec.rb b/spec/ruby/core/module/set_temporary_name_spec.rb
index 46605ed675..0b96b869c9 100644
--- a/spec/ruby/core/module/set_temporary_name_spec.rb
+++ b/spec/ruby/core/module/set_temporary_name_spec.rb
@@ -1,147 +1,145 @@
require_relative '../../spec_helper'
require_relative 'fixtures/set_temporary_name'
-ruby_version_is "3.3" do
- describe "Module#set_temporary_name" do
- it "can assign a temporary name" do
- m = Module.new
- m.name.should be_nil
+describe "Module#set_temporary_name" do
+ it "can assign a temporary name" do
+ m = Module.new
+ m.name.should be_nil
- m.set_temporary_name("fake_name")
- m.name.should == "fake_name"
+ m.set_temporary_name("fake_name")
+ m.name.should == "fake_name"
- m.set_temporary_name(nil)
- m.name.should be_nil
- end
+ m.set_temporary_name(nil)
+ m.name.should be_nil
+ end
- it "returns self" do
- m = Module.new
- m.set_temporary_name("fake_name").should.equal? m
- end
+ it "returns self" do
+ m = Module.new
+ m.set_temporary_name("fake_name").should.equal? m
+ end
- it "can assign a temporary name which is not a valid constant path" do
- m = Module.new
+ it "can assign a temporary name which is not a valid constant path" do
+ m = Module.new
- m.set_temporary_name("name")
- m.name.should == "name"
+ m.set_temporary_name("name")
+ m.name.should == "name"
- m.set_temporary_name("Template['foo.rb']")
- m.name.should == "Template['foo.rb']"
+ m.set_temporary_name("Template['foo.rb']")
+ m.name.should == "Template['foo.rb']"
- m.set_temporary_name("a::B")
- m.name.should == "a::B"
+ m.set_temporary_name("a::B")
+ m.name.should == "a::B"
- m.set_temporary_name("A::b")
- m.name.should == "A::b"
+ m.set_temporary_name("A::b")
+ m.name.should == "A::b"
- m.set_temporary_name("A::B::")
- m.name.should == "A::B::"
+ m.set_temporary_name("A::B::")
+ m.name.should == "A::B::"
- m.set_temporary_name("A::::B")
- m.name.should == "A::::B"
+ m.set_temporary_name("A::::B")
+ m.name.should == "A::::B"
- m.set_temporary_name("A=")
- m.name.should == "A="
- end
+ m.set_temporary_name("A=")
+ m.name.should == "A="
+ end
- it "can't assign empty string as name" do
- m = Module.new
- -> { m.set_temporary_name("") }.should raise_error(ArgumentError, "empty class/module name")
- end
+ it "can't assign empty string as name" do
+ m = Module.new
+ -> { m.set_temporary_name("") }.should raise_error(ArgumentError, "empty class/module name")
+ end
- it "can't assign a constant name as a temporary name" do
- m = Module.new
- -> { m.set_temporary_name("Object") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
- end
+ it "can't assign a constant name as a temporary name" do
+ m = Module.new
+ -> { m.set_temporary_name("Object") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
+ end
- it "can't assign a constant path as a temporary name" do
- m = Module.new
- -> { m.set_temporary_name("A::B") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
- -> { m.set_temporary_name("::A") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
- -> { m.set_temporary_name("::A::B") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
- end
+ it "can't assign a constant path as a temporary name" do
+ m = Module.new
+ -> { m.set_temporary_name("A::B") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
+ -> { m.set_temporary_name("::A") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
+ -> { m.set_temporary_name("::A::B") }.should raise_error(ArgumentError, "the temporary name must not be a constant path to avoid confusion")
+ end
- it "can't assign name to permanent module" do
- -> { Object.set_temporary_name("fake_name") }.should raise_error(RuntimeError, "can't change permanent name")
- end
+ it "can't assign name to permanent module" do
+ -> { Object.set_temporary_name("fake_name") }.should raise_error(RuntimeError, "can't change permanent name")
+ end
- it "can assign a temporary name to a module nested into an anonymous module" do
- m = Module.new
- module m::N; end
- m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
+ it "can assign a temporary name to a module nested into an anonymous module" do
+ m = Module.new
+ module m::N; end
+ m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
- m::N.set_temporary_name("fake_name")
- m::N.name.should == "fake_name"
+ m::N.set_temporary_name("fake_name")
+ m::N.name.should == "fake_name"
- m::N.set_temporary_name(nil)
- m::N.name.should be_nil
- end
+ m::N.set_temporary_name(nil)
+ m::N.name.should be_nil
+ end
- it "discards a temporary name when an outer anonymous module gets a permanent name" do
- m = Module.new
- module m::N; end
+ it "discards a temporary name when an outer anonymous module gets a permanent name" do
+ m = Module.new
+ module m::N; end
- m::N.set_temporary_name("fake_name")
- m::N.name.should == "fake_name"
+ m::N.set_temporary_name("fake_name")
+ m::N.name.should == "fake_name"
- ModuleSpecs::SetTemporaryNameSpec::M = m
- m::N.name.should == "ModuleSpecs::SetTemporaryNameSpec::M::N"
- ModuleSpecs::SetTemporaryNameSpec.send :remove_const, :M
- end
+ ModuleSpecs::SetTemporaryNameSpec::M = m
+ m::N.name.should == "ModuleSpecs::SetTemporaryNameSpec::M::N"
+ ModuleSpecs::SetTemporaryNameSpec.send :remove_const, :M
+ end
- it "can update the name when assigned to a constant" do
- m = Module.new
- m::N = Module.new
- m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
- m::N.set_temporary_name(nil)
+ it "can update the name when assigned to a constant" do
+ m = Module.new
+ m::N = Module.new
+ m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
+ m::N.set_temporary_name(nil)
- m::M = m::N
- m::M.name.should =~ /\A#<Module:0x\h+>::M\z/m
- end
+ m::M = m::N
+ m::M.name.should =~ /\A#<Module:0x\h+>::M\z/m
+ end
- it "can reassign a temporary name repeatedly" do
- m = Module.new
+ it "can reassign a temporary name repeatedly" do
+ m = Module.new
- m.set_temporary_name("fake_name")
- m.name.should == "fake_name"
+ m.set_temporary_name("fake_name")
+ m.name.should == "fake_name"
- m.set_temporary_name("fake_name_2")
- m.name.should == "fake_name_2"
- end
+ m.set_temporary_name("fake_name_2")
+ m.name.should == "fake_name_2"
+ end
- ruby_bug "#21094", ""..."4.0" do
- it "also updates a name of a nested module" do
- m = Module.new
- m::N = Module.new
- m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
+ ruby_bug "#21094", ""..."4.0" do
+ it "also updates a name of a nested module" do
+ m = Module.new
+ m::N = Module.new
+ m::N.name.should =~ /\A#<Module:0x\h+>::N\z/
- m.set_temporary_name "m"
- m::N.name.should == "m::N"
+ m.set_temporary_name "m"
+ m::N.name.should == "m::N"
- m.set_temporary_name nil
- m::N.name.should == nil
- end
+ m.set_temporary_name nil
+ m::N.name.should == nil
end
+ end
- it "keeps temporary name when assigned in an anonymous module" do
- outer = Module.new
- m = Module.new
- m.set_temporary_name "m"
- m.name.should == "m"
- outer::M = m
- m.name.should == "m"
- m.inspect.should == "m"
- end
+ it "keeps temporary name when assigned in an anonymous module" do
+ outer = Module.new
+ m = Module.new
+ m.set_temporary_name "m"
+ m.name.should == "m"
+ outer::M = m
+ m.name.should == "m"
+ m.inspect.should == "m"
+ end
- it "keeps temporary name when assigned in an anonymous module and nested before" do
- outer = Module.new
- m = Module.new
- outer::A = m
- m.set_temporary_name "m"
- m.name.should == "m"
- outer::M = m
- m.name.should == "m"
- m.inspect.should == "m"
- end
+ it "keeps temporary name when assigned in an anonymous module and nested before" do
+ outer = Module.new
+ m = Module.new
+ outer::A = m
+ m.set_temporary_name "m"
+ m.name.should == "m"
+ outer::M = m
+ m.name.should == "m"
+ m.inspect.should == "m"
end
end
diff --git a/spec/ruby/core/module/shared/class_eval.rb b/spec/ruby/core/module/shared/class_eval.rb
index b1d5cb3814..526d0a2036 100644
--- a/spec/ruby/core/module/shared/class_eval.rb
+++ b/spec/ruby/core/module/shared/class_eval.rb
@@ -52,10 +52,8 @@ describe :module_class_eval, shared: true do
ModuleSpecs.send(@method, "[__FILE__, __LINE__]", "test", 102).should == ["test", 102]
end
- ruby_version_is "3.3" do
- it "uses the caller location as default filename" do
- ModuleSpecs.send(@method, "[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1]
- end
+ it "uses the caller location as default filename" do
+ ModuleSpecs.send(@method, "[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1]
end
it "converts a non-string filename to a string using to_str" do