From c8b950cc07a866d1fff9be9b279119c9dc2a6140 Mon Sep 17 00:00:00 2001 From: Herwin Date: Wed, 28 May 2025 18:48:22 +0200 Subject: [PATCH 1/2] Add exception messages to specs of Array#fetch_values --- core/array/fetch_values_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/array/fetch_values_spec.rb b/core/array/fetch_values_spec.rb index 075dcc7a52..9605dcfd5c 100644 --- a/core/array/fetch_values_spec.rb +++ b/core/array/fetch_values_spec.rb @@ -21,7 +21,7 @@ describe "with unmatched indexes" do it "raises a index error if no block is provided" do - -> { @array.fetch_values(0, 1, 44) }.should raise_error(IndexError) + -> { @array.fetch_values(0, 1, 44) }.should raise_error(IndexError, "index 44 outside of array bounds: -3...3") end it "returns the default value from block" do @@ -43,7 +43,7 @@ end it "raises a TypeError when the passed argument can't be coerced to Integer" do - -> { [].fetch_values("cat") }.should raise_error(TypeError) + -> { [].fetch_values("cat") }.should raise_error(TypeError, "no implicit conversion of String into Integer") end end end From 80996606136f2459530cbc85ab32051a0e6b9238 Mon Sep 17 00:00:00 2001 From: Herwin Date: Wed, 28 May 2025 18:47:12 +0200 Subject: [PATCH 2/2] Add explicit spec for Array#fetch_values with Range argument This one got an explicit mention on the Ruby Changes page as under consideration. --- core/array/fetch_values_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/array/fetch_values_spec.rb b/core/array/fetch_values_spec.rb index 9605dcfd5c..cf377b3b71 100644 --- a/core/array/fetch_values_spec.rb +++ b/core/array/fetch_values_spec.rb @@ -42,6 +42,12 @@ @array.fetch_values(obj).should == [:c] end + it "does not support a Range object as argument" do + -> { + @array.fetch_values(1..2) + }.should raise_error(TypeError, "no implicit conversion of Range into Integer") + end + it "raises a TypeError when the passed argument can't be coerced to Integer" do -> { [].fetch_values("cat") }.should raise_error(TypeError, "no implicit conversion of String into Integer") end