2
0

Fix Lint/NonLocalExitFromIterator cop in JSON-LD helper (#34948)

This commit is contained in:
Matt Jankowski
2025-07-28 11:35:37 -04:00
committed by GitHub
parent f1b9868980
commit c587c44975
3 changed files with 9 additions and 5 deletions

View File

@@ -6,10 +6,6 @@
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
Lint/NonLocalExitFromIterator:
Exclude:
- 'app/helpers/json_ld_helper.rb'
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Max: 82

View File

@@ -134,7 +134,7 @@ module JsonLdHelper
patch_for_forwarding!(value, compacted_value)
elsif value.is_a?(Array)
compacted_value = [compacted_value] unless compacted_value.is_a?(Array)
return if value.size != compacted_value.size
return nil if value.size != compacted_value.size
compacted[key] = value.zip(compacted_value).map do |v, vc|
if v.is_a?(Hash) && vc.is_a?(Hash)

View File

@@ -180,6 +180,14 @@ RSpec.describe JsonLdHelper do
expect(compacted.dig('object', 'tag', 0, 'href')).to eq ['foo']
expect(safe_for_forwarding?(json, compacted)).to be true
end
context 'when array size mismatch exists' do
subject { helper.patch_for_forwarding!(json, alternate) }
let(:alternate) { json.merge('to' => %w(one two three)) }
it { is_expected.to be_nil }
end
end
describe 'safe_for_forwarding?' do