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:
parent
a3851d97ed
commit
c3d6bac325
1 changed files with 22 additions and 7 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue