Skip to content

Commit af6b904

Browse files
committed
Added upper- and lower case extension for Handlebars.
1 parent 4e31b3a commit af6b904

File tree

3 files changed

+53
-15
lines changed

3 files changed

+53
-15
lines changed

DataWarehouseAutomation/DataWarehouseAutomation/HandleBarsHelpers.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,40 @@ public static void RegisterHandleBarsHelpers()
135135
}
136136
});
137137

138+
Handlebars.RegisterHelper("stringupper", (writer, context, args) =>
139+
{
140+
if (args.Length != 1) throw new HandlebarsException("The {{stringupper}} function requires one, and only one, input string value.");
141+
142+
if (args[0].GetType().Name != "UndefinedBindingResult")
143+
{
144+
try
145+
{
146+
writer.Write(args[0].ToString().ToUpper());
147+
}
148+
catch (Exception ex)
149+
{
150+
writer.WriteSafeString("An issue has been encountered: " + ex.Message + ".");
151+
}
152+
}
153+
});
154+
155+
Handlebars.RegisterHelper("stringlower", (writer, context, args) =>
156+
{
157+
if (args.Length != 1) throw new HandlebarsException("The {{stringlower}} function requires one, and only one, input string value.");
158+
159+
if (args[0].GetType().Name != "UndefinedBindingResult")
160+
{
161+
try
162+
{
163+
writer.Write(args[0].ToString().ToLower());
164+
}
165+
catch (Exception ex)
166+
{
167+
writer.WriteSafeString("An issue has been encountered: " + ex.Message + ".");
168+
}
169+
}
170+
});
171+
138172
// Accept two values, and see if they are the same, use as block helper.
139173
// Usage {{#stringcompare string1 string2}} do something {{else}} do something else {{/stringcompare}}
140174
// Usage {{#stringcompare string1 string2}} do something {{/stringcompare}}

DataWarehouseAutomation/Example_Project/Program.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,21 @@ static void Main(string[] args)
1616
var sampleTemplateDirectory = AppDomain.CurrentDomain.BaseDirectory+@"..\..\..\..\Sample_Templates\";
1717
var sampleMetadataDirectory = AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\..\Sample_Metadata\";
1818

19-
DisplayPatternResult(sampleTemplateDirectory + @"myFirstTemplate.handlebars", sampleMetadataDirectory + @"myFirstMapping.json");
20-
Console.Clear();
21-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasic.handlebars", sampleMetadataDirectory + @"sampleBasic.json");
22-
Console.Clear();
23-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasicWithExtensions.handlebars", sampleMetadataDirectory + @"sampleBasicWithExtensions.json");
24-
Console.Clear();
25-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleMultipleDataItemMappings.handlebars", sampleMetadataDirectory + @"sampleMultipleDataItemMappings.json");
26-
Console.Clear();
27-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSourceQuery.handlebars", sampleMetadataDirectory + @"sampleSourceQuery.json");
28-
Console.Clear();
29-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSimpleDDL.handlebars", sampleMetadataDirectory + @"sampleSimpleDDL.json");
30-
Console.Clear();
31-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCalculation.handlebars", sampleMetadataDirectory + @"sampleCalculation.json");
32-
Console.Clear();
33-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleFreeForm.handlebars", sampleMetadataDirectory + @"sampleFreeForm.json");
19+
//DisplayPatternResult(sampleTemplateDirectory + @"myFirstTemplate.handlebars", sampleMetadataDirectory + @"myFirstMapping.json");
20+
//Console.Clear();
21+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasic.handlebars", sampleMetadataDirectory + @"sampleBasic.json");
22+
//Console.Clear();
23+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasicWithExtensions.handlebars", sampleMetadataDirectory + @"sampleBasicWithExtensions.json");
24+
//Console.Clear();
25+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleMultipleDataItemMappings.handlebars", sampleMetadataDirectory + @"sampleMultipleDataItemMappings.json");
26+
//Console.Clear();
27+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSourceQuery.handlebars", sampleMetadataDirectory + @"sampleSourceQuery.json");
28+
//Console.Clear();
29+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSimpleDDL.handlebars", sampleMetadataDirectory + @"sampleSimpleDDL.json");
30+
//Console.Clear();
31+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCalculation.handlebars", sampleMetadataDirectory + @"sampleCalculation.json");
32+
//Console.Clear();
33+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleFreeForm.handlebars", sampleMetadataDirectory + @"sampleFreeForm.json");
3434
Console.Clear();
3535
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCustomFunctions.handlebars", sampleMetadataDirectory + @"sampleCustomFunctions.json");
3636

DataWarehouseAutomation/Sample_Templates/TemplateSampleCustomFunctions.Handlebars

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ A and B {{#stringdiff "A" "B"}}are different. {{else}}are not different. {{/stri
1717

1818
This is {{space "Roelant"}} ...spaced out.
1919

20+
This is {{stringupper "Roelant"}} ...upper-cased.
21+
22+
This is {{stringlower "Roelant"}} ...lower-cased.
23+
2024
This replaces the a's in Roelant with an !: {{StringReplace "Roelant" "a" "!"}}
2125

2226
This adds brackets around the string value: {{stringwrap "Example" "[" "]"}}

0 commit comments

Comments
 (0)