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,4 @@
1
+ core-style
2
+ ==========
3
+
4
+ See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-style) for more information.
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "core-style",
3
+ "private": true,
4
+ "dependencies": {
5
+ "polymer": "Polymer/polymer#^0.5"
6
+ },
7
+ "version": "0.5.5"
8
+ }
@@ -0,0 +1,387 @@
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
+ The `core-style` element helps manage styling inside other elements and can
12
+ be used to make themes. The `core-style` element can be either a producer
13
+ or consumer of styling. If it has its `id` property set, it's a producer.
14
+ Elements that are producers should include css styling as their text content.
15
+ If a `core-style` has its `ref` property set, it's a consumer. A `core-style`
16
+ typically sets its `ref` property to the value of the `id` property of the
17
+ `core-style` it wants to use. This allows a single producer to be used in
18
+ multiple places, for example, in many different elements.
19
+
20
+ It's common to place `core-style` producer elements inside HTMLImports.
21
+ Remote stylesheets should be included this way, the &#64;import css mechanism is
22
+ not currently supported.
23
+
24
+ Here's a basic example:
25
+
26
+ <polymer-element name="x-test" noscript>
27
+ <template>
28
+ <core-style ref="x-test"></core-style>
29
+ <content></content>
30
+ </template>
31
+ </polymer-element>
32
+
33
+ The `x-test` element above will be styled by any `core-style` elements that have
34
+ `id` set to `x-test`. These `core-style` producers are separate from the element
35
+ definition, allowing a user of the element to style it independent of the author's
36
+ styling. For example:
37
+
38
+ <core-style id="x-test">
39
+ :host {
40
+ backgound-color: steelblue;
41
+ }
42
+ </core-style>
43
+
44
+ The content of the `x-test` `core-style` producer gets included inside the
45
+ shadowRoot of the `x-test` element. If the content of the `x-test` producer
46
+ `core-style` changes, all consumers of it are automatically kept in sync. This
47
+ allows updating styling on the fly.
48
+
49
+ The `core-style` element also supports bindings, in which case the producer
50
+ `core-style` element is the model. Here's an example:
51
+
52
+ <core-style id="x-test">
53
+ :host {
54
+ background-color: {{myColor}};
55
+ }
56
+ </core-style>
57
+ <script>
58
+ document._currentScript.ownerDocument.getElementById('x-test').myColor = 'orange';
59
+ </script>
60
+
61
+ Finally, to facilitate sharing data between `core-style` elements, all
62
+ `core-style` elements have a `g` property which is set to the global
63
+ `CoreStyle.g`. Here's an example:
64
+
65
+ <core-style id="x-test">
66
+ :host {
67
+ background-color: {{g.myColor}};
68
+ }
69
+ </core-style>
70
+ <script>
71
+ CoreStyle.g.myColor = 'tomato';
72
+ </script>
73
+
74
+ Finally, one `core-style` can be nested inside another. The `core-style`
75
+ element has a `list` property which is a map of all the `core-style` producers.
76
+ A `core-style` producer's content is available via its `cssText` property.
77
+ Putting this together:
78
+
79
+ <core-style id="common">
80
+ :host {
81
+ font-family: sans-serif;
82
+ }
83
+ </core-style>
84
+
85
+ <core-style id="x-test">
86
+ {{list.common.cssText}}
87
+
88
+ :host {
89
+ background-color: {{g.myColor}};
90
+ }
91
+ </core-style>
92
+
93
+
94
+ @group Polymer Core Elements
95
+ @element core-style
96
+ @homepage github.io
97
+ -->
98
+
99
+ <link rel="import" href="../polymer/polymer.html">
100
+
101
+ <polymer-element name="core-style" hidden>
102
+ <script>
103
+ (function() {
104
+
105
+ window.CoreStyle = window.CoreStyle || {
106
+ g: {},
107
+ list: {},
108
+ refMap: {}
109
+ };
110
+
111
+ Polymer('core-style', {
112
+ /**
113
+ * The `id` property should be set if the `core-style` is a producer
114
+ * of styles. In this case, the `core-style` should have text content
115
+ * that is cssText.
116
+ *
117
+ * @attribute id
118
+ * @type string
119
+ * @default ''
120
+ */
121
+
122
+
123
+ publish: {
124
+ /**
125
+ * The `ref` property should be set if the `core-style` element is a
126
+ * consumer of styles. Set it to the `id` of the desired `core-style`
127
+ * element.
128
+ *
129
+ * @attribute ref
130
+ * @type string
131
+ * @default ''
132
+ */
133
+ ref: ''
134
+ },
135
+
136
+ // static
137
+ g: CoreStyle.g,
138
+ refMap: CoreStyle.refMap,
139
+
140
+ /**
141
+ * The `list` is a map of all `core-style` producers stored by `id`. It
142
+ * should be considered readonly. It's useful for nesting one `core-style`
143
+ * inside another.
144
+ *
145
+ * @attribute list
146
+ * @type object
147
+ * @default {map of all `core-style` producers}
148
+ */
149
+ list: CoreStyle.list,
150
+
151
+ // if we have an id, we provide style
152
+ // if we have a ref, we consume/require style
153
+ ready: function() {
154
+ if (this.id) {
155
+ this.provide();
156
+ } else {
157
+ this.registerRef(this.ref);
158
+ if (!window.ShadowDOMPolyfill) {
159
+ this.require();
160
+ }
161
+ }
162
+ },
163
+
164
+ // can't shim until attached if using SD polyfill because need to find host
165
+ attached: function() {
166
+ if (!this.id && window.ShadowDOMPolyfill) {
167
+ this.require();
168
+ }
169
+ },
170
+
171
+ /****** producer stuff *******/
172
+
173
+ provide: function() {
174
+ this.register();
175
+ // we want to do this asap, especially so we can do so before definitions
176
+ // that use this core-style are registered.
177
+ if (this.textContent) {
178
+ this._completeProvide();
179
+ } else {
180
+ this.async(this._completeProvide);
181
+ }
182
+ },
183
+
184
+ register: function() {
185
+ var i = this.list[this.id];
186
+ if (i) {
187
+ if (!Array.isArray(i)) {
188
+ this.list[this.id] = [i];
189
+ }
190
+ this.list[this.id].push(this);
191
+ } else {
192
+ this.list[this.id] = this;
193
+ }
194
+ },
195
+
196
+ // stamp into a shadowRoot so we can monitor dom of the bound output
197
+ _completeProvide: function() {
198
+ this.createShadowRoot();
199
+ this.domObserver = new MutationObserver(this.domModified.bind(this))
200
+ .observe(this.shadowRoot, {subtree: true,
201
+ characterData: true, childList: true});
202
+ this.provideContent();
203
+ },
204
+
205
+ provideContent: function() {
206
+ this.ensureTemplate();
207
+ this.shadowRoot.textContent = '';
208
+ this.shadowRoot.appendChild(this.instanceTemplate(this.template));
209
+ this.cssText = this.shadowRoot.textContent;
210
+ },
211
+
212
+ ensureTemplate: function() {
213
+ if (!this.template) {
214
+ this.template = this.querySelector('template:not([repeat]):not([bind])');
215
+ // move content into the template
216
+ if (!this.template) {
217
+ this.template = document.createElement('template');
218
+ var n = this.firstChild;
219
+ while (n) {
220
+ this.template.content.appendChild(n.cloneNode(true));
221
+ n = n.nextSibling;
222
+ }
223
+ }
224
+ }
225
+ },
226
+
227
+ domModified: function() {
228
+ this.cssText = this.shadowRoot.textContent;
229
+ this.notify();
230
+ },
231
+
232
+ // notify instances that reference this element
233
+ notify: function() {
234
+ var s$ = this.refMap[this.id];
235
+ if (s$) {
236
+ for (var i=0, s; (s=s$[i]); i++) {
237
+ s.require();
238
+ }
239
+ }
240
+ },
241
+
242
+ /****** consumer stuff *******/
243
+
244
+ registerRef: function(ref) {
245
+ //console.log('register', ref);
246
+ this.refMap[this.ref] = this.refMap[this.ref] || [];
247
+ this.refMap[this.ref].push(this);
248
+ },
249
+
250
+ applyRef: function(ref) {
251
+ this.ref = ref;
252
+ this.registerRef(this.ref);
253
+ this.require();
254
+ },
255
+
256
+ require: function() {
257
+ var cssText = this.cssTextForRef(this.ref);
258
+ //console.log('require', this.ref, cssText);
259
+ if (cssText) {
260
+ this.ensureStyleElement();
261
+ // do nothing if cssText has not changed
262
+ if (this.styleElement._cssText === cssText) {
263
+ return;
264
+ }
265
+ this.styleElement._cssText = cssText;
266
+ if (window.ShadowDOMPolyfill) {
267
+ this.styleElement.textContent = cssText;
268
+ cssText = WebComponents.ShadowCSS.shimStyle(this.styleElement,
269
+ this.getScopeSelector());
270
+ }
271
+ this.styleElement.textContent = cssText;
272
+ }
273
+ },
274
+
275
+ cssTextForRef: function(ref) {
276
+ var s$ = this.byId(ref);
277
+ var cssText = '';
278
+ if (s$) {
279
+ if (Array.isArray(s$)) {
280
+ var p = [];
281
+ for (var i=0, l=s$.length, s; (i<l) && (s=s$[i]); i++) {
282
+ p.push(s.cssText);
283
+ }
284
+ cssText = p.join('\n\n');
285
+ } else {
286
+ cssText = s$.cssText;
287
+ }
288
+ }
289
+ if (s$ && !cssText) {
290
+ console.warn('No styles provided for ref:', ref);
291
+ }
292
+ return cssText;
293
+ },
294
+
295
+ byId: function(id) {
296
+ return this.list[id];
297
+ },
298
+
299
+ ensureStyleElement: function() {
300
+ if (!this.styleElement) {
301
+ this.styleElement = window.ShadowDOMPolyfill ?
302
+ this.makeShimStyle() :
303
+ this.makeRootStyle();
304
+ }
305
+ if (!this.styleElement) {
306
+ console.warn(this.localName, 'could not setup style.');
307
+ }
308
+ },
309
+
310
+ makeRootStyle: function() {
311
+ var style = document.createElement('style');
312
+ this.appendChild(style);
313
+ return style;
314
+ },
315
+
316
+ makeShimStyle: function() {
317
+ var host = this.findHost(this);
318
+ if (host) {
319
+ var name = host.localName;
320
+ var style = document.querySelector('style[' + name + '=' + this.ref +']');
321
+ if (!style) {
322
+ style = document.createElement('style');
323
+ style.setAttribute(name, this.ref);
324
+ document.head.appendChild(style);
325
+ }
326
+ return style;
327
+ }
328
+ },
329
+
330
+ getScopeSelector: function() {
331
+ if (!this._scopeSelector) {
332
+ var selector = '', host = this.findHost(this);
333
+ if (host) {
334
+ var typeExtension = host.hasAttribute('is');
335
+ var name = typeExtension ? host.getAttribute('is') : host.localName;
336
+ selector = WebComponents.ShadowCSS.makeScopeSelector(name,
337
+ typeExtension);
338
+ }
339
+ this._scopeSelector = selector;
340
+ }
341
+ return this._scopeSelector;
342
+ },
343
+
344
+ findHost: function(node) {
345
+ while (node.parentNode) {
346
+ node = node.parentNode;
347
+ }
348
+ return node.host || wrap(document.documentElement);
349
+ },
350
+
351
+ /* filters! */
352
+ // TODO(dfreedm): add more filters!
353
+
354
+ cycle: function(rgb, amount) {
355
+ if (rgb.match('#')) {
356
+ var o = this.hexToRgb(rgb);
357
+ if (!o) {
358
+ return rgb;
359
+ }
360
+ rgb = 'rgb(' + o.r + ',' + o.b + ',' + o.g + ')';
361
+ }
362
+
363
+ function cycleChannel(v) {
364
+ return Math.abs((Number(v) - amount) % 255);
365
+ }
366
+
367
+ return rgb.replace(/rgb\(([^,]*),([^,]*),([^,]*)\)/, function(m, a, b, c) {
368
+ return 'rgb(' + cycleChannel(a) + ',' + cycleChannel(b) + ', '
369
+ + cycleChannel(c) + ')';
370
+ });
371
+ },
372
+
373
+ hexToRgb: function(hex) {
374
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
375
+ return result ? {
376
+ r: parseInt(result[1], 16),
377
+ g: parseInt(result[2], 16),
378
+ b: parseInt(result[3], 16)
379
+ } : null;
380
+ }
381
+
382
+ });
383
+
384
+
385
+ })();
386
+ </script>
387
+ </polymer-element>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright 2013 The Polymer Authors. All rights reserved.
4
+ Use of this source code is governed by a BSD-style
5
+ license that can be found in the LICENSE file.
6
+ -->
7
+ <html>
8
+ <head>
9
+ <title>core-style</title>
10
+ <script src="../webcomponentsjs/webcomponents.js"></script>
11
+
12
+ <link rel="import" href="elements.html">
13
+ <link rel="import" href="my-theme.html">
14
+
15
+ </head>
16
+ <body unresolved fullbleed vertical layout>
17
+ <core-style ref="main"></core-style>
18
+
19
+ <template is="auto-binding">
20
+ <my-toolbar>
21
+ <span flex>core-style</span>
22
+ <input type="color" value="{{g.theme.colorOne}}">
23
+ <input type="color" value="{{g.theme.colorTwo}}">
24
+ <input type="color" value="{{g.theme.colorThree}}">
25
+ <input type="range" min="1" max="8" value="{{g.columns}}">
26
+ <button>A button</button>
27
+ </my-toolbar>
28
+ <section flex horizontal wrap layout>
29
+ <template repeat="{{item in items}}">
30
+ <my-panel>{{item}}</my-panel>
31
+ </template>
32
+ </section>
33
+ </template>
34
+
35
+ <script>
36
+ (function() {
37
+
38
+ addEventListener('polymer-ready', function() {
39
+ var items = [];
40
+ for (var i=0; i < 100; i++) {
41
+ items.push(i);
42
+ }
43
+
44
+ CoreStyle.g.items = items;
45
+
46
+ addEventListener('template-bound', function(e) {
47
+ e.target.g = CoreStyle.g;
48
+ e.target.items = items;
49
+ });
50
+ });
51
+
52
+ })();
53
+ </script>
54
+
55
+ </body>
56
+ </html>
57
+
58
+
@@ -0,0 +1,55 @@
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
+ <link rel="import" href="core-style.html">
11
+
12
+ <core-style id="my-toolbar">
13
+ :host {
14
+ height: 54px;
15
+ font-size: 1.3rem;
16
+ background-color: steelblue;
17
+ color: white;
18
+ }
19
+
20
+ polyfill-next-selector {
21
+ content: ':host > *';
22
+ }
23
+ ::content > * {
24
+ margin: 8px;
25
+ }
26
+ </core-style>
27
+
28
+ <polymer-element name="my-toolbar" horizontal center layout noscript>
29
+ <template>
30
+ <core-style ref="my-toolbar"></core-style>
31
+ <content></content>
32
+ </template>
33
+ </polymer-element>
34
+
35
+ <core-style id="my-panel">
36
+ :host {
37
+ display: inline-block;
38
+ height: 200px;
39
+ width: calc({{ 100 / g.columns }}% - 16px);
40
+ font-size: 50px;
41
+ background: gray;
42
+ margin: 8px;
43
+ }
44
+ </core-style>
45
+
46
+ <script>
47
+ CoreStyle.g.columns = 3;
48
+ </script>
49
+
50
+ <polymer-element name="my-panel" vertical center center-justified layout noscript>
51
+ <template>
52
+ <core-style ref="my-panel"></core-style>
53
+ <content></content>
54
+ </template>
55
+ </polymer-element>
@@ -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,73 @@
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
+ <link rel="import" href="core-style.html">
11
+
12
+ <script>
13
+
14
+ CoreStyle.g.theme = {
15
+ colorOne: '#abcdef',
16
+ colorTwo: '#123456',
17
+ colorThree: '#224433'
18
+ }
19
+ </script>
20
+
21
+ <core-style id="main">
22
+ body {
23
+ font-family: sans-serif;
24
+ }
25
+
26
+ section {
27
+ overflow: auto;
28
+ }
29
+
30
+ button {
31
+ border: 1px solid {{g.theme.colorOne | cycle(-50)}};
32
+ border-radius: 4px;
33
+ background-color: {{g.theme.colorOne}};
34
+ color: {{g.theme.colorTwo}};
35
+ }
36
+
37
+ button:active {
38
+ border: 1px solid {{g.theme.colorTwo | cycle(50)}};
39
+ border-radius: 4px;
40
+ background-color: {{g.theme.colorTwo}};
41
+ color: {{g.theme.colorOne}};
42
+ }
43
+
44
+ <template repeat="{{item in g.items}}">
45
+ my-panel:nth-of-type({{item+1}}) {
46
+ background-color: {{ g.theme.colorThree | cycle(item * -1) }};
47
+ }
48
+ </template>
49
+ </core-style>
50
+
51
+ <core-style id="my-toolbar">
52
+ :host {
53
+ border-bottom: 8px solid {{g.theme.colorOne}};
54
+ color: {{g.theme.colorOne | cycle(100)}};
55
+ background-color: {{g.theme.colorTwo}};
56
+ }
57
+ </core-style>
58
+
59
+ <core-style id="my-panel">
60
+ :host {
61
+ box-sizing: border-box;
62
+ background-color: {{g.theme.colorOne}};
63
+ border: 8px solid {{g.theme.colorOne | cycle(50)}};
64
+ color: {{g.theme.colorOne | cycle(-100)}};
65
+ }
66
+
67
+ :host(:nth-of-type(2n + 1)) {
68
+ background-color: {{g.theme.colorTwo}};
69
+ border: 8px solid {{g.theme.colorTwo | cycle(-50)}};
70
+ color: {{g.theme.colorTwo | cycle(100)}}
71
+ }
72
+
73
+ </core-style>
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "core-toolbar",
3
+ "private": true,
4
+ "dependencies": {
5
+ "core-icon-button": "Polymer/core-icon-button#^0.5",
6
+ "core-media-query": "Polymer/core-media-query#^0.5"
7
+ },
8
+ "version": "0.5.5",
9
+ "homepage": "https://github.com/Polymer/core-toolbar",
10
+ "_release": "0.5.5",
11
+ "_resolution": {
12
+ "type": "version",
13
+ "tag": "0.5.5",
14
+ "commit": "cbdb98ee61b3f44aa64e408a288b0ae0858da84f"
15
+ },
16
+ "_source": "git://github.com/Polymer/core-toolbar.git",
17
+ "_target": "^0.5",
18
+ "_originalSource": "Polymer/core-toolbar"
19
+ }
@@ -0,0 +1,4 @@
1
+ core-toolbar
2
+ ============
3
+
4
+ See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-toolbar) for more information.
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "core-toolbar",
3
+ "private": true,
4
+ "dependencies": {
5
+ "core-icon-button": "Polymer/core-icon-button#^0.5",
6
+ "core-media-query": "Polymer/core-media-query#^0.5"
7
+ },
8
+ "version": "0.5.5"
9
+ }