From 4469e4db5d643f47a634274981a103751160688c Mon Sep 17 00:00:00 2001 From: Suleyman Musayev Date: Sun, 7 May 2023 00:44:24 +0500 Subject: [PATCH 1/4] add argument error and improve use of flatten in two_dimensional? method --- lib/distributed_merge.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/distributed_merge.rb b/lib/distributed_merge.rb index 87f10f8..53234a1 100644 --- a/lib/distributed_merge.rb +++ b/lib/distributed_merge.rb @@ -17,7 +17,7 @@ module DistributedMergeArray # :nodoc: # Accepts a two-dimensional array with subarrays of varying size and returns # merged array with the elements distributed across. def distributed_merge - return self unless two_dimensional? + raise ArgumentError, "Input must be an array of arrays" unless two_dimensional? data = sort_arrays_by_size largest = data.first @@ -44,7 +44,9 @@ def distributed_merge def two_dimensional? return false unless all_arrays? - flatten(1).none? { |arg| arg.instance_of?(Array) } && flatten(1).count > 1 + flattened_array = flatten(1) + + flattened_array.none? { |arg| arg.instance_of?(Array) } && flattened_array.count > 1 end def all_arrays? From cc4f3dfc50851f0e28943d6180d699b7450fd6b4 Mon Sep 17 00:00:00 2001 From: Suleyman Musayev Date: Sun, 7 May 2023 00:44:56 +0500 Subject: [PATCH 2/4] update tests to include argument error case --- test/test_distributed_merge.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test_distributed_merge.rb b/test/test_distributed_merge.rb index 28c6d03..08cf372 100644 --- a/test/test_distributed_merge.rb +++ b/test/test_distributed_merge.rb @@ -15,12 +15,12 @@ def test_raises_no_method_error assert_raises(NoMethodError) { hash.distributed_merge } end - def test_returns_original_array_if_not_two_dimensional + def test_raises_argument_error_if_not_two_dimensional one_d = [1, 2, 3, 4, 5] - assert_equal one_d, one_d.distributed_merge + assert_raises(ArgumentError) { one_d.distributed_merge } three_d = [[[1, 2, 3], [4, 5]], [6, 7, 8, 9, 10]] - assert_equal three_d, three_d.distributed_merge + assert_raises(ArgumentError) { three_d.distributed_merge } end def test_case_10_vs_1_array From 12a72525c0d9211d191d28f128615592c8702de8 Mon Sep 17 00:00:00 2001 From: Suleyman Musayev Date: Sun, 7 May 2023 00:45:52 +0500 Subject: [PATCH 3/4] fix typos in changelog --- CHANGELOG.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91d377c..4f4d79b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,15 @@ ## [Released] -## [0.1.0] - 2023-04-15 -- Initial release - +## [0.1.4] - 2023-05-06 +- Improvements related to .flatten method, fixing typos +## [0.1.3] - 2023-04-15 +- Templates added for PR's, bug reports and feature requests +## [0.1.2] - 2023-04-15 +- Improvements to CI workflow ## [0.1.1] - 2023-04-15 - Fixes for broken links - Updates to CI workflow +## [0.1.0] - 2023-04-15 +- Initial release -## [0.1.2] - 2023-04-15 -- Improvements to CI workflow -## [0.1.3] - 2023-04-16 -- Templates added for PR's, bug reports and feature requests From c0a8ace45b728469aed5ebe0f0c953b5d4a77380 Mon Sep 17 00:00:00 2001 From: Suleyman Musayev Date: Sun, 7 May 2023 00:46:02 +0500 Subject: [PATCH 4/4] bump version --- Gemfile.lock | 2 +- lib/distributed_merge/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b4ffebe..a43f01f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - distributed_merge (0.1.3) + distributed_merge (0.1.4) GEM remote: https://rubygems.org/ diff --git a/lib/distributed_merge/version.rb b/lib/distributed_merge/version.rb index ba8da51..11984b4 100644 --- a/lib/distributed_merge/version.rb +++ b/lib/distributed_merge/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module DistributedMerge - VERSION = "0.1.3" + VERSION = "0.1.4" end