Module: Wfirma::DeepDup
- Included in:
- Wfirma::Drivers::Fake, Wfirma::Drivers::Fake::Catalogue
- Defined in:
- lib/wfirma/deep_dup.rb
Overview
Payloads are plain JSON-safe hashes/arrays/scalars, so a simple recursive dup is enough to give responses and stored records an object graph fully independent from the caller's - mirroring the isolation a real HTTP round-trip (serialize/deserialize) would give.
Class Method Summary collapse
Class Method Details
.deep_dup(value) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/wfirma/deep_dup.rb', line 9 def deep_dup(value) case value when Hash value.each_with_object({}) { |(key, val), copy| copy[deep_dup(key)] = deep_dup(val) } when Array value.map { |item| deep_dup(item) } when String value.dup else value end end |