platform/lib/src/http/extensible.dart
2016-04-21 16:37:02 -04:00

26 lines
No EOL
728 B
Dart

part of angel_framework.http;
/// Basically an Expando whoops
class Extensible {
/// A set of custom properties that can be assigned to the server.
///
/// Useful for configuration and extension.
Map properties = {};
noSuchMethod(Invocation invocation) {
if (invocation.memberName != null) {
String name = MirrorSystem.getName(invocation.memberName);
if (properties.containsKey(name)) {
if (invocation.isGetter)
return properties[name];
else if (invocation.isMethod) {
return Function.apply(
properties[name], invocation.positionalArguments,
invocation.namedArguments);
}
}
}
super.noSuchMethod(invocation);
}
}