Complete lambda context implementation
diff --git a/lib/src/lambda_context.dart b/lib/src/lambda_context.dart
index fd180d1..84b6d04 100644
--- a/lib/src/lambda_context.dart
+++ b/lib/src/lambda_context.dart
@@ -57,8 +57,12 @@
/// Evaluate the string as a mustache template using the current context.
String renderSource(String source) {
_checkClosed();
- //FIXME
- throw new UnimplementedError();
+ var sink = new StringBuffer();
+ var node = _parse(source, _renderer._lenient, _renderer._templateName);
+ var renderer = new _Renderer.lambda(
+ _renderer, node, source, _renderer._indent, sink);
+ renderer.render();
+ return sink.toString();
}
/// Lookup the value of a variable in the current context.
diff --git a/lib/src/template.dart b/lib/src/template.dart
index e13113e..0ad6ec2 100644
--- a/lib/src/template.dart
+++ b/lib/src/template.dart
@@ -138,7 +138,24 @@
renderer._templateName,
renderer._indent,
renderer._source);
-
+
+ _Renderer.lambda(
+ _Renderer renderer,
+ _Node node,
+ String source,
+ String indent,
+ StringSink sink)
+ : this(node,
+ sink,
+ renderer._values,
+ renderer._stack,
+ renderer._lenient,
+ renderer._htmlEscapeValues,
+ renderer._partialResolver,
+ renderer._templateName,
+ renderer._indent + indent,
+ source);
+
final _Node _root;
final StringSink _sink;
final _values;