Module: MudisQL::DeepDup
- Defined in:
- lib/mudis-ql/deep_dup.rb
Overview
Utility for deep-duplicating nested objects to avoid mutating cached data
Class Method Summary collapse
-
.call(obj) ⇒ Object
rubocop:disable Metrics/MethodLength.
Class Method Details
.call(obj) ⇒ Object
rubocop:disable Metrics/MethodLength
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mudis-ql/deep_dup.rb', line 6 def self.call(obj) # rubocop:disable Metrics/MethodLength case obj when Hash obj.transform_values { |v| call(v) } when Array obj.map { |v| call(v) } else begin obj.dup rescue TypeError obj end end end |