module TTY::Option::DeepDup
Constants
- NONDUPLICATABLE
Public Class Methods
deep_dup(object)
click to toggle source
Duplicate an object making a deep copy
@param [Object] object
@api public
# File lib/tty/option/deep_dup.rb, line 15 def self.deep_dup(object) case object when *NONDUPLICATABLE then object when Hash then deep_dup_hash(object) when Array then deep_dup_array(object) else object.dup end end
deep_dup_array(object)
click to toggle source
A deep copy of array
@param [Array] object
@api private
# File lib/tty/option/deep_dup.rb, line 40 def self.deep_dup_array(object) object.each_with_object([]) do |val, new_array| new_array << deep_dup(val) end end
deep_dup_hash(object)
click to toggle source
A deep copy of hash
@param [Hash] object
@api private
# File lib/tty/option/deep_dup.rb, line 29 def self.deep_dup_hash(object) object.each_with_object({}) do |(key, val), new_hash| new_hash[deep_dup(key)] = deep_dup(val) end end