[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]