11using System ;
2+ using System . Data ;
23using Castle . Core . Internal ;
34using JetBrains . Annotations ;
5+ using PatchManager . Generic . SassyPatching . Rulesets ;
46using PatchManager . SassyPatching . Exceptions ;
57using PatchManager . SassyPatching . Interfaces ;
68using PatchManager . SassyPatching . Nodes . Attributes ;
@@ -23,6 +25,7 @@ public class SassyTextPatcher
2325 private SelectionBlock _rootSelectionBlock ;
2426 public IPatcherRuleSet RuleSet ;
2527 [ CanBeNull ] public string AssetName ;
28+ [ CanBeNull ] public string AssetType ; // We have one overload for asset types
2629 internal SassyTextPatcher ( Environment environmentSnapshot , SelectionBlock rootSelectionBlock )
2730 {
2831 _environmentSnapshot = environmentSnapshot ;
@@ -53,14 +56,15 @@ private void RecursivelyFindRuleSet(Selector selector)
5356 $ "Ruleset { rulesetSelector . RulesetName } does not exist!") ;
5457 }
5558 RuleSet = ruleSet ;
56- if ( RuleSet . CanGetAssetNameFromSelectableName && intersectionSelector . Selectors [ 1 ] is NameSelector nameSelector )
59+ if ( RuleSet . CanGetAssetNameFromSelectableName && intersectionSelector . Selectors [ 1 ] is NameSelector nameSelector && ! ( nameSelector . NamePattern . Contains ( '*' ) || nameSelector . NamePattern . Contains ( '?' ) ) )
5760 {
58- if ( nameSelector . NamePattern . Contains ( '*' ) || nameSelector . NamePattern . Contains ( '?' ) )
59- {
60- return ;
61- }
61+ AssetName = RuleSet . SelectableNameToAssetName ( nameSelector . NamePattern . Interpolate ( _environmentSnapshot ) ) ;
62+ }
6263
63- AssetName = RuleSet . SelectableNameToAssetName ( nameSelector . NamePattern ) ;
64+ if ( RuleSet is JsonRuleset jsonRuleset &&
65+ intersectionSelector . Selectors [ 1 ] is ElementSelector elementSelector )
66+ {
67+ AssetType = elementSelector . ElementName . Interpolate ( _environmentSnapshot ) ;
6468 }
6569 }
6670 else
0 commit comments