aboutsummaryrefslogtreecommitdiffstats
path: root/template_test/mustachetest.cc
diff options
context:
space:
mode:
authoripknHama <ipknhama@gmail.com>2014-08-02 10:46:00 +0900
committeripknHama <ipknhama@gmail.com>2014-08-02 22:32:49 +0900
commit615e648260a87eb2edabf4aefb456186800e67a1 (patch)
tree7bd8b268a960b2b7d322407160a9d152e32a9251 /template_test/mustachetest.cc
parent9d1d65b08c4a4c33923935a5414d6e6f4fe59ceb (diff)
downloadcrow-615e648260a87eb2edabf4aefb456186800e67a1.tar.gz
crow-615e648260a87eb2edabf4aefb456186800e67a1.zip
mustache partial implementation
Diffstat (limited to 'template_test/mustachetest.cc')
-rw-r--r--template_test/mustachetest.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/template_test/mustachetest.cc b/template_test/mustachetest.cc
index 3b80b5d..c4ac2c9 100644
--- a/template_test/mustachetest.cc
+++ b/template_test/mustachetest.cc
@@ -11,15 +11,22 @@ using namespace crow::mustache;
string read_all(const string& filename)
{
ifstream is(filename);
- string ret;
- copy(istreambuf_iterator<char>(is), istreambuf_iterator<char>(), back_inserter(ret));
- return ret;
+ 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;