aboutsummaryrefslogtreecommitdiffstats
path: root/tests/template/mustachetest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/template/mustachetest.cpp')
-rw-r--r--tests/template/mustachetest.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/template/mustachetest.cpp b/tests/template/mustachetest.cpp
new file mode 100644
index 0000000..1caf537
--- /dev/null
+++ b/tests/template/mustachetest.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <iterator>
+#include "mustache.h"
+#include "json.h"
+using namespace std;
+using namespace crow;
+using namespace crow::mustache;
+
+string read_all(const string& filename)
+{
+ ifstream is(filename);
+ return {istreambuf_iterator<char>(is), istreambuf_iterator<char>()};
+}
+
+int main()
+{
+ auto data = json::load(read_all("data"));
+ auto templ = compile(read_all("template"));
+ auto partials = json::load(read_all("partials"));
+ set_loader([&](std::string name)->std::string
+ {
+ if (partials.count(name))
+ {
+ return partials[name].s();
+ }
+ return "";
+ });
+ context ctx(data);
+ cout << templ.render(ctx);
+ return 0;
+}