From a4dec210aed4fc2d5c301a9f5615277c76d5eece Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 8 May 2019 23:16:22 -0400 Subject: [PATCH] slightly reorder VarSet#deep_dup to optimize - #92 --- lib/rscons/varset.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/rscons/varset.rb b/lib/rscons/varset.rb index 80d640c..2199d9f 100644 --- a/lib/rscons/varset.rb +++ b/lib/rscons/varset.rb @@ -194,16 +194,16 @@ module Rscons # # @return [Object] Deep copied value. def deep_dup(obj) - obj_class = obj.class - if obj_class == Hash + case obj + when String + obj.dup + when Array + obj.map { |v| deep_dup(v) } + when Hash obj.reduce({}) do |result, (k, v)| result[k] = deep_dup(v) result end - elsif obj_class == Array - obj.map { |v| deep_dup(v) } - elsif obj_class == String - obj.dup else obj end