Module: Grape::Util::DeepFreeze
- Defined in:
- lib/grape/util/deep_freeze.rb
Class Method Summary collapse
-
.deep_freeze(obj) ⇒ Object
Recursively freezes Hash (keys and values), Array (elements), and String objects.
Class Method Details
.deep_freeze(obj) ⇒ Object
Recursively freezes Hash (keys and values), Array (elements), and String objects. All other types are returned as-is.
Intentionally left unfrozen:
- Procs / lambdas — may be deferred DB-backed callables
- Classes / Modules — shared constants that must remain open
- Coercers and ParamsScope — self-freeze at construction
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/grape/util/deep_freeze.rb', line 15 def deep_freeze(obj) case obj when Hash obj.each do |k, v| deep_freeze(k) deep_freeze(v) end obj.freeze when Array obj.each { |v| deep_freeze(v) } obj.freeze when String obj.freeze else obj end end |