Allow construction variable expansion on _true_ and _false_ literals
This commit is contained in:
parent
97c24eec6b
commit
c34821864e
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user