easycomments 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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>