@@ -33,16 +33,21 @@ def decrypt(contents)
3333
3434 # @param [Hash] data
3535 # @return [Hash]
36+ # rubocop:disable Metrics/MethodLength
3637 def decrypt_hash ( data )
3738 data . each do |key , value |
38- data [ key ] = if value . is_a? ( Hash ) || value . is_a? ( Array )
39+ data [ key ] = case value
40+ when Hash
3941 decrypt_hash ( value )
42+ when Array
43+ value . map { |v | decrypt_hash ( v ) }
4044 else
4145 decrypt_string value
4246 end
4347 end
4448 data
4549 end
50+ # rubocop:enable Metrics/MethodLength
4651
4752 # @param [String] contents The raw YAML string to be encrypted
4853 # @param [String, nil] original_encrypted_contents The original (encrypted) content to determine which keys have changed
@@ -72,14 +77,18 @@ def encrypt_string(value)
7277 end
7378
7479 # TODO: Fix the complexity of this method
75- # rubocop:disable Metrics/PerceivedComplexity, Metrics/ MethodLength, Metrics/CyclomaticComplexity
80+ # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
7681 # @param [Hash] keys
7782 # @return [Hash]
7883 def encrypt_values ( data , original_data = nil )
7984 data . each do |key , value |
8085 original_encrypted_value = original_data ? original_data [ key ] : nil
81- data [ key ] = if value . is_a? ( Hash ) || value . is_a? ( Array )
86+
87+ data [ key ] = case value
88+ when Hash
8289 encrypt_values ( value , original_encrypted_value )
90+ when Array
91+ value . map { |v | encrypt_values ( v , original_encrypted_value ) }
8392 else
8493 original_decrypted_value = original_encrypted_value ? decrypt_string ( original_encrypted_value ) : nil
8594 key_changed = original_decrypted_value . nil? || original_decrypted_value != value
@@ -88,7 +97,7 @@ def encrypt_values(data, original_data = nil)
8897 end
8998 data . sort . to_h
9099 end
91- # rubocop:enable Metrics/PerceivedComplexity, Metrics/ MethodLength, Metrics/CyclomaticComplexity
100+ # rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity
92101
93102 # @param [String] value The encrypted value that needs decrypting
94103 # @return [String]
0 commit comments