easy_html_creator 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -2
  3. data/dev_root/demo-website-offline/coffee/test.coffee +28 -0
  4. data/dev_root/demo-website-offline/helper/test_helper.rb +5 -0
  5. data/dev_root/demo-website-offline/index.haml +109 -0
  6. data/dev_root/demo-website-offline/layout.haml +13 -0
  7. data/dev_root/demo-website-offline/partials/_assets.javascripts.haml +7 -0
  8. data/dev_root/{demo-website/partials/_metadata.haml → demo-website-offline/partials/_assets.metadata.haml} +3 -0
  9. data/dev_root/demo-website-offline/partials/_assets.stylesheets.haml +4 -0
  10. data/dev_root/demo-website-offline/partials/_footer.haml +5 -0
  11. data/dev_root/demo-website-offline/partials/_header.haml +27 -0
  12. data/dev_root/demo-website-offline/public/bower.json +21 -0
  13. data/dev_root/demo-website-offline/public/bower_components/bootstrap/Gruntfile.js +509 -0
  14. data/dev_root/demo-website-offline/public/bower_components/bootstrap/LICENSE +21 -0
  15. data/dev_root/demo-website-offline/public/bower_components/bootstrap/README.md +132 -0
  16. data/dev_root/demo-website-offline/public/bower_components/bootstrap/bower.json +38 -0
  17. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.css +476 -0
  18. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  19. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
  20. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.css +6566 -0
  21. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  22. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/css/bootstrap.min.css +5 -0
  23. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  24. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  25. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  26. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  27. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  28. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/bootstrap.js +2306 -0
  29. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  30. data/dev_root/demo-website-offline/public/bower_components/bootstrap/dist/js/npm.js +13 -0
  31. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  32. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  33. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  34. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  35. data/dev_root/demo-website-offline/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  36. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-commonjs-generator.js +23 -0
  37. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +41 -0
  38. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +238 -0
  39. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/bs-raw-files-generator.js +46 -0
  40. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/configBridge.json +45 -0
  41. data/dev_root/demo-website-offline/public/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  42. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/affix.js +162 -0
  43. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/alert.js +94 -0
  44. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/button.js +116 -0
  45. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/carousel.js +237 -0
  46. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/collapse.js +211 -0
  47. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/dropdown.js +161 -0
  48. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/modal.js +324 -0
  49. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/popover.js +113 -0
  50. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/scrollspy.js +175 -0
  51. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/tab.js +153 -0
  52. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/tooltip.js +472 -0
  53. data/dev_root/demo-website-offline/public/bower_components/bootstrap/js/transition.js +59 -0
  54. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/alerts.less +73 -0
  55. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/badges.less +65 -0
  56. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/bootstrap.less +50 -0
  57. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  58. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/button-groups.less +243 -0
  59. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/buttons.less +160 -0
  60. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/carousel.less +269 -0
  61. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/close.less +34 -0
  62. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/code.less +69 -0
  63. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/component-animations.less +34 -0
  64. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/dropdowns.less +214 -0
  65. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/forms.less +566 -0
  66. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/glyphicons.less +301 -0
  67. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/grid.less +84 -0
  68. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/input-groups.less +166 -0
  69. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/jumbotron.less +50 -0
  70. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/labels.less +64 -0
  71. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/list-group.less +124 -0
  72. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/media.less +61 -0
  73. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins.less +39 -0
  74. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  75. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/background-variant.less +8 -0
  76. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  77. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/buttons.less +52 -0
  78. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  79. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  80. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/forms.less +85 -0
  81. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  82. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  83. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/grid.less +122 -0
  84. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  85. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/image.less +33 -0
  86. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/labels.less +12 -0
  87. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/list-group.less +29 -0
  88. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  89. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  90. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  91. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/pagination.less +23 -0
  92. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/panels.less +24 -0
  93. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  94. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  95. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/resize.less +6 -0
  96. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  97. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/size.less +10 -0
  98. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  99. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  100. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/text-emphasis.less +8 -0
  101. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  102. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  103. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/modals.less +148 -0
  104. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/navbar.less +661 -0
  105. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/navs.less +244 -0
  106. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/normalize.less +427 -0
  107. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/pager.less +54 -0
  108. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/pagination.less +88 -0
  109. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/panels.less +265 -0
  110. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/popovers.less +135 -0
  111. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/print.less +107 -0
  112. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/progress-bars.less +87 -0
  113. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/responsive-embed.less +35 -0
  114. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  115. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/scaffolding.less +150 -0
  116. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/tables.less +234 -0
  117. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/theme.less +273 -0
  118. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/thumbnails.less +36 -0
  119. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/tooltip.less +103 -0
  120. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/type.less +302 -0
  121. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/utilities.less +56 -0
  122. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/variables.less +857 -0
  123. data/dev_root/demo-website-offline/public/bower_components/bootstrap/less/wells.less +29 -0
  124. data/dev_root/demo-website-offline/public/bower_components/bootstrap/package.json +83 -0
  125. data/dev_root/demo-website-offline/public/bower_components/html5shiv/Gruntfile.js +61 -0
  126. data/dev_root/demo-website-offline/public/bower_components/html5shiv/bower.json +15 -0
  127. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv-printshiv.js +520 -0
  128. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv-printshiv.min.js +4 -0
  129. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv.js +322 -0
  130. data/dev_root/demo-website-offline/public/bower_components/html5shiv/dist/html5shiv.min.js +4 -0
  131. data/dev_root/demo-website-offline/public/bower_components/html5shiv/package.json +16 -0
  132. data/dev_root/demo-website-offline/public/bower_components/html5shiv/readme.md +152 -0
  133. data/dev_root/demo-website-offline/public/bower_components/jquery/MIT-LICENSE.txt +21 -0
  134. data/dev_root/demo-website-offline/public/bower_components/jquery/bower.json +27 -0
  135. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.js +9205 -0
  136. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.min.js +5 -0
  137. data/dev_root/demo-website-offline/public/bower_components/jquery/dist/jquery.min.map +1 -0
  138. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax.js +786 -0
  139. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/jsonp.js +89 -0
  140. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/load.js +75 -0
  141. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  142. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/parseXML.js +28 -0
  143. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/script.js +64 -0
  144. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  145. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  146. data/dev_root/demo-website-offline/public/bower_components/jquery/src/ajax/xhr.js +136 -0
  147. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes.js +11 -0
  148. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/attr.js +141 -0
  149. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/classes.js +158 -0
  150. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/prop.js +94 -0
  151. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/support.js +35 -0
  152. data/dev_root/demo-website-offline/public/bower_components/jquery/src/attributes/val.js +161 -0
  153. data/dev_root/demo-website-offline/public/bower_components/jquery/src/callbacks.js +205 -0
  154. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core.js +497 -0
  155. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/access.js +60 -0
  156. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/init.js +123 -0
  157. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/parseHTML.js +39 -0
  158. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/ready.js +97 -0
  159. data/dev_root/demo-website-offline/public/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  160. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css.js +450 -0
  161. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  162. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/curCSS.js +57 -0
  163. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  164. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  165. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/support.js +96 -0
  166. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/swap.js +28 -0
  167. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  168. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/getStyles.js +12 -0
  169. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/isHidden.js +13 -0
  170. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/rmargin.js +3 -0
  171. data/dev_root/demo-website-offline/public/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  172. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data.js +178 -0
  173. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/Data.js +181 -0
  174. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/accepts.js +20 -0
  175. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/var/data_priv.js +5 -0
  176. data/dev_root/demo-website-offline/public/bower_components/jquery/src/data/var/data_user.js +5 -0
  177. data/dev_root/demo-website-offline/public/bower_components/jquery/src/deferred.js +149 -0
  178. data/dev_root/demo-website-offline/public/bower_components/jquery/src/deprecated.js +13 -0
  179. data/dev_root/demo-website-offline/public/bower_components/jquery/src/dimensions.js +50 -0
  180. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects.js +648 -0
  181. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects/Tween.js +114 -0
  182. data/dev_root/demo-website-offline/public/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  183. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event.js +868 -0
  184. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/ajax.js +13 -0
  185. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/alias.js +39 -0
  186. data/dev_root/demo-website-offline/public/bower_components/jquery/src/event/support.js +9 -0
  187. data/dev_root/demo-website-offline/public/bower_components/jquery/src/exports/amd.js +24 -0
  188. data/dev_root/demo-website-offline/public/bower_components/jquery/src/exports/global.js +32 -0
  189. data/dev_root/demo-website-offline/public/bower_components/jquery/src/intro.js +44 -0
  190. data/dev_root/demo-website-offline/public/bower_components/jquery/src/jquery.js +37 -0
  191. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation.js +580 -0
  192. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  193. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/support.js +32 -0
  194. data/dev_root/demo-website-offline/public/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  195. data/dev_root/demo-website-offline/public/bower_components/jquery/src/offset.js +207 -0
  196. data/dev_root/demo-website-offline/public/bower_components/jquery/src/outro.js +1 -0
  197. data/dev_root/demo-website-offline/public/bower_components/jquery/src/queue.js +142 -0
  198. data/dev_root/demo-website-offline/public/bower_components/jquery/src/queue/delay.js +22 -0
  199. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector-native.js +172 -0
  200. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector-sizzle.js +14 -0
  201. data/dev_root/demo-website-offline/public/bower_components/jquery/src/selector.js +1 -0
  202. data/dev_root/demo-website-offline/public/bower_components/jquery/src/serialize.js +111 -0
  203. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  204. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  205. data/dev_root/demo-website-offline/public/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  206. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing.js +199 -0
  207. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing/findFilter.js +100 -0
  208. data/dev_root/demo-website-offline/public/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  209. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/arr.js +3 -0
  210. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/class2type.js +4 -0
  211. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/concat.js +5 -0
  212. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/hasOwn.js +5 -0
  213. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/indexOf.js +5 -0
  214. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/pnum.js +3 -0
  215. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/push.js +5 -0
  216. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/rnotwhite.js +3 -0
  217. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/slice.js +5 -0
  218. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/strundefined.js +3 -0
  219. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/support.js +4 -0
  220. data/dev_root/demo-website-offline/public/bower_components/jquery/src/var/toString.js +5 -0
  221. data/dev_root/demo-website-offline/public/bower_components/jquery/src/wrap.js +79 -0
  222. data/dev_root/demo-website-offline/public/bower_components/respond/Gruntfile.js +90 -0
  223. data/dev_root/demo-website-offline/public/bower_components/respond/LICENSE-MIT +22 -0
  224. data/dev_root/demo-website-offline/public/bower_components/respond/README.md +114 -0
  225. data/dev_root/demo-website-offline/public/bower_components/respond/bower.json +10 -0
  226. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/example.html +24 -0
  227. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond-proxy.html +96 -0
  228. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond.proxy.gif +0 -0
  229. data/dev_root/demo-website-offline/public/bower_components/respond/cross-domain/respond.proxy.js +127 -0
  230. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.matchmedia.addListener.min.js +5 -0
  231. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.matchmedia.addListener.src.js +273 -0
  232. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.min.js +5 -0
  233. data/dev_root/demo-website-offline/public/bower_components/respond/dest/respond.src.js +224 -0
  234. data/dev_root/demo-website-offline/public/bower_components/respond/package.json +32 -0
  235. data/dev_root/demo-website-offline/public/bower_components/respond/src/matchmedia.addListener.js +76 -0
  236. data/dev_root/demo-website-offline/public/bower_components/respond/src/matchmedia.polyfill.js +36 -0
  237. data/dev_root/demo-website-offline/public/bower_components/respond/src/respond.js +341 -0
  238. data/dev_root/demo-website-offline/public/fonts/OpenSans400.css +64 -0
  239. data/dev_root/demo-website-offline/public/fonts/OpenSans400italic.css +64 -0
  240. data/dev_root/demo-website-offline/public/fonts/OpenSans600.css +64 -0
  241. data/dev_root/demo-website-offline/public/images/easy-way.jpg +0 -0
  242. data/dev_root/demo-website-offline/public/robots.txt +0 -0
  243. data/dev_root/demo-website-offline/sass/main.sass +44 -0
  244. data/dev_root/demo-website/helper/test_helper.rb +2 -2
  245. data/dev_root/demo-website/index.haml +102 -12
  246. data/dev_root/demo-website/layout.haml +6 -3
  247. data/dev_root/demo-website/partials/{_assets.haml → _assets.javascripts.haml} +0 -4
  248. data/dev_root/demo-website/partials/_assets.metadata.haml +12 -0
  249. data/dev_root/demo-website/partials/_assets.stylesheets.haml +9 -0
  250. data/dev_root/demo-website/partials/_footer.haml +5 -1
  251. data/dev_root/demo-website/partials/_header.haml +27 -1
  252. data/dev_root/demo-website/sass/main.sass +43 -2
  253. data/dev_root/shared/helper/shared_helper.rb +2 -2
  254. data/dev_root/shared/sass/mixins/_arrows.sass +32 -0
  255. data/dev_root/shared/sass/mixins/_buttons.sass +32 -0
  256. data/dev_root/shared/sass/{_css3.sass → mixins/_css3.sass} +0 -0
  257. data/dev_root/shared/sass/mixins/_helper.sass +70 -0
  258. data/dev_root/shared/sass/mixins/_normalize.sass +340 -0
  259. data/dev_root/shared/sass/mixins/_reset.sass +46 -0
  260. data/lib/generator/generator.rb +2 -1
  261. data/lib/generator/haml_generator.rb +13 -14
  262. data/lib/generator/helper/activesupport_override.rb +13 -5
  263. data/lib/generator/sass_generator.rb +2 -0
  264. data/lib/generator/structure_generator.rb +12 -2
  265. data/lib/server/dispatcher.rb +43 -30
  266. data/lib/server/response.rb +4 -4
  267. data/lib/server/server.rb +3 -2
  268. metadata +253 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 975864dd7a89db6a6519c56a940ae94d5243a7cb
4
- data.tar.gz: 9966f4646c9b6857fc6a224401297627efbaf6a7
3
+ metadata.gz: cb0f39ca2c530d5ca60b51d263442720660620d3
4
+ data.tar.gz: fd4aad1e08e9331ae61c4a63999efe9fdde51d85
5
5
  SHA512:
6
- metadata.gz: 8108cb908218426f46dea665d6a092eb58efaf1c61ad4510b6a67bd838a5fda43d178612f1958491dca02992663b7c542862bfae601c986c65063b64b3c49bbb
7
- data.tar.gz: 0a60213c69a748ccd2e18ec784b278491e4f3d094cff00e248eca1f4cf557b65df239ef7bbf7854ca079ad8746d060c1070359f78e398883815f747f47f55da5
6
+ metadata.gz: b6322b39c6a0c2aac2840c969a9948423cca1a7efc39c330de44964cbc2f9d986a7bd204252ebde03ec882bbe87f47cb2c54892bfb9d49b7325b53f37619ee11
7
+ data.tar.gz: 5aa3f89f474e2fa21c3a65032b994b3cdffe0e6334f80149a6c95524a40a90e69237fcb426e1cc78c077603b61b42d6ea4b9871f5ad3e3eae1dc7c1498c164f0
@@ -1,9 +1,24 @@
1
+ 1.2.0
2
+ =================
3
+ - Add mixins for reset, resize, buttons, arrows and extend existing helper mixins
4
+ - Add bower.json resolving in public folder
5
+ - Add offline demo website with bower dependencies
6
+ - Add file_exists to helper methods
7
+ - reload ruby helpers on each request, so you dont need to restart the server
8
+ - better exceptions for partials
9
+ - sass inlcude path for shared sass files now starts from dev_root/shared/sass
10
+ - list directory contents if there is no index.html
11
+
12
+ 1.1.1
13
+ =================
14
+ - We removed a forgotten ‘Require ‘pry”
15
+
1
16
  1.1.0
2
17
  =================
3
- - Add easy commands to start the server (`ehc server`) and to parse the dev_root (`ehc generate`)
18
+ - Add easy commands to start the server (`ehc server`) and to parse the dev_root (`ehc generate`)
4
19
  - Add the ActiveSupport gem with overrides to fix Rails dependicies
5
20
  - Make the demo website better
6
- - Add a documentation website t the dev_root (it's also hosted here: http://easyhtmlcreator.bplaced.net/)
21
+ - Add a documentation website to the dev_root (it's also hosted here: http://easyhtmlcreator.bplaced.net/)
7
22
 
8
23
  1.0.0
9
24
  =================
@@ -0,0 +1,28 @@
1
+ # Assignment:
2
+ number = 42
3
+ opposite = true
4
+
5
+ # Conditions:
6
+ number = -42 if opposite
7
+
8
+ # Functions:
9
+ square = (x) -> x * x
10
+
11
+ # Arrays:
12
+ list = [1, 2, 3, 4, 5]
13
+
14
+ # Objects:
15
+ math =
16
+ root: Math.sqrt
17
+ square: square
18
+ cube: (x) -> x * square x
19
+
20
+ # Splats:
21
+ race = (winner, runners...) ->
22
+ print winner, runners
23
+
24
+ # Existence:
25
+ alert "I knew it!" if elvis?
26
+
27
+ # Array comprehensions:
28
+ cubes = (math.cube num for num in list)
@@ -0,0 +1,5 @@
1
+ module TestHelper
2
+ def action_view_link
3
+ link_to 'action_view', 'http://guides.rubyonrails.org/action_view_overview.html#overview-of-helpers-provided-by-action-view', target: 'blank'
4
+ end
5
+ end
@@ -0,0 +1,109 @@
1
+ %h1
2
+ easy-html-creator - Why we call it easy?
3
+
4
+ %h2.semibold
5
+ Do it the ruby way
6
+
7
+ %p
8
+ Layouts, templates, partials, helpers and static assets.
9
+
10
+ %h2.semibold
11
+ sass, haml, coffee
12
+ %p
13
+ We use sass, haml and coffe script. We also include
14
+ = action_view_link
15
+ for easier displaying images for ex.
16
+ %br
17
+ %code
18
+ \= image_tag 'easy-way.jpg'
19
+ %br
20
+ = image_tag('easy-way.jpg', class: 'img-thumbnail')
21
+
22
+ %h2.semibold
23
+ DRY - Shared Helper
24
+ %p
25
+ There are shared helper for ruby, sass and coffee. So Dont Repeat Your self! The copyright for ex.
26
+ %br
27
+ %code
28
+ \= copyright 'ehc'
29
+ %br
30
+ = copyright 'ehc'
31
+
32
+ %h2.semibold
33
+ For sass we offer mixins for ...
34
+
35
+ .content-left
36
+ %h3
37
+ bootsrap, reset and normalize
38
+
39
+ %pre.code
40
+ = preserve do
41
+ :escaped
42
+ @import "bootstrap/variables"
43
+ @import "bootstrap/mixins"
44
+ @import "mixins/normalize"
45
+
46
+ *
47
+ font-family: 'Open SANS',sans-serif
48
+
49
+ .content-left, .content-right
50
+ +make-xs-column(12)
51
+ +make-sm-column(6)
52
+
53
+ .content-right
54
+ %h3
55
+ css3 and helper mixins
56
+
57
+ %pre.code
58
+ = preserve do
59
+ :escaped
60
+ @import "mixins/css3"
61
+ @import "mixins/helper"
62
+
63
+ +headlines
64
+ +text-shadow(1px, 1px, 3px, #555)
65
+
66
+ h1
67
+ +bold
68
+
69
+ img
70
+ +transition(all, .3s, ease-in-out)
71
+
72
+ %h2.semibold
73
+ Special sass mixins
74
+
75
+ .content-left
76
+ %h3
77
+ buttons
78
+
79
+ %p
80
+ .button.green
81
+ green button
82
+ .button.magenta
83
+ magenta button
84
+
85
+ %pre.code
86
+ = preserve do
87
+ :escaped
88
+ @import "mixins/buttons"
89
+
90
+ .button.magenta
91
+ +make-magenta-button()
92
+ +zoom-on-hover
93
+
94
+ .content-right
95
+ %h3
96
+ arrows
97
+
98
+ %p
99
+ .arrow-up
100
+ .arrow-down
101
+
102
+ %pre.code
103
+ = preserve do
104
+ :escaped
105
+ @import "mixins/arrows"
106
+
107
+ .arrow-up
108
+ +arrow-up(60px, 20px, #62bc19)
109
+ +inline-block
@@ -0,0 +1,13 @@
1
+ !!!
2
+ %html{lang: 'de'}
3
+ %head
4
+ = render_partial '_assets.metadata'
5
+ = render_partial '_assets.stylesheets'
6
+ = render_partial '_assets.javascripts'
7
+
8
+ %body{class: body_class}
9
+ = render_partial '_header'
10
+ .container
11
+ = yield
12
+ = render_partial '_footer'
13
+
@@ -0,0 +1,7 @@
1
+ = javascript_include_tag 'bower_components/jquery/dist/jquery.min.js'
2
+ = javascript_include_tag 'bower_components/bootstrap/dist/js/bootstrap.min.js'
3
+ /[if lt IE 9]
4
+ = javascript_include_tag 'bower_components/html5shiv/dist/html5shiv.min.js'
5
+ = javascript_include_tag 'bower_components/respond/dest/respond.min.js'
6
+ %script
7
+ var ltie9 = true
@@ -7,3 +7,6 @@
7
7
  = meta_tag 'description', ''
8
8
  = meta_tag 'keywords', ''
9
9
  = meta_tag 'viewport', 'width=device-width, initial-scale=1.0'
10
+
11
+ = link_tag 'favicon.ico', 'icon', 'image/x-icon'
12
+ = link_tag 'favicon.ico', 'shortcut icon', 'image/x-icon'
@@ -0,0 +1,4 @@
1
+
2
+ = stylesheet_link_tag 'bower_components/bootstrap/dist/css/bootstrap.min.css'
3
+
4
+ = stylesheet_link_tag 'main.css'
@@ -0,0 +1,5 @@
1
+ .footer
2
+ dev_root/demo-website/partials/_footer.haml
3
+
4
+ .copyright
5
+ = copyright('ehc')
@@ -0,0 +1,27 @@
1
+ %nav.navbar.navbar-inverse
2
+ .container-fluid
3
+ .navbar-header
4
+ %button.navbar-toggle{"data-target" => "#myNavbar", "data-toggle" => "collapse", :type => "button"}
5
+ %span.icon-bar
6
+ %span.icon-bar
7
+ %span.icon-bar
8
+ %a.navbar-brand{:href => "#"} easy-html-creator
9
+ #myNavbar.collapse.navbar-collapse
10
+ %ul.nav.navbar-nav
11
+ %li.active
12
+ %a{:href => "#"} Home
13
+ %li
14
+ %a{:href => "#"} Page 1
15
+ %li
16
+ %a{:href => "#"} Page 2
17
+ %li
18
+ %a{:href => "#"} Page 3
19
+ %ul.nav.navbar-nav.navbar-right
20
+ %li
21
+ %a{:href => "#"}
22
+ %span.glyphicon.glyphicon-user
23
+ Sign Up
24
+ %li
25
+ %a{:href => "#"}
26
+ %span.glyphicon.glyphicon-log-in
27
+ Login
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "demo-website-offline",
3
+ "version": "0.0.0",
4
+ "authors": [
5
+ "tom.hanoldt <tom.hanoldt@kaeuferportal.de>"
6
+ ],
7
+ "license": "MIT",
8
+ "ignore": [
9
+ "**/.*",
10
+ "node_modules",
11
+ "bower_components",
12
+ "test",
13
+ "tests"
14
+ ],
15
+ "dependencies": {
16
+ "html5shiv": "~3.7.2",
17
+ "respond": "~1.4.2",
18
+ "jquery": "~2.1.3",
19
+ "bootstrap": "~3.3.2"
20
+ }
21
+ }
@@ -0,0 +1,509 @@
1
+ /*!
2
+ * Bootstrap's Gruntfile
3
+ * http://getbootstrap.com
4
+ * Copyright 2013-2015 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+
8
+ module.exports = function (grunt) {
9
+ 'use strict';
10
+
11
+ // Force use of Unix newlines
12
+ grunt.util.linefeed = '\n';
13
+
14
+ RegExp.quote = function (string) {
15
+ return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
16
+ };
17
+
18
+ var fs = require('fs');
19
+ var path = require('path');
20
+ var npmShrinkwrap = require('npm-shrinkwrap');
21
+ var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
22
+ var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
23
+ var getLessVarsData = function () {
24
+ var filePath = path.join(__dirname, 'less/variables.less');
25
+ var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' });
26
+ var parser = new BsLessdocParser(fileContent);
27
+ return { sections: parser.parseFile() };
28
+ };
29
+ var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
30
+ var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
31
+ var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' });
32
+
33
+ Object.keys(configBridge.paths).forEach(function (key) {
34
+ configBridge.paths[key].forEach(function (val, i, arr) {
35
+ arr[i] = path.join('./docs/assets', val);
36
+ });
37
+ });
38
+
39
+ // Project configuration.
40
+ grunt.initConfig({
41
+
42
+ // Metadata.
43
+ pkg: grunt.file.readJSON('package.json'),
44
+ banner: '/*!\n' +
45
+ ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
46
+ ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
47
+ ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
48
+ ' */\n',
49
+ jqueryCheck: configBridge.config.jqueryCheck.join('\n'),
50
+ jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'),
51
+
52
+ // Task configuration.
53
+ clean: {
54
+ dist: 'dist',
55
+ docs: 'docs/dist'
56
+ },
57
+
58
+ jshint: {
59
+ options: {
60
+ jshintrc: 'js/.jshintrc'
61
+ },
62
+ grunt: {
63
+ options: {
64
+ jshintrc: 'grunt/.jshintrc'
65
+ },
66
+ src: ['Gruntfile.js', 'grunt/*.js']
67
+ },
68
+ core: {
69
+ src: 'js/*.js'
70
+ },
71
+ test: {
72
+ options: {
73
+ jshintrc: 'js/tests/unit/.jshintrc'
74
+ },
75
+ src: 'js/tests/unit/*.js'
76
+ },
77
+ assets: {
78
+ src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
79
+ }
80
+ },
81
+
82
+ jscs: {
83
+ options: {
84
+ config: 'js/.jscsrc'
85
+ },
86
+ grunt: {
87
+ src: '<%= jshint.grunt.src %>'
88
+ },
89
+ core: {
90
+ src: '<%= jshint.core.src %>'
91
+ },
92
+ test: {
93
+ src: '<%= jshint.test.src %>'
94
+ },
95
+ assets: {
96
+ options: {
97
+ requireCamelCaseOrUpperCaseIdentifiers: null
98
+ },
99
+ src: '<%= jshint.assets.src %>'
100
+ }
101
+ },
102
+
103
+ concat: {
104
+ options: {
105
+ banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>',
106
+ stripBanners: false
107
+ },
108
+ bootstrap: {
109
+ src: [
110
+ 'js/transition.js',
111
+ 'js/alert.js',
112
+ 'js/button.js',
113
+ 'js/carousel.js',
114
+ 'js/collapse.js',
115
+ 'js/dropdown.js',
116
+ 'js/modal.js',
117
+ 'js/tooltip.js',
118
+ 'js/popover.js',
119
+ 'js/scrollspy.js',
120
+ 'js/tab.js',
121
+ 'js/affix.js'
122
+ ],
123
+ dest: 'dist/js/<%= pkg.name %>.js'
124
+ }
125
+ },
126
+
127
+ uglify: {
128
+ options: {
129
+ preserveComments: 'some'
130
+ },
131
+ core: {
132
+ src: '<%= concat.bootstrap.dest %>',
133
+ dest: 'dist/js/<%= pkg.name %>.min.js'
134
+ },
135
+ customize: {
136
+ src: configBridge.paths.customizerJs,
137
+ dest: 'docs/assets/js/customize.min.js'
138
+ },
139
+ docsJs: {
140
+ src: configBridge.paths.docsJs,
141
+ dest: 'docs/assets/js/docs.min.js'
142
+ }
143
+ },
144
+
145
+ qunit: {
146
+ options: {
147
+ inject: 'js/tests/unit/phantom.js'
148
+ },
149
+ files: 'js/tests/index.html'
150
+ },
151
+
152
+ less: {
153
+ compileCore: {
154
+ options: {
155
+ strictMath: true,
156
+ sourceMap: true,
157
+ outputSourceFiles: true,
158
+ sourceMapURL: '<%= pkg.name %>.css.map',
159
+ sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
160
+ },
161
+ src: 'less/bootstrap.less',
162
+ dest: 'dist/css/<%= pkg.name %>.css'
163
+ },
164
+ compileTheme: {
165
+ options: {
166
+ strictMath: true,
167
+ sourceMap: true,
168
+ outputSourceFiles: true,
169
+ sourceMapURL: '<%= pkg.name %>-theme.css.map',
170
+ sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map'
171
+ },
172
+ src: 'less/theme.less',
173
+ dest: 'dist/css/<%= pkg.name %>-theme.css'
174
+ }
175
+ },
176
+
177
+ autoprefixer: {
178
+ options: {
179
+ browsers: configBridge.config.autoprefixerBrowsers
180
+ },
181
+ core: {
182
+ options: {
183
+ map: true
184
+ },
185
+ src: 'dist/css/<%= pkg.name %>.css'
186
+ },
187
+ theme: {
188
+ options: {
189
+ map: true
190
+ },
191
+ src: 'dist/css/<%= pkg.name %>-theme.css'
192
+ },
193
+ docs: {
194
+ src: 'docs/assets/css/src/docs.css'
195
+ },
196
+ examples: {
197
+ expand: true,
198
+ cwd: 'docs/examples/',
199
+ src: ['**/*.css'],
200
+ dest: 'docs/examples/'
201
+ }
202
+ },
203
+
204
+ csslint: {
205
+ options: {
206
+ csslintrc: 'less/.csslintrc'
207
+ },
208
+ dist: [
209
+ 'dist/css/bootstrap.css',
210
+ 'dist/css/bootstrap-theme.css'
211
+ ],
212
+ examples: [
213
+ 'docs/examples/**/*.css'
214
+ ],
215
+ docs: {
216
+ options: {
217
+ ids: false,
218
+ 'overqualified-elements': false
219
+ },
220
+ src: 'docs/assets/css/src/docs.css'
221
+ }
222
+ },
223
+
224
+ cssmin: {
225
+ options: {
226
+ compatibility: 'ie8',
227
+ keepSpecialComments: '*',
228
+ advanced: false
229
+ },
230
+ minifyCore: {
231
+ src: 'dist/css/<%= pkg.name %>.css',
232
+ dest: 'dist/css/<%= pkg.name %>.min.css'
233
+ },
234
+ minifyTheme: {
235
+ src: 'dist/css/<%= pkg.name %>-theme.css',
236
+ dest: 'dist/css/<%= pkg.name %>-theme.min.css'
237
+ },
238
+ docs: {
239
+ src: [
240
+ 'docs/assets/css/src/docs.css',
241
+ 'docs/assets/css/src/pygments-manni.css'
242
+ ],
243
+ dest: 'docs/assets/css/docs.min.css'
244
+ }
245
+ },
246
+
247
+ usebanner: {
248
+ options: {
249
+ position: 'top',
250
+ banner: '<%= banner %>'
251
+ },
252
+ files: {
253
+ src: 'dist/css/*.css'
254
+ }
255
+ },
256
+
257
+ csscomb: {
258
+ options: {
259
+ config: 'less/.csscomb.json'
260
+ },
261
+ dist: {
262
+ expand: true,
263
+ cwd: 'dist/css/',
264
+ src: ['*.css', '!*.min.css'],
265
+ dest: 'dist/css/'
266
+ },
267
+ examples: {
268
+ expand: true,
269
+ cwd: 'docs/examples/',
270
+ src: '**/*.css',
271
+ dest: 'docs/examples/'
272
+ },
273
+ docs: {
274
+ src: 'docs/assets/css/src/docs.css',
275
+ dest: 'docs/assets/css/src/docs.css'
276
+ }
277
+ },
278
+
279
+ copy: {
280
+ fonts: {
281
+ src: 'fonts/*',
282
+ dest: 'dist/'
283
+ },
284
+ docs: {
285
+ src: 'dist/*/*',
286
+ dest: 'docs/'
287
+ }
288
+ },
289
+
290
+ connect: {
291
+ server: {
292
+ options: {
293
+ port: 3000,
294
+ base: '.'
295
+ }
296
+ }
297
+ },
298
+
299
+ jekyll: {
300
+ options: {
301
+ config: '_config.yml'
302
+ },
303
+ docs: {},
304
+ github: {
305
+ options: {
306
+ raw: 'github: true'
307
+ }
308
+ }
309
+ },
310
+
311
+ jade: {
312
+ options: {
313
+ pretty: true,
314
+ data: getLessVarsData
315
+ },
316
+ customizerVars: {
317
+ src: 'docs/_jade/customizer-variables.jade',
318
+ dest: 'docs/_includes/customizer-variables.html'
319
+ },
320
+ customizerNav: {
321
+ src: 'docs/_jade/customizer-nav.jade',
322
+ dest: 'docs/_includes/nav/customize.html'
323
+ }
324
+ },
325
+
326
+ validation: {
327
+ options: {
328
+ charset: 'utf-8',
329
+ doctype: 'HTML5',
330
+ failHard: true,
331
+ reset: true,
332
+ relaxerror: [
333
+ 'Element img is missing required attribute src.',
334
+ 'Attribute autocomplete not allowed on element input at this point.',
335
+ 'Attribute autocomplete not allowed on element button at this point.',
336
+ 'Bad value separator for attribute role on element li.'
337
+ ]
338
+ },
339
+ files: {
340
+ src: '_gh_pages/**/*.html'
341
+ }
342
+ },
343
+
344
+ watch: {
345
+ src: {
346
+ files: '<%= jshint.core.src %>',
347
+ tasks: ['jshint:src', 'qunit', 'concat']
348
+ },
349
+ test: {
350
+ files: '<%= jshint.test.src %>',
351
+ tasks: ['jshint:test', 'qunit']
352
+ },
353
+ less: {
354
+ files: 'less/**/*.less',
355
+ tasks: 'less'
356
+ }
357
+ },
358
+
359
+ sed: {
360
+ versionNumber: {
361
+ pattern: (function () {
362
+ var old = grunt.option('oldver');
363
+ return old ? RegExp.quote(old) : old;
364
+ })(),
365
+ replacement: grunt.option('newver'),
366
+ recursive: true
367
+ }
368
+ },
369
+
370
+ 'saucelabs-qunit': {
371
+ all: {
372
+ options: {
373
+ build: process.env.TRAVIS_JOB_ID,
374
+ throttled: 10,
375
+ maxRetries: 3,
376
+ maxPollRetries: 4,
377
+ urls: ['http://127.0.0.1:3000/js/tests/index.html'],
378
+ browsers: grunt.file.readYAML('grunt/sauce_browsers.yml')
379
+ }
380
+ }
381
+ },
382
+
383
+ exec: {
384
+ npmUpdate: {
385
+ command: 'npm update'
386
+ }
387
+ },
388
+
389
+ compress: {
390
+ main: {
391
+ options: {
392
+ archive: 'bootstrap-<%= pkg.version %>-dist.zip',
393
+ mode: 'zip',
394
+ level: 9,
395
+ pretty: true
396
+ },
397
+ files: [
398
+ {
399
+ expand: true,
400
+ cwd: 'dist/',
401
+ src: ['**'],
402
+ dest: 'bootstrap-<%= pkg.version %>-dist'
403
+ }
404
+ ]
405
+ }
406
+ }
407
+
408
+ });
409
+
410
+
411
+ // These plugins provide necessary tasks.
412
+ require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
413
+ require('time-grunt')(grunt);
414
+
415
+ // Docs HTML validation task
416
+ grunt.registerTask('validate-html', ['jekyll:docs', 'validation']);
417
+
418
+ var runSubset = function (subset) {
419
+ return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset;
420
+ };
421
+ var isUndefOrNonZero = function (val) {
422
+ return val === undefined || val !== '0';
423
+ };
424
+
425
+ // Test task.
426
+ var testSubtasks = [];
427
+ // Skip core tests if running a different subset of the test suite
428
+ if (runSubset('core') &&
429
+ // Skip core tests if this is a Savage build
430
+ process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') {
431
+ testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']);
432
+ }
433
+ // Skip HTML validation if running a different subset of the test suite
434
+ if (runSubset('validate-html') &&
435
+ // Skip HTML5 validator on Travis when [skip validator] is in the commit message
436
+ isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) {
437
+ testSubtasks.push('validate-html');
438
+ }
439
+ // Only run Sauce Labs tests if there's a Sauce access key
440
+ if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' &&
441
+ // Skip Sauce if running a different subset of the test suite
442
+ runSubset('sauce-js-unit') &&
443
+ // Skip Sauce on Travis when [skip sauce] is in the commit message
444
+ isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) {
445
+ testSubtasks.push('connect');
446
+ testSubtasks.push('saucelabs-qunit');
447
+ }
448
+ grunt.registerTask('test', testSubtasks);
449
+ grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']);
450
+
451
+ // JS distribution task.
452
+ grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']);
453
+
454
+ // CSS distribution task.
455
+ grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']);
456
+ grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'usebanner', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']);
457
+
458
+ // Full distribution task.
459
+ grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']);
460
+
461
+ // Default task.
462
+ grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
463
+
464
+ // Version numbering task.
465
+ // grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
466
+ // This can be overzealous, so its changes should always be manually reviewed!
467
+ grunt.registerTask('change-version-number', 'sed');
468
+
469
+ grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
470
+
471
+ // task for building customizer
472
+ grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
473
+ grunt.registerTask('build-customizer-html', 'jade');
474
+ grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () {
475
+ var banner = grunt.template.process('<%= banner %>');
476
+ generateRawFiles(grunt, banner);
477
+ });
478
+
479
+ grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () {
480
+ var srcFiles = grunt.config.get('concat.bootstrap.src');
481
+ var destFilepath = 'dist/js/npm.js';
482
+ generateCommonJSModule(grunt, srcFiles, destFilepath);
483
+ });
484
+
485
+ // Docs task.
486
+ grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']);
487
+ grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']);
488
+ grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
489
+ grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
490
+ grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']);
491
+
492
+ grunt.registerTask('prep-release', ['jekyll:github', 'compress']);
493
+
494
+ // Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
495
+ // This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
496
+ grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
497
+ grunt.registerTask('_update-shrinkwrap', function () {
498
+ var done = this.async();
499
+ npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) {
500
+ if (err) {
501
+ grunt.fail.warn(err);
502
+ }
503
+ var dest = 'test-infra/npm-shrinkwrap.json';
504
+ fs.renameSync('npm-shrinkwrap.json', dest);
505
+ grunt.log.writeln('File ' + dest.cyan + ' updated.');
506
+ done();
507
+ });
508
+ });
509
+ };