From fa14102ba5c934dff818eb002b4e75a68f4d291e Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 8 May 2019 22:50:34 -0400 Subject: [PATCH] Reorder VarSet#expand_varref class checks so the more common ones match earlier - #92 --- lib/rscons/varset.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/rscons/varset.rb b/lib/rscons/varset.rb index 267a8a5..80d640c 100644 --- a/lib/rscons/varset.rb +++ b/lib/rscons/varset.rb @@ -95,8 +95,6 @@ module Rscons # Expanded value with "$!{var}" variable references replaced. def expand_varref(varref, lambda_args) case varref - when Symbol, true, false, nil - varref when String if varref =~ /^(.*)\$\{([^}]+)\}(.*)$/ prefix, varname, suffix = $1, $2, $3 @@ -104,18 +102,18 @@ module Rscons varval = expand_varref(self[varname], lambda_args) # suffix needs no expansion since the regex matches the last occurence case varval - when Symbol, true, false, nil, String - if prefix.is_a?(Array) - prefix.map {|p| "#{p}#{varval}#{suffix}"} - else - "#{prefix}#{varval}#{suffix}" - end when Array if prefix.is_a?(Array) varval.map {|vv| prefix.map {|p| "#{p}#{vv}#{suffix}"}}.flatten else varval.map {|vv| "#{prefix}#{vv}#{suffix}"} end + when String, Symbol, true, false, nil + if prefix.is_a?(Array) + prefix.map {|p| "#{p}#{varval}#{suffix}"} + else + "#{prefix}#{varval}#{suffix}" + end else raise "Unknown construction variable type: #{varval.class} (from #{varname.inspect} => #{self[varname].inspect})" end @@ -126,6 +124,8 @@ module Rscons varref.map do |ent| expand_varref(ent, lambda_args) end.flatten + when Symbol, true, false, nil + varref when Proc expand_varref(varref[*lambda_args], lambda_args) else