Skip to content

Commit f77f93b

Browse files
committed
Fix value() context lookup for bundled gems
1 parent 96e0eef commit f77f93b

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

mrblib/rmake/util.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,9 @@ def self.eval_func(func, args, vars, ctx)
477477
return words.uniq.sort.join(" ")
478478
when "value"
479479
name = expand(args.to_s, vars, ctx)
480+
if ctx && ctx.key?(name)
481+
return (ctx[name] || "").to_s
482+
end
480483
var = vars[name]
481484
return var ? var.value.to_s : ""
482485
when "flavor"

test/run.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,17 @@ def with_env(key, value)
226226
assert("shell output keeps leading ws, replaces newlines", out == " a b")
227227
end
228228

229+
tests << lambda do
230+
ev = parse_eval(<<~MK)
231+
bundled-gems-rev := net-imap|0.6.2|rev123|https://example/repo
232+
foreach-bundled-gems-rev = $(foreach g,$(bundled-gems-rev),$(call foreach-bundled-gems-rev-0,$(1),$(subst |, ,$(value g))))
233+
foreach-bundled-gems-rev-0 = $(call $(1),$(word 1,$(2)),$(word 2,$(2)),$(word 3,$(2)),$(word 4,$(2)))
234+
bundled-gem-gemspec = gems/src/$(1)/$(1).gemspec
235+
MK
236+
out = RMake::Util.expand("$(call foreach-bundled-gems-rev,bundled-gem-gemspec)", ev.vars)
237+
assert("value() sees foreach variable from context", out == "gems/src/net-imap/net-imap.gemspec")
238+
end
239+
229240
tests << lambda do
230241
Dir.mktmpdir("rmake-test-") do |dir|
231242
bin = File.join(dir, "bin")

0 commit comments

Comments
 (0)