Allow iterable items to be targeted by index
diff --git a/lib/template.dart b/lib/template.dart
index a38df32..7b3a17b 100644
--- a/lib/template.dart
+++ b/lib/template.dart
@@ -3,6 +3,7 @@
final Object _NO_SUCH_PROPERTY = new Object();
final RegExp _validTag = new RegExp(r'^[0-9a-zA-Z\_\-\.]+$');
+final RegExp _integerTag = new RegExp(r'^[0-9]+$');
Template _parse(String source, {bool lenient : false}) {
var tokens = _scan(source, lenient);
@@ -151,6 +152,9 @@
if (object is Map && object.containsKey(name)) {
return object[name];
}
+ if (object is List && _integerTag.hasMatch(name)) {
+ return object[int.parse(name)];
+ }
if (_lenient && !_validTag.hasMatch(name)) {
return _NO_SUCH_PROPERTY;
}