easycomments 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +14 -0
  5. data/LICENSE +21 -0
  6. data/README.md +92 -0
  7. data/Rakefile +49 -0
  8. data/_config.yml +28 -0
  9. data/bin/ec +45 -0
  10. data/config.ru +12 -0
  11. data/dashboard.rb +57 -0
  12. data/easycomments.gemspec +22 -0
  13. data/ec.rb +43 -0
  14. data/lib/easycomments/ec_configuration.rb +42 -0
  15. data/lib/easycomments/ec_dashboard_model.rb +70 -0
  16. data/lib/easycomments/ec_model.rb +47 -0
  17. data/lib/easycomments.rb +14 -0
  18. data/public/bower.json +32 -0
  19. data/public/bower_components/core-a11y-keys/.bower.json +28 -0
  20. data/public/bower_components/core-a11y-keys/README.md +4 -0
  21. data/public/bower_components/core-a11y-keys/bower.json +18 -0
  22. data/public/bower_components/core-a11y-keys/core-a11y-keys.html +335 -0
  23. data/public/bower_components/core-a11y-keys/demo.html +41 -0
  24. data/public/bower_components/core-a11y-keys/index.html +22 -0
  25. data/public/bower_components/core-ajax/.bower.json +22 -0
  26. data/public/bower_components/core-ajax/README.md +4 -0
  27. data/public/bower_components/core-ajax/bower.json +11 -0
  28. data/public/bower_components/core-ajax/core-ajax.html +434 -0
  29. data/public/bower_components/core-ajax/core-xhr.html +116 -0
  30. data/public/bower_components/core-ajax/demo-progress.html +65 -0
  31. data/public/bower_components/core-ajax/demo.html +43 -0
  32. data/public/bower_components/core-ajax/index.html +22 -0
  33. data/public/bower_components/core-ajax/metadata.html +23 -0
  34. data/public/bower_components/core-ajax/test/core-ajax-progress.html +108 -0
  35. data/public/bower_components/core-ajax/test/core-ajax-race.html +81 -0
  36. data/public/bower_components/core-ajax/test/core-ajax.html +287 -0
  37. data/public/bower_components/core-ajax/test/index.html +17 -0
  38. data/public/bower_components/core-collapse/.bower.json +21 -0
  39. data/public/bower_components/core-collapse/README.md +4 -0
  40. data/public/bower_components/core-collapse/bower.json +11 -0
  41. data/public/bower_components/core-collapse/core-collapse.css +16 -0
  42. data/public/bower_components/core-collapse/core-collapse.html +298 -0
  43. data/public/bower_components/core-collapse/demo.html +75 -0
  44. data/public/bower_components/core-collapse/index.html +22 -0
  45. data/public/bower_components/core-collapse/test/basic.html +85 -0
  46. data/public/bower_components/core-collapse/test/index.html +24 -0
  47. data/public/bower_components/core-component-page/.bower.json +19 -0
  48. data/public/bower_components/core-component-page/README.md +6 -0
  49. data/public/bower_components/core-component-page/bowager-logo.png +0 -0
  50. data/public/bower_components/core-component-page/bower.json +9 -0
  51. data/public/bower_components/core-component-page/core-component-page.html +37 -0
  52. data/public/bower_components/core-component-page/demo.html +23 -0
  53. data/public/bower_components/core-component-page/index.html +22 -0
  54. data/public/bower_components/core-drawer-panel/.bower.json +19 -0
  55. data/public/bower_components/core-drawer-panel/README.md +4 -0
  56. data/public/bower_components/core-drawer-panel/bower.json +9 -0
  57. data/public/bower_components/core-drawer-panel/core-drawer-panel.css +160 -0
  58. data/public/bower_components/core-drawer-panel/core-drawer-panel.html +418 -0
  59. data/public/bower_components/core-drawer-panel/demo.html +68 -0
  60. data/public/bower_components/core-drawer-panel/index.html +22 -0
  61. data/public/bower_components/core-drawer-panel/metadata.html +37 -0
  62. data/public/bower_components/core-focusable/.bower.json +18 -0
  63. data/public/bower_components/core-focusable/README.md +6 -0
  64. data/public/bower_components/core-focusable/bower.json +8 -0
  65. data/public/bower_components/core-focusable/core-focusable.html +4 -0
  66. data/public/bower_components/core-focusable/core-focusable.js +134 -0
  67. data/public/bower_components/core-focusable/demo.html +109 -0
  68. data/public/bower_components/core-focusable/polymer-mixin.js +35 -0
  69. data/public/bower_components/core-header-panel/.bower.json +18 -0
  70. data/public/bower_components/core-header-panel/README.md +4 -0
  71. data/public/bower_components/core-header-panel/bower.json +8 -0
  72. data/public/bower_components/core-header-panel/core-header-panel.css +78 -0
  73. data/public/bower_components/core-header-panel/core-header-panel.html +277 -0
  74. data/public/bower_components/core-header-panel/demo.html +100 -0
  75. data/public/bower_components/core-header-panel/index.html +23 -0
  76. data/public/bower_components/core-header-panel/metadata.html +37 -0
  77. data/public/bower_components/core-icon/.bower.json +19 -0
  78. data/public/bower_components/core-icon/README.md +4 -0
  79. data/public/bower_components/core-icon/bower.json +9 -0
  80. data/public/bower_components/core-icon/core-icon.css +16 -0
  81. data/public/bower_components/core-icon/core-icon.html +201 -0
  82. data/public/bower_components/core-icon/demo.html +44 -0
  83. data/public/bower_components/core-icon/index.html +22 -0
  84. data/public/bower_components/core-icon/metadata.html +21 -0
  85. data/public/bower_components/core-icon-button/.bower.json +18 -0
  86. data/public/bower_components/core-icon-button/README.md +4 -0
  87. data/public/bower_components/core-icon-button/bower.json +8 -0
  88. data/public/bower_components/core-icon-button/core-icon-button.css +75 -0
  89. data/public/bower_components/core-icon-button/core-icon-button.html +81 -0
  90. data/public/bower_components/core-icon-button/demo.html +35 -0
  91. data/public/bower_components/core-icon-button/index.html +22 -0
  92. data/public/bower_components/core-icon-button/metadata.html +20 -0
  93. data/public/bower_components/core-icons/.bower.json +24 -0
  94. data/public/bower_components/core-icons/.gitignore +2 -0
  95. data/public/bower_components/core-icons/README.md +8 -0
  96. data/public/bower_components/core-icons/av-icons.html +65 -0
  97. data/public/bower_components/core-icons/bower.json +14 -0
  98. data/public/bower_components/core-icons/communication-icons.html +54 -0
  99. data/public/bower_components/core-icons/core-icons.html +278 -0
  100. data/public/bower_components/core-icons/demo.html +98 -0
  101. data/public/bower_components/core-icons/device-icons.html +90 -0
  102. data/public/bower_components/core-icons/editor-icons.html +67 -0
  103. data/public/bower_components/core-icons/hardware-icons.html +56 -0
  104. data/public/bower_components/core-icons/image-icons.html +152 -0
  105. data/public/bower_components/core-icons/index.html +22 -0
  106. data/public/bower_components/core-icons/maps-icons.html +70 -0
  107. data/public/bower_components/core-icons/notification-icons.html +49 -0
  108. data/public/bower_components/core-icons/social-icons.html +39 -0
  109. data/public/bower_components/core-iconset/.bower.json +20 -0
  110. data/public/bower_components/core-iconset/README.md +4 -0
  111. data/public/bower_components/core-iconset/bower.json +10 -0
  112. data/public/bower_components/core-iconset/core-iconset.html +241 -0
  113. data/public/bower_components/core-iconset/demo.html +62 -0
  114. data/public/bower_components/core-iconset/index.html +22 -0
  115. data/public/bower_components/core-iconset/my-icons-big.png +0 -0
  116. data/public/bower_components/core-iconset/my-icons.png +0 -0
  117. data/public/bower_components/core-iconset-svg/.bower.json +19 -0
  118. data/public/bower_components/core-iconset-svg/README.md +4 -0
  119. data/public/bower_components/core-iconset-svg/bower.json +9 -0
  120. data/public/bower_components/core-iconset-svg/core-iconset-svg.html +168 -0
  121. data/public/bower_components/core-iconset-svg/demo.html +66 -0
  122. data/public/bower_components/core-iconset-svg/index.html +22 -0
  123. data/public/bower_components/core-iconset-svg/svg-sample-icons.html +68 -0
  124. data/public/bower_components/core-input/.bower.json +20 -0
  125. data/public/bower_components/core-input/README.md +2 -0
  126. data/public/bower_components/core-input/bower.json +10 -0
  127. data/public/bower_components/core-input/core-input.css +41 -0
  128. data/public/bower_components/core-input/core-input.html +148 -0
  129. data/public/bower_components/core-input/demo.html +62 -0
  130. data/public/bower_components/core-input/index.html +22 -0
  131. data/public/bower_components/core-input/metadata.html +23 -0
  132. data/public/bower_components/core-input/test/a11y.html +55 -0
  133. data/public/bower_components/core-input/test/basic.html +60 -0
  134. data/public/bower_components/core-input/test/index.html +25 -0
  135. data/public/bower_components/core-item/.bower.json +19 -0
  136. data/public/bower_components/core-item/README.md +4 -0
  137. data/public/bower_components/core-item/bower.json +9 -0
  138. data/public/bower_components/core-item/core-item.css +45 -0
  139. data/public/bower_components/core-item/core-item.html +73 -0
  140. data/public/bower_components/core-item/demo.html +92 -0
  141. data/public/bower_components/core-item/index.html +22 -0
  142. data/public/bower_components/core-item/metadata.html +24 -0
  143. data/public/bower_components/core-media-query/.bower.json +18 -0
  144. data/public/bower_components/core-media-query/README.md +4 -0
  145. data/public/bower_components/core-media-query/bower.json +8 -0
  146. data/public/bower_components/core-media-query/core-media-query.html +87 -0
  147. data/public/bower_components/core-media-query/demo.html +44 -0
  148. data/public/bower_components/core-media-query/index.html +22 -0
  149. data/public/bower_components/core-menu/.bower.json +22 -0
  150. data/public/bower_components/core-menu/README.md +4 -0
  151. data/public/bower_components/core-menu/bower.json +11 -0
  152. data/public/bower_components/core-menu/core-menu.css +18 -0
  153. data/public/bower_components/core-menu/core-menu.html +73 -0
  154. data/public/bower_components/core-menu/core-submenu.css +43 -0
  155. data/public/bower_components/core-menu/core-submenu.html +126 -0
  156. data/public/bower_components/core-menu/demo.html +101 -0
  157. data/public/bower_components/core-menu/index.html +22 -0
  158. data/public/bower_components/core-menu/metadata.html +62 -0
  159. data/public/bower_components/core-meta/.bower.json +18 -0
  160. data/public/bower_components/core-meta/README.md +4 -0
  161. data/public/bower_components/core-meta/bower.json +8 -0
  162. data/public/bower_components/core-meta/core-meta.html +145 -0
  163. data/public/bower_components/core-meta/demo.html +58 -0
  164. data/public/bower_components/core-meta/index.html +22 -0
  165. data/public/bower_components/core-overlay/.bower.json +20 -0
  166. data/public/bower_components/core-overlay/README.md +4 -0
  167. data/public/bower_components/core-overlay/bower.json +10 -0
  168. data/public/bower_components/core-overlay/core-key-helper.html +22 -0
  169. data/public/bower_components/core-overlay/core-overlay-layer.html +116 -0
  170. data/public/bower_components/core-overlay/core-overlay.html +776 -0
  171. data/public/bower_components/core-overlay/demo.html +155 -0
  172. data/public/bower_components/core-overlay/gulpfile.js +2 -0
  173. data/public/bower_components/core-overlay/index.html +22 -0
  174. data/public/bower_components/core-overlay/tests/html/core-overlay-basic.html +127 -0
  175. data/public/bower_components/core-overlay/tests/html/core-overlay-positioning-margin.html +153 -0
  176. data/public/bower_components/core-overlay/tests/html/core-overlay-positioning.html +167 -0
  177. data/public/bower_components/core-overlay/tests/html/core-overlay-quick-close.html +45 -0
  178. data/public/bower_components/core-overlay/tests/html/core-overlay-scroll.html +130 -0
  179. data/public/bower_components/core-overlay/tests/js/htmltests.js +7 -0
  180. data/public/bower_components/core-overlay/tests/runner.html +14 -0
  181. data/public/bower_components/core-overlay/tests/tests.json +6 -0
  182. data/public/bower_components/core-pages/.bower.json +19 -0
  183. data/public/bower_components/core-pages/README.md +4 -0
  184. data/public/bower_components/core-pages/bower.json +8 -0
  185. data/public/bower_components/core-pages/core-pages.css +30 -0
  186. data/public/bower_components/core-pages/core-pages.html +44 -0
  187. data/public/bower_components/core-pages/demo.html +136 -0
  188. data/public/bower_components/core-pages/index.html +22 -0
  189. data/public/bower_components/core-pages/metadata.html +25 -0
  190. data/public/bower_components/core-resizable/.bower.json +18 -0
  191. data/public/bower_components/core-resizable/README.md +4 -0
  192. data/public/bower_components/core-resizable/bower.json +8 -0
  193. data/public/bower_components/core-resizable/core-resizable.html +248 -0
  194. data/public/bower_components/core-resizable/index.html +22 -0
  195. data/public/bower_components/core-resizable/test/basic.html +504 -0
  196. data/public/bower_components/core-resizable/test/index.html +16 -0
  197. data/public/bower_components/core-resizable/test/test-elements.html +66 -0
  198. data/public/bower_components/core-scaffold/.bower.json +22 -0
  199. data/public/bower_components/core-scaffold/README.md +4 -0
  200. data/public/bower_components/core-scaffold/bower.json +11 -0
  201. data/public/bower_components/core-scaffold/core-scaffold.html +252 -0
  202. data/public/bower_components/core-scaffold/demo.html +82 -0
  203. data/public/bower_components/core-scaffold/index.html +22 -0
  204. data/public/bower_components/core-scaffold/metadata.html +52 -0
  205. data/public/bower_components/core-selection/.bower.json +21 -0
  206. data/public/bower_components/core-selection/README.md +4 -0
  207. data/public/bower_components/core-selection/bower.json +11 -0
  208. data/public/bower_components/core-selection/core-selection.html +149 -0
  209. data/public/bower_components/core-selection/demo.html +59 -0
  210. data/public/bower_components/core-selection/index.html +22 -0
  211. data/public/bower_components/core-selection/test/basic.html +62 -0
  212. data/public/bower_components/core-selection/test/index.html +25 -0
  213. data/public/bower_components/core-selection/test/multi.html +63 -0
  214. data/public/bower_components/core-selector/.bower.json +22 -0
  215. data/public/bower_components/core-selector/.gitignore +2 -0
  216. data/public/bower_components/core-selector/README.md +4 -0
  217. data/public/bower_components/core-selector/bower.json +12 -0
  218. data/public/bower_components/core-selector/core-selector.html +548 -0
  219. data/public/bower_components/core-selector/demo.html +106 -0
  220. data/public/bower_components/core-selector/index.html +22 -0
  221. data/public/bower_components/core-selector/metadata.html +20 -0
  222. data/public/bower_components/core-selector/test/activate-event.html +63 -0
  223. data/public/bower_components/core-selector/test/basic.html +126 -0
  224. data/public/bower_components/core-selector/test/content.html +101 -0
  225. data/public/bower_components/core-selector/test/index.html +30 -0
  226. data/public/bower_components/core-selector/test/multi.html +115 -0
  227. data/public/bower_components/core-selector/test/next-previous.html +113 -0
  228. data/public/bower_components/core-selector/test/selected-attr-prop.html +62 -0
  229. data/public/bower_components/core-selector/test/template-repeat.html +63 -0
  230. data/public/bower_components/core-style/.bower.json +18 -0
  231. data/public/bower_components/core-style/README.md +4 -0
  232. data/public/bower_components/core-style/bower.json +8 -0
  233. data/public/bower_components/core-style/core-style.html +387 -0
  234. data/public/bower_components/core-style/demo.html +58 -0
  235. data/public/bower_components/core-style/elements.html +55 -0
  236. data/public/bower_components/core-style/index.html +22 -0
  237. data/public/bower_components/core-style/my-theme.html +73 -0
  238. data/public/bower_components/core-toolbar/.bower.json +19 -0
  239. data/public/bower_components/core-toolbar/README.md +4 -0
  240. data/public/bower_components/core-toolbar/bower.json +9 -0
  241. data/public/bower_components/core-toolbar/core-toolbar.css +117 -0
  242. data/public/bower_components/core-toolbar/core-toolbar.html +155 -0
  243. data/public/bower_components/core-toolbar/demo.html +119 -0
  244. data/public/bower_components/core-toolbar/index.html +22 -0
  245. data/public/bower_components/core-toolbar/metadata.html +28 -0
  246. data/public/bower_components/core-toolbar/test/basic.html +86 -0
  247. data/public/bower_components/core-toolbar/test/index.html +24 -0
  248. data/public/bower_components/core-transition/.bower.json +19 -0
  249. data/public/bower_components/core-transition/README.md +2 -0
  250. data/public/bower_components/core-transition/bower.json +9 -0
  251. data/public/bower_components/core-transition/core-transition-css.html +220 -0
  252. data/public/bower_components/core-transition/core-transition-overlay.css +46 -0
  253. data/public/bower_components/core-transition/core-transition.html +140 -0
  254. data/public/bower_components/core-transition/demo.html +87 -0
  255. data/public/bower_components/core-transition/index.html +22 -0
  256. data/public/bower_components/font-roboto/.bower.json +15 -0
  257. data/public/bower_components/font-roboto/roboto.html +9 -0
  258. data/public/bower_components/paper-button/.bower.json +27 -0
  259. data/public/bower_components/paper-button/README.md +4 -0
  260. data/public/bower_components/paper-button/bower.json +16 -0
  261. data/public/bower_components/paper-button/demo.html +157 -0
  262. data/public/bower_components/paper-button/index.html +22 -0
  263. data/public/bower_components/paper-button/metadata.html +17 -0
  264. data/public/bower_components/paper-button/paper-button-base.html +164 -0
  265. data/public/bower_components/paper-button/paper-button.html +197 -0
  266. data/public/bower_components/paper-button/test/index.html +24 -0
  267. data/public/bower_components/paper-button/test/paper-button.html +112 -0
  268. data/public/bower_components/paper-icon-button/.bower.json +25 -0
  269. data/public/bower_components/paper-icon-button/README.md +4 -0
  270. data/public/bower_components/paper-icon-button/bower.json +15 -0
  271. data/public/bower_components/paper-icon-button/demo.html +150 -0
  272. data/public/bower_components/paper-icon-button/index.html +22 -0
  273. data/public/bower_components/paper-icon-button/metadata.html +21 -0
  274. data/public/bower_components/paper-icon-button/paper-icon-button.html +154 -0
  275. data/public/bower_components/paper-icon-button/test/a11y.html +68 -0
  276. data/public/bower_components/paper-icon-button/test/basic.html +50 -0
  277. data/public/bower_components/paper-icon-button/test/index.html +25 -0
  278. data/public/bower_components/paper-input/.bower.json +26 -0
  279. data/public/bower_components/paper-input/.gitignore +1 -0
  280. data/public/bower_components/paper-input/README.md +4 -0
  281. data/public/bower_components/paper-input/bower.json +15 -0
  282. data/public/bower_components/paper-input/demo.html +236 -0
  283. data/public/bower_components/paper-input/index.html +22 -0
  284. data/public/bower_components/paper-input/metadata.html +20 -0
  285. data/public/bower_components/paper-input/paper-autogrow-textarea.html +162 -0
  286. data/public/bower_components/paper-input/paper-char-counter.html +121 -0
  287. data/public/bower_components/paper-input/paper-input-decorator.css +132 -0
  288. data/public/bower_components/paper-input/paper-input-decorator.html +547 -0
  289. data/public/bower_components/paper-input/paper-input.html +145 -0
  290. data/public/bower_components/paper-input/test/index.html +26 -0
  291. data/public/bower_components/paper-input/test/paper-autogrow-textarea.html +146 -0
  292. data/public/bower_components/paper-input/test/paper-input-decorator.html +240 -0
  293. data/public/bower_components/paper-input/test/paper-input.html +68 -0
  294. data/public/bower_components/paper-input/test/util.js +15 -0
  295. data/public/bower_components/paper-radio-button/.bower.json +22 -0
  296. data/public/bower_components/paper-radio-button/README.md +4 -0
  297. data/public/bower_components/paper-radio-button/bower.json +12 -0
  298. data/public/bower_components/paper-radio-button/demo.html +84 -0
  299. data/public/bower_components/paper-radio-button/index.html +22 -0
  300. data/public/bower_components/paper-radio-button/metadata.html +17 -0
  301. data/public/bower_components/paper-radio-button/paper-radio-button.css +108 -0
  302. data/public/bower_components/paper-radio-button/paper-radio-button.html +166 -0
  303. data/public/bower_components/paper-ripple/.bower.json +23 -0
  304. data/public/bower_components/paper-ripple/README.md +4 -0
  305. data/public/bower_components/paper-ripple/bower.json +13 -0
  306. data/public/bower_components/paper-ripple/demo.html +414 -0
  307. data/public/bower_components/paper-ripple/index.html +22 -0
  308. data/public/bower_components/paper-ripple/metadata.html +20 -0
  309. data/public/bower_components/paper-ripple/paper-ripple.html +477 -0
  310. data/public/bower_components/paper-ripple/test/index.html +24 -0
  311. data/public/bower_components/paper-ripple/test/position.html +109 -0
  312. data/public/bower_components/paper-shadow/.bower.json +22 -0
  313. data/public/bower_components/paper-shadow/README.md +4 -0
  314. data/public/bower_components/paper-shadow/bower.json +11 -0
  315. data/public/bower_components/paper-shadow/demo.html +134 -0
  316. data/public/bower_components/paper-shadow/index.html +22 -0
  317. data/public/bower_components/paper-shadow/metadata.html +17 -0
  318. data/public/bower_components/paper-shadow/paper-shadow.css +66 -0
  319. data/public/bower_components/paper-shadow/paper-shadow.html +86 -0
  320. data/public/bower_components/paper-shadow/test/basic.html +62 -0
  321. data/public/bower_components/paper-shadow/test/index.html +24 -0
  322. data/public/bower_components/paper-tabs/.bower.json +26 -0
  323. data/public/bower_components/paper-tabs/README.md +4 -0
  324. data/public/bower_components/paper-tabs/bower.json +15 -0
  325. data/public/bower_components/paper-tabs/demo.html +242 -0
  326. data/public/bower_components/paper-tabs/index.html +22 -0
  327. data/public/bower_components/paper-tabs/metadata.html +58 -0
  328. data/public/bower_components/paper-tabs/paper-tab.css +59 -0
  329. data/public/bower_components/paper-tabs/paper-tab.html +82 -0
  330. data/public/bower_components/paper-tabs/paper-tabs.css +80 -0
  331. data/public/bower_components/paper-tabs/paper-tabs.html +353 -0
  332. data/public/bower_components/paper-toast/.bower.json +22 -0
  333. data/public/bower_components/paper-toast/README.md +4 -0
  334. data/public/bower_components/paper-toast/bower.json +11 -0
  335. data/public/bower_components/paper-toast/demo.html +63 -0
  336. data/public/bower_components/paper-toast/index.html +22 -0
  337. data/public/bower_components/paper-toast/metadata.html +20 -0
  338. data/public/bower_components/paper-toast/paper-toast.css +80 -0
  339. data/public/bower_components/paper-toast/paper-toast.html +296 -0
  340. data/public/bower_components/paper-toggle-button/.bower.json +20 -0
  341. data/public/bower_components/paper-toggle-button/README.md +4 -0
  342. data/public/bower_components/paper-toggle-button/bower.json +9 -0
  343. data/public/bower_components/paper-toggle-button/demo.html +97 -0
  344. data/public/bower_components/paper-toggle-button/index.html +22 -0
  345. data/public/bower_components/paper-toggle-button/metadata.html +17 -0
  346. data/public/bower_components/paper-toggle-button/paper-toggle-button.css +95 -0
  347. data/public/bower_components/paper-toggle-button/paper-toggle-button.html +179 -0
  348. data/public/bower_components/polymer/.bower.json +32 -0
  349. data/public/bower_components/polymer/README.md +21 -0
  350. data/public/bower_components/polymer/bower.json +23 -0
  351. data/public/bower_components/polymer/build.log +26 -0
  352. data/public/bower_components/polymer/layout.html +286 -0
  353. data/public/bower_components/polymer/polymer.html +12 -0
  354. data/public/bower_components/polymer/polymer.js +11859 -0
  355. data/public/bower_components/polymer/polymer.min.js +14 -0
  356. data/public/bower_components/webcomponentsjs/.bower.json +23 -0
  357. data/public/bower_components/webcomponentsjs/CustomElements.js +634 -0
  358. data/public/bower_components/webcomponentsjs/CustomElements.min.js +11 -0
  359. data/public/bower_components/webcomponentsjs/HTMLImports.js +764 -0
  360. data/public/bower_components/webcomponentsjs/HTMLImports.min.js +11 -0
  361. data/public/bower_components/webcomponentsjs/README.md +73 -0
  362. data/public/bower_components/webcomponentsjs/ShadowDOM.js +4277 -0
  363. data/public/bower_components/webcomponentsjs/ShadowDOM.min.js +13 -0
  364. data/public/bower_components/webcomponentsjs/bower.json +14 -0
  365. data/public/bower_components/webcomponentsjs/build.log +31 -0
  366. data/public/bower_components/webcomponentsjs/package.json +31 -0
  367. data/public/bower_components/webcomponentsjs/webcomponents-lite.js +1728 -0
  368. data/public/bower_components/webcomponentsjs/webcomponents-lite.min.js +11 -0
  369. data/public/bower_components/webcomponentsjs/webcomponents.js +6114 -0
  370. data/public/bower_components/webcomponentsjs/webcomponents.min.js +14 -0
  371. data/public/css/main.css +41 -0
  372. data/public/elements/ec-dashboard/ec-dashboard.html +269 -0
  373. data/public/polymer-loader.html +24 -0
  374. data/public/polymer-loader.vulcanized.html +19 -0
  375. data/spec/ec/ec_dashboard_spec.rb +78 -0
  376. data/spec/ec/ec_spec.rb +78 -0
  377. data/spec/spec_helper.rb +27 -0
  378. data/views/index.html +88 -0
  379. metadata +464 -0
@@ -0,0 +1,434 @@
1
+ <!--
2
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6
+ Code distributed by Google as part of the polymer project is also
7
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8
+ -->
9
+
10
+ <!--
11
+ @group Polymer Core Elements
12
+
13
+ The `core-ajax` element exposes `XMLHttpRequest` functionality.
14
+
15
+ <core-ajax
16
+ auto
17
+ url="http://gdata.youtube.com/feeds/api/videos/"
18
+ params='{"alt":"json", "q":"chrome"}'
19
+ handleAs="json"
20
+ on-core-response="{{handleResponse}}"></core-ajax>
21
+
22
+ With `auto` set to `true`, the element performs a request whenever
23
+ its `url`, `params` or `body` properties are changed.
24
+
25
+ Note: The `params` attribute must be double quoted JSON.
26
+
27
+ You can trigger a request explicitly by calling `go` on the
28
+ element.
29
+
30
+ @element core-ajax
31
+ @status beta
32
+ @homepage github.io
33
+ -->
34
+ <link rel="import" href="core-xhr.html">
35
+ <polymer-element name="core-ajax" hidden attributes="url handleAs auto params response error method headers body contentType withCredentials progress loading">
36
+ <script>
37
+
38
+ Polymer('core-ajax', {
39
+ /**
40
+ * Fired when a response is received.
41
+ *
42
+ * @event core-response
43
+ */
44
+
45
+ /**
46
+ * Fired when an error is received.
47
+ *
48
+ * @event core-error
49
+ */
50
+
51
+ /**
52
+ * Fired whenever a response or an error is received.
53
+ *
54
+ * @event core-complete
55
+ */
56
+
57
+ /**
58
+ * The URL target of the request.
59
+ *
60
+ * @attribute url
61
+ * @type string
62
+ * @default ''
63
+ */
64
+ url: '',
65
+
66
+ /**
67
+ * Specifies what data to store in the `response` property, and
68
+ * to deliver as `event.response` in `response` events.
69
+ *
70
+ * One of:
71
+ *
72
+ * `text`: uses `XHR.responseText`.
73
+ *
74
+ * `xml`: uses `XHR.responseXML`.
75
+ *
76
+ * `json`: uses `XHR.responseText` parsed as JSON.
77
+ *
78
+ * `arraybuffer`: uses `XHR.response`.
79
+ *
80
+ * `blob`: uses `XHR.response`.
81
+ *
82
+ * `document`: uses `XHR.response`.
83
+ *
84
+ * @attribute handleAs
85
+ * @type string
86
+ * @default 'text'
87
+ */
88
+ handleAs: '',
89
+
90
+ /**
91
+ * If true, automatically performs an Ajax request when either `url` or `params` changes.
92
+ *
93
+ * @attribute auto
94
+ * @type boolean
95
+ * @default false
96
+ */
97
+ auto: false,
98
+
99
+ /**
100
+ * Parameters to send to the specified URL, as JSON.
101
+ *
102
+ * @attribute params
103
+ * @type string
104
+ * @default ''
105
+ */
106
+ params: '',
107
+
108
+ /**
109
+ * The response for the current request, or null if it hasn't
110
+ * completed yet or the request resulted in error.
111
+ *
112
+ * @attribute response
113
+ * @type Object
114
+ * @default null
115
+ */
116
+ response: null,
117
+
118
+ /**
119
+ * The error for the current request, or null if it hasn't
120
+ * completed yet or the request resulted in success.
121
+ *
122
+ * @attribute error
123
+ * @type Object
124
+ * @default null
125
+ */
126
+ error: null,
127
+
128
+ /**
129
+ * Whether the current request is currently loading.
130
+ *
131
+ * @attribute loading
132
+ * @type boolean
133
+ * @default false
134
+ */
135
+ loading: false,
136
+
137
+ /**
138
+ * The progress of the current request.
139
+ *
140
+ * @attribute progress
141
+ * @type {loaded: number, total: number, lengthComputable: boolean}
142
+ * @default {}
143
+ */
144
+ progress: null,
145
+
146
+ /**
147
+ * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.
148
+ * Default is 'GET'.
149
+ *
150
+ * @attribute method
151
+ * @type string
152
+ * @default ''
153
+ */
154
+ method: '',
155
+
156
+ /**
157
+ * HTTP request headers to send.
158
+ *
159
+ * Example:
160
+ *
161
+ * <core-ajax
162
+ * auto
163
+ * url="http://somesite.com"
164
+ * headers='{"X-Requested-With": "XMLHttpRequest"}'
165
+ * handleAs="json"
166
+ * on-core-response="{{handleResponse}}"></core-ajax>
167
+ *
168
+ * @attribute headers
169
+ * @type Object
170
+ * @default null
171
+ */
172
+ headers: null,
173
+
174
+ /**
175
+ * Optional raw body content to send when method === "POST".
176
+ *
177
+ * Example:
178
+ *
179
+ * <core-ajax method="POST" auto url="http://somesite.com"
180
+ * body='{"foo":1, "bar":2}'>
181
+ * </core-ajax>
182
+ *
183
+ * @attribute body
184
+ * @type Object
185
+ * @default null
186
+ */
187
+ body: null,
188
+
189
+ /**
190
+ * Content type to use when sending data.
191
+ *
192
+ * @attribute contentType
193
+ * @type string
194
+ * @default 'application/x-www-form-urlencoded'
195
+ */
196
+ contentType: 'application/x-www-form-urlencoded',
197
+
198
+ /**
199
+ * Set the withCredentials flag on the request.
200
+ *
201
+ * @attribute withCredentials
202
+ * @type boolean
203
+ * @default false
204
+ */
205
+ withCredentials: false,
206
+
207
+ /**
208
+ * Additional properties to send to core-xhr.
209
+ *
210
+ * Can be set to an object containing default properties
211
+ * to send as arguments to the `core-xhr.request()` method
212
+ * which implements the low-level communication.
213
+ *
214
+ * @property xhrArgs
215
+ * @type Object
216
+ * @default null
217
+ */
218
+ xhrArgs: null,
219
+
220
+ created: function() {
221
+ this.progress = {};
222
+ },
223
+
224
+ ready: function() {
225
+ this.xhr = document.createElement('core-xhr');
226
+ },
227
+
228
+ receive: function(response, xhr) {
229
+ if (this.isSuccess(xhr)) {
230
+ this.processResponse(xhr);
231
+ } else {
232
+ this.processError(xhr);
233
+ }
234
+ this.complete(xhr);
235
+ },
236
+
237
+ isSuccess: function(xhr) {
238
+ var status = xhr.status || 0;
239
+ return (status >= 200 && status < 300);
240
+ },
241
+
242
+ processResponse: function(xhr) {
243
+ var response = this.evalResponse(xhr);
244
+ if (xhr === this.activeRequest) {
245
+ this.response = response;
246
+ }
247
+ this.fire('core-response', {response: response, xhr: xhr});
248
+ },
249
+
250
+ processError: function(xhr) {
251
+ var response = this.evalResponse(xhr);
252
+ var error = {
253
+ statusCode: xhr.status,
254
+ response: response
255
+ };
256
+ if (xhr === this.activeRequest) {
257
+ this.error = error;
258
+ }
259
+ this.fire('core-error', {response: error, xhr: xhr});
260
+ },
261
+
262
+ processProgress: function(progress, xhr) {
263
+ if (xhr !== this.activeRequest) {
264
+ return;
265
+ }
266
+ // We create a proxy object here because these fields
267
+ // on the progress event are readonly properties, which
268
+ // causes problems in common use cases (e.g. binding to
269
+ // <paper-progress> attributes).
270
+ var progressProxy = {
271
+ lengthComputable: progress.lengthComputable,
272
+ loaded: progress.loaded,
273
+ total: progress.total
274
+ }
275
+ this.progress = progressProxy;
276
+ },
277
+
278
+ complete: function(xhr) {
279
+ if (xhr === this.activeRequest) {
280
+ this.loading = false;
281
+ }
282
+ this.fire('core-complete', {response: xhr.status, xhr: xhr});
283
+ },
284
+
285
+ evalResponse: function(xhr) {
286
+ return this[(this.handleAs || 'text') + 'Handler'](xhr);
287
+ },
288
+
289
+ xmlHandler: function(xhr) {
290
+ return xhr.responseXML;
291
+ },
292
+
293
+ textHandler: function(xhr) {
294
+ return xhr.responseText;
295
+ },
296
+
297
+ jsonHandler: function(xhr) {
298
+ var r = xhr.responseText;
299
+ try {
300
+ return JSON.parse(r);
301
+ } catch (x) {
302
+ console.warn('core-ajax caught an exception trying to parse response as JSON:');
303
+ console.warn('url:', this.url);
304
+ console.warn(x);
305
+ return r;
306
+ }
307
+ },
308
+
309
+ documentHandler: function(xhr) {
310
+ return xhr.response;
311
+ },
312
+
313
+ blobHandler: function(xhr) {
314
+ return xhr.response;
315
+ },
316
+
317
+ arraybufferHandler: function(xhr) {
318
+ return xhr.response;
319
+ },
320
+
321
+ urlChanged: function() {
322
+ if (!this.handleAs) {
323
+ var ext = String(this.url).split('.').pop();
324
+ switch (ext) {
325
+ case 'json':
326
+ this.handleAs = 'json';
327
+ break;
328
+ }
329
+ }
330
+ this.autoGo();
331
+ },
332
+
333
+ paramsChanged: function() {
334
+ this.autoGo();
335
+ },
336
+
337
+ bodyChanged: function() {
338
+ this.autoGo();
339
+ },
340
+
341
+ autoChanged: function() {
342
+ this.autoGo();
343
+ },
344
+
345
+ // TODO(sorvell): multiple side-effects could call autoGo
346
+ // during one micro-task, use a job to have only one action
347
+ // occur
348
+ autoGo: function() {
349
+ if (this.auto) {
350
+ this.goJob = this.job(this.goJob, this.go, 0);
351
+ }
352
+ },
353
+
354
+ getParams: function(params) {
355
+ params = this.params || params;
356
+ if (params && typeof(params) == 'string') {
357
+ params = JSON.parse(params);
358
+ }
359
+ return params;
360
+ },
361
+
362
+ /**
363
+ * Performs an Ajax request to the specified URL.
364
+ *
365
+ * @method go
366
+ */
367
+ go: function() {
368
+ var args = this.xhrArgs || {};
369
+ // TODO(sjmiles): we may want XHR to default to POST if body is set
370
+ args.body = this.body || args.body;
371
+ args.params = this.getParams(args.params);
372
+ args.headers = this.headers || args.headers || {};
373
+ if (args.headers && typeof(args.headers) == 'string') {
374
+ args.headers = JSON.parse(args.headers);
375
+ }
376
+ var hasContentType = Object.keys(args.headers).some(function (header) {
377
+ return header.toLowerCase() === 'content-type';
378
+ });
379
+ // No Content-Type should be specified if sending `FormData`.
380
+ // The UA must set the Content-Type w/ a calculated multipart boundary ID.
381
+ if (args.body instanceof FormData) {
382
+ delete args.headers['Content-Type'];
383
+ }
384
+ else if (!hasContentType && this.contentType) {
385
+ args.headers['Content-Type'] = this.contentType;
386
+ }
387
+ if (this.handleAs === 'arraybuffer' || this.handleAs === 'blob' ||
388
+ this.handleAs === 'document') {
389
+ args.responseType = this.handleAs;
390
+ }
391
+ args.withCredentials = this.withCredentials;
392
+ args.callback = this.receive.bind(this);
393
+ args.url = this.url;
394
+ args.method = this.method;
395
+
396
+ this.response = this.error = this.progress = null;
397
+ this.activeRequest = args.url && this.xhr.request(args);
398
+ if (this.activeRequest) {
399
+ this.loading = true;
400
+ var activeRequest = this.activeRequest;
401
+ // IE < 10 doesn't support progress events.
402
+ if ('onprogress' in activeRequest) {
403
+ this.activeRequest.addEventListener(
404
+ 'progress',
405
+ function(progress) {
406
+ this.processProgress(progress, activeRequest);
407
+ }.bind(this), false);
408
+ } else {
409
+ this.progress = {
410
+ lengthComputable: false,
411
+ }
412
+ }
413
+ }
414
+ return this.activeRequest;
415
+ },
416
+
417
+ /**
418
+ * Aborts the current active request if there is one and resets internal
419
+ * state appropriately.
420
+ *
421
+ * @method abort
422
+ */
423
+ abort: function() {
424
+ if (!this.activeRequest) return;
425
+ this.activeRequest.abort();
426
+ this.activeRequest = null;
427
+ this.progress = {};
428
+ this.loading = false;
429
+ }
430
+
431
+ });
432
+
433
+ </script>
434
+ </polymer-element>
@@ -0,0 +1,116 @@
1
+ <!--
2
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6
+ Code distributed by Google as part of the polymer project is also
7
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
8
+ -->
9
+ <!--
10
+ /**
11
+ * @group Polymer Core Elements
12
+ *
13
+ * core-xhr can be used to perform XMLHttpRequests.
14
+ *
15
+ * <core-xhr id="xhr"></core-xhr>
16
+ * ...
17
+ * this.$.xhr.request({url: url, params: params, callback: callback});
18
+ *
19
+ * @element core-xhr
20
+ */
21
+ -->
22
+
23
+ <link rel="import" href="../polymer/polymer.html">
24
+
25
+ <polymer-element name="core-xhr" hidden>
26
+
27
+ <script>
28
+
29
+ Polymer('core-xhr', {
30
+
31
+ /**
32
+ * Sends a HTTP request to the server and returns the XHR object.
33
+ *
34
+ * @method request
35
+ * @param {Object} inOptions
36
+ * @param {String} inOptions.url The url to which the request is sent.
37
+ * @param {String} inOptions.method The HTTP method to use, default is GET.
38
+ * @param {boolean} inOptions.sync By default, all requests are sent asynchronously. To send synchronous requests, set to true.
39
+ * @param {Object} inOptions.params Data to be sent to the server.
40
+ * @param {Object} inOptions.body The content for the request body for POST method.
41
+ * @param {Object} inOptions.headers HTTP request headers.
42
+ * @param {String} inOptions.responseType The response type. Default is 'text'.
43
+ * @param {boolean} inOptions.withCredentials Whether or not to send credentials on the request. Default is false.
44
+ * @param {Object} inOptions.callback Called when request is completed.
45
+ * @returns {Object} XHR object.
46
+ */
47
+ request: function(options) {
48
+ var xhr = new XMLHttpRequest();
49
+ var url = options.url;
50
+ var method = options.method || 'GET';
51
+ var async = !options.sync;
52
+ //
53
+ var params = this.toQueryString(options.params);
54
+ if (params && method.toUpperCase() == 'GET') {
55
+ url += (url.indexOf('?') > 0 ? '&' : '?') + params;
56
+ }
57
+ var xhrParams = this.isBodyMethod(method) ? (options.body || params) : null;
58
+ //
59
+ xhr.open(method, url, async);
60
+ if (options.responseType) {
61
+ xhr.responseType = options.responseType;
62
+ }
63
+ if (options.withCredentials) {
64
+ xhr.withCredentials = true;
65
+ }
66
+ this.makeReadyStateHandler(xhr, options.callback);
67
+ this.setRequestHeaders(xhr, options.headers);
68
+ xhr.send(xhrParams);
69
+ if (!async) {
70
+ xhr.onreadystatechange(xhr);
71
+ }
72
+ return xhr;
73
+ },
74
+
75
+ toQueryString: function(params) {
76
+ var r = [];
77
+ for (var n in params) {
78
+ var v = params[n];
79
+ n = encodeURIComponent(n);
80
+ r.push(v == null ? n : (n + '=' + encodeURIComponent(v)));
81
+ }
82
+ return r.join('&');
83
+ },
84
+
85
+ isBodyMethod: function(method) {
86
+ return this.bodyMethods[(method || '').toUpperCase()];
87
+ },
88
+
89
+ bodyMethods: {
90
+ POST: 1,
91
+ PUT: 1,
92
+ PATCH: 1,
93
+ DELETE: 1
94
+ },
95
+
96
+ makeReadyStateHandler: function(xhr, callback) {
97
+ xhr.onreadystatechange = function() {
98
+ if (xhr.readyState == 4) {
99
+ callback && callback.call(null, xhr.response, xhr);
100
+ }
101
+ };
102
+ },
103
+
104
+ setRequestHeaders: function(xhr, headers) {
105
+ if (headers) {
106
+ for (var name in headers) {
107
+ xhr.setRequestHeader(name, headers[name]);
108
+ }
109
+ }
110
+ }
111
+
112
+ });
113
+
114
+ </script>
115
+
116
+ </polymer-element>
@@ -0,0 +1,65 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <script src="../webcomponentsjs/webcomponents.js" debug></script>
5
+ <meta charset="utf-8">
6
+ <title>Race condition</title>
7
+ </head>
8
+ <body>
9
+ <link rel="import" href="core-ajax.html">
10
+ <link rel="import" href="../paper-progress/paper-progress.html">
11
+ <polymer-element name="progress-test">
12
+ <template>
13
+ <core-ajax
14
+ id="ajax" auto
15
+ url="http://httpbin.org/drip"
16
+ params="{{ {numbytes: numbytes, duration:5} }}"
17
+ response="{{response}}"
18
+ progress="{{progress}}"
19
+ loading="{{loading}}"
20
+ ></core-ajax>
21
+
22
+ <!--
23
+ Ordinarily you'd gate on progress.lengthComputable, but we know the
24
+ length in this case (and httpbin sadly doesn't return a
25
+ Content-Length header for this requesthere).
26
+
27
+ https://github.com/kennethreitz/httpbin/pull/160
28
+ -->
29
+ <div>
30
+ <button on-click="{{restart}}">Restart</button>
31
+ <template if="{{loading}}">
32
+ Loading...
33
+ </template>
34
+ <template if="{{!loading}}">
35
+ Loaded!
36
+ </template>
37
+ </div>
38
+ <template if="{{loading && progress.loaded}}">
39
+ <paper-progress
40
+ value="{{progress.loaded}}"
41
+ min="0"
42
+ max="{{numbytes}}">
43
+ </paper-progress><br>
44
+ </template>
45
+ </template>
46
+ <script>
47
+ Polymer('progress-test', {
48
+ loading: true,
49
+ i: 0,
50
+ numbytes: 1000,
51
+ pretty: function(i) {
52
+ return JSON.stringify(i, null, 2);
53
+ },
54
+ restart: function() {
55
+ this.$.ajax.abort();
56
+ this.$.ajax.go();
57
+ }
58
+ });
59
+ </script>
60
+
61
+ </polymer-element>
62
+
63
+ <progress-test></progress-test>
64
+ </body>
65
+ </html>
@@ -0,0 +1,43 @@
1
+ <!doctype html>
2
+ <!--
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <html>
11
+ <head>
12
+
13
+ <title>core-ajax</title>
14
+
15
+ <script src="../webcomponentsjs/webcomponents.js"></script>
16
+ <link rel="import" href="core-ajax.html">
17
+
18
+ </head>
19
+ <body>
20
+
21
+ <core-ajax auto url="//gdata.youtube.com/feeds/api/videos/"
22
+ params='{"alt":"json", "q":"chrome"}'
23
+ handleAs="json"></core-ajax>
24
+
25
+ <template repeat="{{response.feed.entry}}">
26
+ <div>{{title.$t}}</div>
27
+ </template>
28
+
29
+ <script>
30
+ document.addEventListener('polymer-ready', function() {
31
+ var ajax = document.querySelector("core-ajax");
32
+ ajax.addEventListener("core-response",
33
+ function(e) {
34
+ document.querySelector('template').model = {
35
+ response: e.detail.response
36
+ };
37
+ }
38
+ );
39
+ });
40
+ </script>
41
+
42
+ </body>
43
+ </html>
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+ <!--
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
9
+ -->
10
+ <html>
11
+ <head>
12
+
13
+ <script src="../webcomponentsjs/webcomponents.js"></script>
14
+ <link rel="import" href="../core-component-page/core-component-page.html">
15
+
16
+ </head>
17
+ <body unresolved>
18
+
19
+ <core-component-page></core-component-page>
20
+
21
+ </body>
22
+ </html>
@@ -0,0 +1,23 @@
1
+ <!--
2
+ @license
3
+ Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
+ Code distributed by Google as part of the polymer project is also
8
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
+ -->
10
+ <x-meta id="core-ajax" label="Ajax" group="Core">
11
+
12
+ <property name="handleAs" kind="select" options="json,text,xml,arraybuffer,blob,document"></property>
13
+ <property name="method" kind="select" options="GET,POST,PUT,DELETE"></property>
14
+
15
+ <template>
16
+ <core-ajax handleAs="json" method="GET"></core-ajax>
17
+ </template>
18
+
19
+ <template id="imports">
20
+ <link rel="import" href="core-ajax.html">
21
+ </template>
22
+
23
+ </x-meta>