Skip to content

Commit

Permalink
0.6.1-dev.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ykmnkmi committed May 11, 2024
1 parent f2d1adb commit 22adddc
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 46 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## 0.6.1-dev.0 ([diff](https://github.com/ykmnkmi/jinja.dart/compare/88996f8..main))
## 0.6.1-dev.1 ([diff](https://github.com/ykmnkmi/jinja.dart/compare/88996f8..main))
- added:
- `UndefinedError` exception
- `UndefinedFactory` typedef
Expand Down
3 changes: 1 addition & 2 deletions lib/src/context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,14 @@ base class Context {

Object? resolve(String key) {
if (context.containsKey(key)) {
print('key: $key');
return context[key];
}

if (parent.containsKey(key)) {
return parent[key];
}

return environment.undefined(key);
return environment.undefined?.call(key);
}

Object? attribute(String key, Object? value) {
Expand Down
5 changes: 0 additions & 5 deletions lib/src/defaults.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:jinja/src/context.dart';
import 'package:jinja/src/exceptions.dart';
import 'package:jinja/src/namespace.dart';
import 'package:jinja/src/utils.dart';

Expand Down Expand Up @@ -30,7 +29,3 @@ Object? getItem(Object? item, dynamic object) {
return null;
}
}

Object? undefined(String name) {
throw UndefinedError('$name is not defined.');
}
6 changes: 3 additions & 3 deletions lib/src/environment.dart
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ base class Environment {
Random? random,
AttributeGetter? getAttribute,
this.getItem = defaults.getItem,
this.undefined = defaults.undefined,
this.undefined,
}) : finalize = wrapFinalizer(finalize),
globals = HashMap<String, Object?>.of(defaults.globals),
filters = HashMap<String, Function>.of(defaults.filters),
Expand Down Expand Up @@ -268,7 +268,7 @@ base class Environment {
/// Get an undefined object or throw an error if the variable is not found.
///
/// Default implementation throws [UndefinedError].
final UndefinedFactory undefined;
final UndefinedFactory? undefined;

@override
int get hashCode {
Expand Down Expand Up @@ -541,7 +541,7 @@ base class Template {
Random? random,
AttributeGetter? getAttribute,
ItemGetter getItem = defaults.getItem,
UndefinedFactory undefined = defaults.undefined,
UndefinedFactory? undefined,
}) {
if (environment == null) {
return Environment(
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: jinja
version: 0.6.1-dev.0
version: 0.6.1-dev.1
description: >-
Jinja2 template engine for Dart.
Variables, expressions, control structures and template inheritance.
Expand Down
32 changes: 1 addition & 31 deletions test/check.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,8 @@ const JsonEncoder jsonEncoder = JsonEncoder.withIndent(' ');
const String source = '''
{{ user.name }}''';

Object? undefined(String key) {
return Undefined(key);
}

final class Undefined {
const Undefined(this.name);

final String name;

Object? operator [](Object? key) {
if (key is int) {
throw UndefinedError('$name has no element $key');
}

throw UndefinedError('$name has no property $key');
}

@override
dynamic noSuchMethod(Invocation invocation) {
var symbol = '${invocation.memberName}'; // Symbol('name')
var memberName = symbol.substring(8, symbol.length - 2);
throw UndefinedError('$name has no property $memberName');
}

@override
String toString() {
return 'Undefined($name)';
}
}

void main() {
var environment = Environment(undefined: undefined);
var environment = Environment();

var tokens = environment.lex(source);
// print('tokens:');
Expand Down
4 changes: 1 addition & 3 deletions test/file_system_loader_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@
library;

import 'dart:convert';
import 'dart:io';

import 'package:jinja/jinja.dart';
import 'package:jinja/loaders.dart';
import 'package:test/test.dart';

void main() {
var pathUri = Directory.current.uri.resolve('test/res/templates');
var paths = <String>[pathUri.path];
var paths = <String>['test/res/templates'];

group('FileSystemLoader', () {
test('paths', () {
Expand Down

0 comments on commit 22adddc

Please sign in to comment.