module Hamster

Namespace

Namespace

Namespace

Namespace

Public Class Methods

to_mutable(obj) click to toggle source

def self.regrow each_pair: ::Hash, each_index: ::Array, each:

# File lib/nrser/gem_ext/hamster.rb, line 12
def self.to_mutable obj
  if obj.respond_to? :to_mutable
    obj.to_mutable
    
  elsif ::Array === obj
    obj.map { |e| to_mutable e }
    
  elsif ::Hash === obj
    obj.each_with_object( {} ) { |(k, v), h|
      h[ to_mutable k ] = to_mutable v
    }
    
  elsif ::SortedSet === obj
    ::SortedSet.new obj.map { |m| to_mutable m }
    
  elsif ::Set === obj
    ::Set.new obj.map { |m| to_mutable m }
    
  else
    obj
    
  end
end