classes/Mapping.ps1
class Mapping { [string]$OutputFileNameTemplate; [string]$OutputTemplateName; [string]$OutputType; [SourceMap[]]$SourceMaps; #---------# # Methods # #---------# [string]CalculateOutputFileName([object]$CurrentStateProps){ [string]$cmd = ""; # Create variables for each Key Value pair $CurrentStateProps.Keys | ForEach-Object { $cmd += "New-Variable -Name '$($_)' -Value '$($CurrentStateProps.Item($_))';"; } $cmd += "`"$($this.OutputFileNameTemplate)`";"; return Invoke-Expression $cmd; } [string[]]ExtractOutputFileNameTemplateParameters(){ return (Select-String -InputObject $this.OutputFileNameTemplate -Pattern "(\$.\w*)" -AllMatches | ForEach-Object{$_.Matches}).Value; } } |