Class: Serega::SeregaUtils::EnumDeepFreeze

Inherits:
Object
  • Object
show all
Defined in:
lib/serega/utils/enum_deep_freeze.rb

Overview

Utility to freeze nested hashes and arrays

Class Method Summary collapse

Class Method Details

.call(data) ⇒ Hash, Array

Freezes nested hashes and arrays

Parameters:

  • data (Hash, Array)

    data to freeze

Returns:

  • (Hash, Array)

    same deeply frozen data



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/serega/utils/enum_deep_freeze.rb', line 20

def call(data)
  case data
  when Hash
    data.transform_values! { |value| call(value) }
    data.freeze
  when Array
    data.map! { |value| call(value) }
    data.freeze
  end

  data
end