From 592415422949fd3af0685008657bffc5689ecada Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 15 Apr 2014 09:47:05 -0400 Subject: [PATCH] speed up VarSet#deep_dup a bit --- lib/rscons/varset.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/rscons/varset.rb b/lib/rscons/varset.rb index fce4237..b1dda2a 100644 --- a/lib/rscons/varset.rb +++ b/lib/rscons/varset.rb @@ -82,14 +82,15 @@ module Rscons # @param obj [Hash, Array] Hash or Array to deep copy. # @return [Hash, Array] Deep copied value. def deep_dup(obj) - if obj.is_a?(Hash) + obj_class = obj.class + if obj_class == Hash obj.reduce({}) do |result, (k, v)| result[k] = deep_dup(v) result end - elsif obj.is_a?(Array) + elsif obj_class == Array obj.map { |v| deep_dup(v) } - elsif obj.is_a?(String) + elsif obj_class == String obj.dup else obj