Skip to content

Instantly share code, notes, and snippets.

@skojin
Created August 19, 2016 13:19
Show Gist options
  • Save skojin/178e0605efd1fa0644c40be639711e1e to your computer and use it in GitHub Desktop.
Save skojin/178e0605efd1fa0644c40be639711e1e to your computer and use it in GitHub Desktop.
ruby deep freeze without monkey patch
# recursive freeze of hash, array
module DeepFreeze
extend self
def freeze(obj_or_enumerable)
if obj_or_enumerable.respond_to?(:each)
obj_or_enumerable.each { |v| DeepFreeze.freeze(v) }
end
obj_or_enumerable.freeze
obj_or_enumerable
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment