From c34821864e448d8791f805623e0f4690258579be Mon Sep 17 00:00:00 2001 From: "michael.metivier" Date: Fri, 2 Nov 2018 00:03:54 -0400 Subject: [PATCH] Allow construction variable expansion on _true_ and _false_ literals --- lib/rscons/varset.rb | 8 ++++++-- spec/rscons/varset_spec.rb | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/rscons/varset.rb b/lib/rscons/varset.rb index 95ababd..2135c7a 100644 --- a/lib/rscons/varset.rb +++ b/lib/rscons/varset.rb @@ -86,12 +86,12 @@ module Rscons # Replace "$!{var}" variable references in varref with the expanded # variables' values, recursively. # - # @param varref [nil, String, Array, Proc] + # @param varref [nil, String, Array, Proc, Symbol, TrueClass, FalseClass] # Value containing references to variables. # @param lambda_args [Array] # Arguments to pass to any lambda variable values to be expanded. # - # @return [nil, String, Array] + # @return [nil, String, Array, Symbol, TrueClass, FalseClass] # Expanded value with "$!{var}" variable references replaced. def expand_varref(varref, lambda_args) if varref.is_a?(String) @@ -118,6 +118,10 @@ module Rscons nil elsif varref.is_a?(Symbol) varref + elsif varref.is_a?(TrueClass) + varref + elsif varref.is_a?(FalseClass) + varref else raise "Unknown varref type: #{varref.class} (#{varref.inspect})" end diff --git a/spec/rscons/varset_spec.rb b/spec/rscons/varset_spec.rb index 4e0d479..5d8bee5 100644 --- a/spec/rscons/varset_spec.rb +++ b/spec/rscons/varset_spec.rb @@ -159,6 +159,12 @@ module Rscons it "calls a lambda with the given lambda arguments" do expect(v.expand_varref("${lambda}", [v: "fez"])).to eq("fez--12") end + it "returns true when passed true" do + expect(v.expand_varref(true, :lambda_args)).to eq(true) + end + it "returns false when passed false" do + expect(v.expand_varref(false, :lambda_args)).to eq(false) + end it "raises an error when given an invalid argument" do expect { v.expand_varref({a: :b}, :lambda_args) }.to raise_error /Unknown varref type: Hash/ end