1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Upcoming Struct#new behavior

This commit is contained in:
Nobuyoshi Nakada 2021-01-18 15:55:10 +09:00
parent a3851d97ed
commit c3d6bac325
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6

View file

@ -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