Module: Oselvar::Var::Core::DeepFreeze
- Defined in:
- lib/oselvar/var/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
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/oselvar/var/core/deep_freeze.rb', line 12 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 |