aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--spec/ruby/core/struct/new_spec.rb29
1 files changed, 22 insertions, 7 deletions
diff --git a/spec/ruby/core/struct/new_spec.rb b/spec/ruby/core/struct/new_spec.rb
index bb814e7cd1..cbbec829d7 100644
--- a/spec/ruby/core/struct/new_spec.rb
+++ b/spec/ruby/core/struct/new_spec.rb
@@ -127,15 +127,30 @@ describe "Struct.new" do
-> { StructClasses::Ruby.new('2.0', 'i686', true) }.should raise_error(ArgumentError)
end
- it "passes a hash as a normal argument" do
- type = Struct.new(:args)
+ ruby_version_is ''...'3.1' do
+ it "passes a hash as a normal argument" do
+ type = Struct.new(:args)
- obj = type.new(keyword: :arg)
- obj2 = type.new(*[{keyword: :arg}])
+ obj = suppress_warning {type.new(keyword: :arg)}
+ obj2 = type.new(*[{keyword: :arg}])
- obj.should == obj2
- obj.args.should == {keyword: :arg}
- obj2.args.should == {keyword: :arg}
+ obj.should == obj2
+ obj.args.should == {keyword: :arg}
+ obj2.args.should == {keyword: :arg}
+ end
+ end
+
+ ruby_version_is '3.2' do
+ it "accepts keyword arguments to initialize" do
+ type = Struct.new(:args)
+
+ obj = type.new(args: 42)
+ obj2 = type.new(42)
+
+ obj.should == obj2
+ obj.args.should == 42
+ obj2.args.should == 42
+ end
end
end