| Index: sky/specs/frameworks.md
|
| diff --git a/sky/specs/frameworks.md b/sky/specs/frameworks.md
|
| deleted file mode 100644
|
| index f7d91a517f6f7347e3687548a8bd79b832b43853..0000000000000000000000000000000000000000
|
| --- a/sky/specs/frameworks.md
|
| +++ /dev/null
|
| @@ -1,31 +0,0 @@
|
| -Frameworks
|
| -----------
|
| -
|
| -Sky is intended to support multiple frameworks. Here is one way you
|
| -could register a custom element using Dart annotations:
|
| -
|
| -```dart
|
| -// @tagname annotation for registering elements
|
| -// only useful when placed on classes that inherit from Element
|
| -class tagname extends AutomaticMetadata {
|
| - const tagname(this.name);
|
| - final String name;
|
| - void init(DeclarationMirror target, Module module, ScriptElement script) {
|
| - assert(target is ClassMirror);
|
| - if (!(target as ClassMirror).isSubclassOf(reflectClass(Element)))
|
| - throw new UnsupportedError('@tagname can only be used on descendants of Element');
|
| - module.registerElement(name, (target as ClassMirror).reflectedType);
|
| - }
|
| -}
|
| -```
|
| -
|
| -A framework that used the above code could use the following code to
|
| -get the tag name of an element:
|
| -
|
| -```dart
|
| -String getTagName(Element element) { // O(N) in number of annotations on the class
|
| - // throws a StateError if the class doesn't have an @tagname annotation
|
| - var tagnameClass = reflectClass(tagname);
|
| - return (reflectClass(element.runtimeType).metadata.singleWhere((mirror) => mirror.type == tagnameClass).reflectee as tagname).name;
|
| -}
|
| -```
|
|
|