From bbb010b0cd2ec1b815938d336e0a808578e71a07 Mon Sep 17 00:00:00 2001 From: Lucas Carlson Date: Thu, 14 May 2026 09:08:27 -0700 Subject: [PATCH] fix: resolve RuboCop Style/OneClassPerFile violations Newer RuboCop versions enforce Style/OneClassPerFile which flags: - Extension files patching multiple stdlib classes (Vector, Matrix) - LSI module structure - Test files with multiple test classes These are legitimate patterns for this codebase. Add exclusions for extension files and test directories. Also fix Style/PredicateWithKind in lsi_test.rb using the preferred all?(Numeric) syntax. --- .rubocop.yml | 8 ++++++++ test/lsi/lsi_test.rb | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index fb468d41..987882b2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -110,3 +110,11 @@ Style/StringLiteralsInInterpolation: # Minitest assertions Minitest/MultipleAssertions: Max: 10 + +# Allow multiple classes/modules in extension files that patch stdlib +# and in test files that group related test classes +Style/OneClassPerFile: + Exclude: + - 'lib/classifier/extensions/vector.rb' + - 'lib/classifier/lsi.rb' + - 'test/**/*' diff --git a/test/lsi/lsi_test.rb b/test/lsi/lsi_test.rb index dbb0712f..c973d923 100644 --- a/test/lsi/lsi_test.rb +++ b/test/lsi/lsi_test.rb @@ -691,7 +691,7 @@ def test_singular_values_populated_after_build refute_nil lsi.singular_values assert_instance_of Array, lsi.singular_values - assert(lsi.singular_values.all? { |v| v.is_a?(Numeric) }) + assert(lsi.singular_values.all?(Numeric)) assert_predicate lsi.singular_values.size, :positive? end