ruby-changes:64933
From: Nobuyoshi <ko1@a...>
Date: Mon, 18 Jan 2021 15:56:04 +0900 (JST)
Subject: [ruby-changes:64933] c3d6bac325 (master): Upcoming Struct#new behavior
https://git.ruby-lang.org/ruby.git/commit/?id=c3d6bac325 From c3d6bac325dcc4868977b15503641afa48092119 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Mon, 18 Jan 2021 15:55:10 +0900 Subject: Upcoming Struct#new behavior diff --git a/spec/ruby/core/struct/new_spec.rb b/spec/ruby/core/struct/new_spec.rb index bb814e7..cbbec82 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 https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/struct/new_spec.rb#L127 -> { 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 -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/