in src/PSRule/Host/HostHelper.cs [392:439]
private static DependencyTargetCollection<IRuleV1> ToRuleV1(ILanguageBlock[] blocks, RunspaceContext context)
{
// Index rules by RuleId
var results = new DependencyTargetCollection<IRuleV1>();
try
{
foreach (var block in blocks.OfType<RuleBlock>())
{
results.TryAdd(new Rule
{
Id = block.Id,
Ref = block.Ref,
Alias = block.Alias,
Source = block.Source,
Tag = block.Tag,
Level = block.Level,
Info = block.Info,
DependsOn = block.DependsOn,
Flags = block.Flags,
});
//throw ThrowDuplicateRuleId(block);
}
foreach (var block in blocks.OfType<RuleV1>())
{
context.EnterSourceScope(block.Source);
var info = GetHelpInfo(context, block.Name, block.Synopsis);
results.TryAdd(new Rule
{
Id = block.Id,
Ref = block.Ref,
Alias = block.Alias,
Source = block.Source,
Tag = block.Metadata.Tags,
Level = block.Level,
Info = info,
DependsOn = null, // TODO: No support for DependsOn yet
Flags = block.Flags,
});
//throw ThrowDuplicateRuleId(block);
}
}
finally
{
context.ExitSourceScope();
}
return results;
}