Allow construction variable expansion on _true_ and _false_ literals
This commit is contained in:
parent
5cf77f1f58
commit
f92dd62ebd
@ -86,12 +86,12 @@ module Rscons
|
|||||||
# Replace "$!{var}" variable references in varref with the expanded
|
# Replace "$!{var}" variable references in varref with the expanded
|
||||||
# variables' values, recursively.
|
# variables' values, recursively.
|
||||||
#
|
#
|
||||||
# @param varref [nil, String, Array, Proc]
|
# @param varref [nil, String, Array, Proc, Symbol, TrueClass, FalseClass]
|
||||||
# Value containing references to variables.
|
# Value containing references to variables.
|
||||||
# @param lambda_args [Array]
|
# @param lambda_args [Array]
|
||||||
# Arguments to pass to any lambda variable values to be expanded.
|
# 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.
|
# Expanded value with "$!{var}" variable references replaced.
|
||||||
def expand_varref(varref, lambda_args)
|
def expand_varref(varref, lambda_args)
|
||||||
if varref.is_a?(String)
|
if varref.is_a?(String)
|
||||||
@ -118,6 +118,10 @@ module Rscons
|
|||||||
nil
|
nil
|
||||||
elsif varref.is_a?(Symbol)
|
elsif varref.is_a?(Symbol)
|
||||||
varref
|
varref
|
||||||
|
elsif varref.is_a?(TrueClass)
|
||||||
|
varref
|
||||||
|
elsif varref.is_a?(FalseClass)
|
||||||
|
varref
|
||||||
else
|
else
|
||||||
raise "Unknown varref type: #{varref.class} (#{varref.inspect})"
|
raise "Unknown varref type: #{varref.class} (#{varref.inspect})"
|
||||||
end
|
end
|
||||||
|
@ -159,6 +159,12 @@ module Rscons
|
|||||||
it "calls a lambda with the given lambda arguments" do
|
it "calls a lambda with the given lambda arguments" do
|
||||||
expect(v.expand_varref("${lambda}", [v: "fez"])).to eq("fez--12")
|
expect(v.expand_varref("${lambda}", [v: "fez"])).to eq("fez--12")
|
||||||
end
|
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
|
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/
|
expect { v.expand_varref({a: :b}, :lambda_args) }.to raise_error /Unknown varref type: Hash/
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user