Module: Musa::Extension::DeepCopy
- Defined in:
- lib/musa-dsl/core-ext/deep-copy.rb
Overview
Module providing deep copy functionality for complex object graphs.
DeepCopy implements recursive copying of objects, handling circular references, instance variables, singleton class modules, and various Ruby data structures.
Features
- Handles circular references via object registry
- Preserves singleton class modules (dataset extensions)
- Supports both :dup and :clone methods
- Special handling for Arrays, Hashes, Ranges, Structs, Procs
- Recursively copies instance variables
- Optional freeze control for :clone method
Use Cases
- Deep copying musical event structures with complex nesting
- Duplicating series configurations without shared state
- Preserving dataset module extensions during copy operations
- Safe duplication of mutable default values
Based on https://github.com/adamluzsi/duplicate.rb/blob/master/lib/duplicate.rb
Modifications by Javier Sánchez Yeste
Defined Under Namespace
Modules: DeepCopy