Module: Varar::Core::DeepFreeze
- Defined in:
- lib/varar/core/deep_freeze.rb
Overview
Recursively freeze plain Hash/Array so handler code mutating state raises FrozenError. Other objects (class instances, primitives, nil) pass through. Assumes acyclic input. Port of deep-freeze.ts.
Class Method Summary collapse
Class Method Details
.deep_freeze(value) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/varar/core/deep_freeze.rb', line 11 def deep_freeze(value) case value when Hash value.each_value { |v| deep_freeze(v) } value.freeze when Array value.each { |v| deep_freeze(v) } value.freeze else value end end |