Permalink
Browse files

Add polymer and paper elements

  • Loading branch information...
Penn Su
Penn Su committed Jul 10, 2014
1 parent 783c4d9 commit 39b977562fcd760750eeee1fb05c8d9a7ccfeeb1
Showing 818 changed files with 63,514 additions and 1 deletion.
View
@@ -8,7 +8,10 @@
"firebase": "~1.0.17",
"firebase-simple-login": "~1.6.1",
"angularfire": "~0.7.1",
- "moment": "~2.7.0"
+ "moment": "~2.7.0",
+ "polymer": "Polymer/polymer#~0.3.3",
+ "core-elements": "Polymer/core-elements#~0.3.3",
+ "paper-elements": "Polymer/paper-elements#~0.3.3"
},
"resolutions": {
"firebase-simple-login": "~1.6.1"
View
@@ -20,6 +20,9 @@
<script src="lib/firebase-simple-login/firebase-simple-login.js"></script>
<script src="lib/angularfire/angularfire.js"></script>
<script src="lib/moment/moment.js"></script>
+ <script src="lib/platform/platform.js"></script>
+
+ <link rel="import" href="lib/core-ajax/core-ajax.html">
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
@@ -0,0 +1,16 @@
+{
+ "name": "context-free-parser",
+ "private": true,
+ "dependencies": {},
+ "homepage": "https://github.com/Polymer/context-free-parser",
+ "version": "0.3.3",
+ "_release": "0.3.3",
+ "_resolution": {
+ "type": "version",
+ "tag": "0.3.3",
+ "commit": "ed5593b5fcaebfe2205b7980674d872156b516c4"
+ },
+ "_source": "git://github.com/Polymer/context-free-parser.git",
+ "_target": ">=0.3.0 <1.0.0",
+ "_originalSource": "Polymer/context-free-parser"
+}
@@ -0,0 +1,4 @@
+context-free-parser
+===================
+
+See the [component landing page](http://polymer.github.io/context-free-parser) for more information.
@@ -0,0 +1,5 @@
+{
+ "name": "context-free-parser",
+ "private": true,
+ "dependencies": {}
+}
@@ -0,0 +1,40 @@
+<script src="context-free-parser.js"></script>
+<link rel="import" href="../core-ajax/core-ajax.html">
+
+<!--
+Scrapes source documentation data from input text or url.
+
+@class context-free-parser
+-->
+<polymer-element name="context-free-parser" attributes="url text data">
+<template>
+
+ <core-ajax url="{{url}}" response="{{text}}" auto></core-ajax>
+
+</template>
+<script>
+
+ Polymer('context-free-parser', {
+
+ text: null,
+
+ textChanged: function() {
+ if (this.text) {
+ var entities = ContextFreeParser.parse(this.text);
+ if (!entities || entities.length === 0) {
+ entities = [
+ {name: this.url.split('/').pop(), description: '**Undocumented**'}
+ ];
+ }
+ this.data = { classes: entities };
+ }
+ },
+
+ dataChanged: function() {
+ this.fire('data-ready');
+ }
+
+ });
+
+</script>
+</polymer-element>
@@ -0,0 +1,105 @@
+(function(scope) {
+
+ var ContextFreeParser = {
+ parse: function(text) {
+ var top = {};
+ var entities = [];
+ var current = top;
+ var subCurrent = {};
+
+ var scriptDocCommentClause = '\\/\\*\\*([\\s\\S]*?)\\*\\/';
+ var htmlDocCommentClause = '<!--([\\s\\S]*?)-->';
+
+ // matches text between /** and */ inclusive and <!-- and --> inclusive
+ var docCommentRegex = new RegExp(scriptDocCommentClause + '|' + htmlDocCommentClause, 'g');
+
+ // acquire all script doc comments
+ var docComments = text.match(docCommentRegex) || [];
+
+ // each match represents a single block of doc comments
+ docComments.forEach(function(m) {
+ // unify line ends, remove all comment characters, split into individual lines
+ var lines = m.replace(/\r\n/g, '\n').replace(/^\s*\/\*\*|^\s*\*\/|^\s*\* ?|^\s*\<\!-\-|^s*\-\-\>/gm, '').split('\n');
+
+ // pragmas (@-rules) must occur on a line by themselves
+ var pragmas = [];
+ // filter lines whose first non-whitespace character is @ into the pragma list
+ // (and out of the `lines` array)
+ lines = lines.filter(function(l) {
+ var m = l.match(/\s*@([\w-]*) (.*)/);
+ if (!m) {
+ return true;
+ }
+ pragmas.push(m);
+ });
+
+ // collect all other text into a single block
+ var code = lines.join('\n');
+
+ // process pragmas
+ pragmas.forEach(function(m) {
+ var pragma = m[1], content = m[2];
+ switch (pragma) {
+
+ // currently all entities are either @class or @element
+ case 'class':
+ case 'element':
+ current = {
+ name: content,
+ description: code
+ };
+ entities.push(current);
+ break;
+
+ // an entity may have these describable sub-features
+ case 'attribute':
+ case 'property':
+ case 'method':
+ case 'event':
+ subCurrent = {
+ name: content,
+ description: code
+ };
+ var label = pragma == 'property' ? 'properties' : pragma + 's';
+ makePragma(current, label, subCurrent);
+ break;
+
+ // sub-feature pragmas
+ case 'default':
+ case 'type':
+ subCurrent[pragma] = content;
+ break;
+
+ // everything else
+ default:
+ current[pragma] = content;
+ break;
+ }
+ });
+
+ // utility function, yay hoisting
+ function makePragma(object, pragma, content) {
+ var p$ = object;
+ var p = p$[pragma];
+ if (!p) {
+ p$[pragma] = p = [];
+ }
+ p.push(content);
+ }
+
+ });
+
+ if (entities.length === 0) {
+ entities.push({name: 'Entity', description: '**Undocumented**'});
+ }
+ return entities;
+ }
+ };
+
+ if (typeof module !== 'undefined' && module.exports) {
+ module.exports = ContextFreeParser;
+ } else {
+ scope.ContextFreeParser = ContextFreeParser;
+ }
+
+})(this);
@@ -0,0 +1,25 @@
+<!doctype html>
+<html>
+<head>
+
+ <title>context-free-parser</title>
+
+ <script src="../platform/platform.js"></script>
+
+ <link rel="import" href="context-free-parser.html">
+
+</head>
+
+<body unresolved>
+
+ <context-free-parser url="../core-ajax/core-ajax.html"></context-free-parser>
+
+ <script>
+ addEventListener('data-ready', function(event) {
+ console.dir(event.target.data);
+ });
+ </script>
+
+</body>
+
+</html>
@@ -0,0 +1,23 @@
+<!doctype html>
+<!--
+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
+The complete set of authors may be found at http://polymer.github.io/AUTHORS
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
+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
+-->
+<html>
+<head>
+
+ <script src="../platform/platform.js"></script>
+ <link rel="import" href="../polymer/polymer.html">
+ <link rel="import" href="../core-component-page/core-component-page.html">
+
+</head>
+<body unresolved>
+
+ <core-component-page></core-component-page>
+
+</body>
+</html>
@@ -0,0 +1,18 @@
+{
+ "name": "core-ajax",
+ "private": true,
+ "dependencies": {
+ "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ },
+ "homepage": "https://github.com/Polymer/core-ajax",
+ "version": "0.3.3",
+ "_release": "0.3.3",
+ "_resolution": {
+ "type": "version",
+ "tag": "0.3.3",
+ "commit": "b9cb6d8e2a5b91cbe752bdb89f5c58cadf92fad6"
+ },
+ "_source": "git://github.com/Polymer/core-ajax.git",
+ "_target": ">=0.3.0 <1.0.0",
+ "_originalSource": "Polymer/core-ajax"
+}
@@ -0,0 +1,4 @@
+core-ajax
+=========
+
+See the [component page](http://polymer.github.io/core-ajax) for more information.
@@ -0,0 +1,7 @@
+{
+ "name": "core-ajax",
+ "private": true,
+ "dependencies": {
+ "polymer": "Polymer/polymer#>=0.3.0 <1.0.0"
+ }
+}
Oops, something went wrong.

0 comments on commit 39b9775

Please sign in to comment.