Module: Musa::Extension::DeepCopy::DeepCopy
Instance Method Summary collapse
- #copy_singleton_class_modules(source, target) ⇒ Object
- #deep_copy(object, method: :dup, freeze: true) ⇒ Object
Instance Method Details
#copy_singleton_class_modules(source, target) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/musa-dsl/core-ext/deep-copy.rb', line 17 def copy_singleton_class_modules(source, target) source.singleton_class.included_modules.each do |m| target.extend m unless target.is_a?(m) end target end |
#deep_copy(object, method: :dup, freeze: true) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/musa-dsl/core-ext/deep-copy.rb', line 10 def deep_copy(object, method: :dup, freeze: true) raise ArgumentError, "deep_copy method can only be :dup or :clone" unless method == :dup || method == :clone register = {} _deep_copy(register, object, method, freeze) end |