Ответ 1
Просто reset значение по умолчанию:
h.default = nil
Более подробно:
def dumpable_hash(h)
return h unless h.default_proc
copy = h.clone
copy.default = nil # clear the default_proc
copy
end
У меня есть хэш с файлом по умолчанию, который я хотел бы сделать маршалом для файла, но по умолчанию этот метод не позволяет мне это делать.
Вместо того, чтобы писать мои собственные методы _dump
и _load
, возможно ли вместо этого вместо этого удалить proc по умолчанию? В тот момент, когда я Маршаллинг, мне больше не понадобится процесс по умолчанию.
Просто reset значение по умолчанию:
h.default = nil
Более подробно:
def dumpable_hash(h)
return h unless h.default_proc
copy = h.clone
copy.default = nil # clear the default_proc
copy
end
Если вы хотите иметь копию без по умолчанию, самый простой способ -
Hash[hash_with_defaults]