This repository has been archived by the owner on Mar 13, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathextern-generator.html
72 lines (66 loc) · 2.49 KB
/
extern-generator.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<link rel="import" href="../context-free-parser/context-free-parser.html">
<!--
Scrapes source documentation data from input text or url and prints closure externs.
@class extern-generator
-->
<polymer-element name="extern-generator" attributes="url">
<template>
<context-free-parser url="{{url}}" data="{{data}}"></context-free-parser>
<template repeat="{{class in data.classes}}">
<div>
<h2>Externs for: {{class.name}}</h2>
<pre>
/**
* @fileoverview Generated closure compiler externs for {{class.name}}.
*
* @license
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
* This code may only be used under the BSD style license found at
* http://polymer.github.io/LICENSE.txt. The complete set of authors may be
* found at http://polymer.github.io/AUTHORS.txt. The complete set of
* contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt. Code
* distributed by Google as part of the polymer project is also subject to an
* additional IP rights grant found at http://polymer.github.io/PATENTS.txt.
*/
/** @constructor @extends [['{']]{{class.extends | toCamelCaseElement}}[['}']]<template bind="{{class.name | toCamelCaseElement as elementName}}"> **/
var {{elementName}} = new function() {};
<template repeat="{{attribute in class.attributes}}">
/**
{{attribute.description | commentify}}
* @type [['{']]{{attribute.type}}[['}']]
*/
{{elementName}}.prototype.{{attribute.name}}
</template>
</template>
</pre>
</div>
</template>
</template>
<script>
Polymer({
toCamelCaseElement: function(value) {
if (value == undefined) {
return "PolymerElement"
}
return value.split('-').map(function(value){
return value.toLowerCase().charAt(0).toUpperCase() + value.slice(1)
}).join("")+"Element";
},
commentify: function(value) {
splitlines = value.split("\n");
return splitlines.map(function(line){
return " * " + line
}).join("\n");
}
});
</script>
</polymer-element>