graspi 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (350) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +3 -0
  4. data/Rakefile +31 -0
  5. data/lib/graspi.rb +64 -0
  6. data/lib/graspi/engine.rb +14 -0
  7. data/lib/graspi/helpers/assets_include_helper.rb +45 -0
  8. data/lib/graspi/version.rb +3 -0
  9. data/lib/grunt/graspi.coffee +87 -0
  10. data/lib/grunt/task_helpers/abstract.coffee +47 -0
  11. data/lib/grunt/task_helpers/bower/abstract.coffee +8 -0
  12. data/lib/grunt/task_helpers/bower/clean.coffee +6 -0
  13. data/lib/grunt/task_helpers/bower/clean_full.coffee +19 -0
  14. data/lib/grunt/task_helpers/bower/concat.coffee +37 -0
  15. data/lib/grunt/task_helpers/bower/concat_check.coffee +40 -0
  16. data/lib/grunt/task_helpers/browsersync/abstract.coffee +10 -0
  17. data/lib/grunt/task_helpers/browsersync/browsersync.coffee +25 -0
  18. data/lib/grunt/task_helpers/css/abstract.coffee +13 -0
  19. data/lib/grunt/task_helpers/css/clean.coffee +13 -0
  20. data/lib/grunt/task_helpers/css/clean_full.coffee +22 -0
  21. data/lib/grunt/task_helpers/css/concat.coffee +32 -0
  22. data/lib/grunt/task_helpers/css/copy.coffee +33 -0
  23. data/lib/grunt/task_helpers/css/minify.coffee +41 -0
  24. data/lib/grunt/task_helpers/css/replace_urls.coffee +58 -0
  25. data/lib/grunt/task_helpers/css/sass_compile.coffee +54 -0
  26. data/lib/grunt/task_helpers/filerev/abstract.coffee +13 -0
  27. data/lib/grunt/task_helpers/filerev/clean.coffee +9 -0
  28. data/lib/grunt/task_helpers/filerev/clean_full.coffee +14 -0
  29. data/lib/grunt/task_helpers/filerev/filerev.coffee +165 -0
  30. data/lib/grunt/task_helpers/image_min/abstract.coffee +8 -0
  31. data/lib/grunt/task_helpers/image_min/clean.coffee +6 -0
  32. data/lib/grunt/task_helpers/image_min/clean_full.coffee +14 -0
  33. data/lib/grunt/task_helpers/image_min/copy.coffee +35 -0
  34. data/lib/grunt/task_helpers/image_min/imagemin.coffee +67 -0
  35. data/lib/grunt/task_helpers/image_min/svgmin.coffee +30 -0
  36. data/lib/grunt/task_helpers/image_min/timestamps.coffee +5 -0
  37. data/lib/grunt/task_helpers/js/abstract.coffee +13 -0
  38. data/lib/grunt/task_helpers/js/clean.coffee +13 -0
  39. data/lib/grunt/task_helpers/js/clean_full.coffee +22 -0
  40. data/lib/grunt/task_helpers/js/coffee_compile.coffee +39 -0
  41. data/lib/grunt/task_helpers/js/concat.coffee +32 -0
  42. data/lib/grunt/task_helpers/js/copy.coffee +33 -0
  43. data/lib/grunt/task_helpers/js/uglify.coffee +44 -0
  44. data/lib/grunt/task_helpers/manifest/abstract.coffee +16 -0
  45. data/lib/grunt/task_helpers/manifest/clean.coffee +9 -0
  46. data/lib/grunt/task_helpers/manifest/clean_full.coffee +15 -0
  47. data/lib/grunt/task_helpers/manifest/manifest.coffee +125 -0
  48. data/lib/grunt/task_helpers/watch/abstract.coffee +10 -0
  49. data/lib/grunt/task_helpers/watch/watch.coffee +40 -0
  50. data/lib/grunt/tasks/bower.coffee +21 -0
  51. data/lib/grunt/tasks/browsersync.coffee +8 -0
  52. data/lib/grunt/tasks/css.coffee +31 -0
  53. data/lib/grunt/tasks/filerev.coffee +13 -0
  54. data/lib/grunt/tasks/image_min.coffee +28 -0
  55. data/lib/grunt/tasks/js.coffee +28 -0
  56. data/lib/grunt/tasks/manifest.coffee +13 -0
  57. data/lib/grunt/tasks/watch.coffee +8 -0
  58. data/lib/grunt/util/config.coffee +280 -0
  59. data/lib/grunt/util/config_app.coffee +31 -0
  60. data/lib/grunt/util/env_app_iterator.coffee +35 -0
  61. data/lib/grunt/util/file_change_tracker.coffee +79 -0
  62. data/lib/grunt/util/lodash_extensions.coffee +18 -0
  63. data/lib/grunt/util/task_runner.coffee +87 -0
  64. data/lib/tasks/graspi_tasks.rake +4 -0
  65. data/spec/dummy/Rakefile +6 -0
  66. data/spec/dummy/app/assets/images/base/kitten_1.jpg +0 -0
  67. data/spec/dummy/app/assets/images/base/kitten_2.jpg +0 -0
  68. data/spec/dummy/app/assets/images/base/kitten_3.jpg +0 -0
  69. data/spec/dummy/app/assets/images/base/kitten_4.jpg +0 -0
  70. data/spec/dummy/app/assets/images/base/kitten_5.jpg +0 -0
  71. data/spec/dummy/app/assets/images/base/kitten_6.jpg +0 -0
  72. data/spec/dummy/app/assets/images/base/kitten_7.jpg +0 -0
  73. data/spec/dummy/app/assets/images/base/kitten_8.jpg +0 -0
  74. data/spec/dummy/app/assets/images/base/logo.png +0 -0
  75. data/spec/dummy/app/assets/images/mixed/kitten_1.jpg +0 -0
  76. data/spec/dummy/app/assets/images/mixed/kitten_2.jpg +0 -0
  77. data/spec/dummy/app/assets/images/mixed/kitten_3.jpg +0 -0
  78. data/spec/dummy/app/assets/images/mixed/kitten_4.jpg +0 -0
  79. data/spec/dummy/app/assets/images/mixed/kitten_5.jpg +0 -0
  80. data/spec/dummy/app/assets/images/mixed/kitten_6.jpg +0 -0
  81. data/spec/dummy/app/assets/images/mixed/kitten_7.jpg +0 -0
  82. data/spec/dummy/app/assets/images/mixed/kitten_8.jpg +0 -0
  83. data/spec/dummy/app/assets/images/mixed/logo.png +0 -0
  84. data/spec/dummy/app/assets/images/plain/kitten_1.jpg +0 -0
  85. data/spec/dummy/app/assets/images/plain/kitten_2.jpg +0 -0
  86. data/spec/dummy/app/assets/images/plain/kitten_3.jpg +0 -0
  87. data/spec/dummy/app/assets/images/plain/kitten_4.jpg +0 -0
  88. data/spec/dummy/app/assets/images/plain/kitten_5.jpg +0 -0
  89. data/spec/dummy/app/assets/images/plain/kitten_6.jpg +0 -0
  90. data/spec/dummy/app/assets/images/plain/kitten_7.jpg +0 -0
  91. data/spec/dummy/app/assets/images/plain/kitten_8.jpg +0 -0
  92. data/spec/dummy/app/assets/images/plain/logo.png +0 -0
  93. data/spec/dummy/app/assets/javascripts/base/application.coffee +0 -0
  94. data/spec/dummy/app/assets/javascripts/mixed/application.coffee +0 -0
  95. data/spec/dummy/app/assets/javascripts/mixed/second.js +0 -0
  96. data/spec/dummy/app/assets/javascripts/plain/application.js +0 -0
  97. data/spec/dummy/app/assets/javascripts/plain/second.js +0 -0
  98. data/spec/dummy/app/assets/stylesheets/base/application.sass +6 -0
  99. data/spec/dummy/app/assets/stylesheets/base/layout/_footer.sass +9 -0
  100. data/spec/dummy/app/assets/stylesheets/base/layout/_grid.sass +3 -0
  101. data/spec/dummy/app/assets/stylesheets/base/layout/_layout.sass +22 -0
  102. data/spec/dummy/app/assets/stylesheets/base/layout/_typography.sass +7 -0
  103. data/spec/dummy/app/assets/stylesheets/mixed/application.sass +5 -0
  104. data/spec/dummy/app/assets/stylesheets/mixed/layout/_grid.sass +3 -0
  105. data/spec/dummy/app/assets/stylesheets/mixed/layout/_layout.sass +22 -0
  106. data/spec/dummy/app/assets/stylesheets/mixed/layout/_typography.sass +7 -0
  107. data/spec/dummy/app/assets/stylesheets/mixed/second.css +0 -0
  108. data/spec/dummy/app/assets/stylesheets/plain/application.css +0 -0
  109. data/spec/dummy/app/assets/stylesheets/plain/second.css +0 -0
  110. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  111. data/spec/dummy/app/controllers/pages_controller.rb +24 -0
  112. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  113. data/spec/dummy/app/views/layouts/application.html.haml +13 -0
  114. data/spec/dummy/app/views/layouts/base.html.haml +10 -0
  115. data/spec/dummy/app/views/layouts/mixed.html.haml +10 -0
  116. data/spec/dummy/app/views/layouts/plain.html.haml +10 -0
  117. data/spec/dummy/app/views/pages/_view.html.haml +19 -0
  118. data/spec/dummy/app/views/pages/base.html.haml +1 -0
  119. data/spec/dummy/app/views/pages/mixed.html.haml +1 -0
  120. data/spec/dummy/app/views/pages/plain.html.haml +1 -0
  121. data/spec/dummy/bin/bundle +3 -0
  122. data/spec/dummy/bin/rails +4 -0
  123. data/spec/dummy/bin/rake +4 -0
  124. data/spec/dummy/bin/setup +29 -0
  125. data/spec/dummy/config.ru +4 -0
  126. data/spec/dummy/config/application.rb +32 -0
  127. data/spec/dummy/config/boot.rb +5 -0
  128. data/spec/dummy/config/database.example.yml +25 -0
  129. data/spec/dummy/config/database.yml +25 -0
  130. data/spec/dummy/config/environment.rb +5 -0
  131. data/spec/dummy/config/environments/development.rb +41 -0
  132. data/spec/dummy/config/environments/production.rb +79 -0
  133. data/spec/dummy/config/environments/test.rb +42 -0
  134. data/spec/dummy/config/initializers/assets.rb +11 -0
  135. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  136. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  137. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  138. data/spec/dummy/config/initializers/graspi.rb +1 -0
  139. data/spec/dummy/config/initializers/inflections.rb +16 -0
  140. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  141. data/spec/dummy/config/initializers/session_store.rb +3 -0
  142. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  143. data/spec/dummy/config/locales/en.yml +23 -0
  144. data/spec/dummy/config/routes.rb +9 -0
  145. data/spec/dummy/config/secrets.example.yml +22 -0
  146. data/spec/dummy/config/secrets.yml +22 -0
  147. data/spec/dummy/db/development.sqlite3 +0 -0
  148. data/spec/dummy/db/schema.rb +16 -0
  149. data/spec/dummy/db/test.sqlite3 +0 -0
  150. data/spec/dummy/log/development.log +10490 -0
  151. data/spec/dummy/public/404.html +67 -0
  152. data/spec/dummy/public/422.html +67 -0
  153. data/spec/dummy/public/500.html +66 -0
  154. data/spec/dummy/public/assets/g-assets.json +43 -0
  155. data/spec/dummy/public/assets/g-development/base/application.css +589 -0
  156. data/spec/dummy/public/assets/g-development/base/application.css.map +11 -0
  157. data/spec/dummy/public/assets/g-development/base/application.js +18691 -0
  158. data/spec/dummy/public/assets/g-development/base/application.js.map +10 -0
  159. data/spec/dummy/public/assets/g-development/base/kitten_1.jpg +0 -0
  160. data/spec/dummy/public/assets/g-development/base/kitten_2.jpg +0 -0
  161. data/spec/dummy/public/assets/g-development/base/kitten_3.jpg +0 -0
  162. data/spec/dummy/public/assets/g-development/base/kitten_4.jpg +0 -0
  163. data/spec/dummy/public/assets/g-development/base/kitten_5.jpg +0 -0
  164. data/spec/dummy/public/assets/g-development/base/kitten_6.jpg +0 -0
  165. data/spec/dummy/public/assets/g-development/base/kitten_7.jpg +0 -0
  166. data/spec/dummy/public/assets/g-development/base/kitten_8.jpg +0 -0
  167. data/spec/dummy/public/assets/g-development/base/logo.png +0 -0
  168. data/spec/dummy/public/assets/g-development/mixed/application.32d9e45930c83e3769a9ff2f92adfe0cb5bb013c6c146f0eafb35ea3c1cb79a5.js +33 -0
  169. data/spec/dummy/public/assets/g-development/mixed/application.550e9eaa5b567604fd414ab0d5e9b7c1899ebae67d95f8191c5c273b8dcd34b7.js.map +1 -0
  170. data/spec/dummy/public/assets/g-development/mixed/application.7ef4ffe5ac778acc4c8195a6ce8a3b0ea47d3cd5bbf8479cec5b143b97dde82e.css +2 -0
  171. data/spec/dummy/public/assets/g-development/mixed/application.css +2 -0
  172. data/spec/dummy/public/assets/g-development/mixed/application.css.map +1 -0
  173. data/spec/dummy/public/assets/g-development/mixed/application.efc51097dff5d27e7434d8055f125e7ea85513534b986e00fc35a8aa2dd93f22.css.map +1 -0
  174. data/spec/dummy/public/assets/g-development/mixed/application.js +33 -0
  175. data/spec/dummy/public/assets/g-development/mixed/application.js.map +1 -0
  176. data/spec/dummy/public/assets/g-development/mixed/kitten_1.05e62b1fae8ff9ba745af7e9cf3a8f772a84e4e69689eebd88470fc236e17128.jpg +0 -0
  177. data/spec/dummy/public/assets/g-development/mixed/kitten_1.jpg +0 -0
  178. data/spec/dummy/public/assets/g-development/mixed/kitten_2.0e492e6a90094a6b0bb5f66037e9a612a1401e02ff1095d33e252fd4e110c825.jpg +0 -0
  179. data/spec/dummy/public/assets/g-development/mixed/kitten_2.jpg +0 -0
  180. data/spec/dummy/public/assets/g-development/mixed/kitten_3.e5e57ee0440b05005315aa1ce2beda938be16e00bc74ba093af5e475afa1a47f.jpg +0 -0
  181. data/spec/dummy/public/assets/g-development/mixed/kitten_3.jpg +0 -0
  182. data/spec/dummy/public/assets/g-development/mixed/kitten_4.1c0143065e348b79fe5c471b99cda7b99d6e7bda4663b5d82d21b5aeaed420e4.jpg +0 -0
  183. data/spec/dummy/public/assets/g-development/mixed/kitten_4.jpg +0 -0
  184. data/spec/dummy/public/assets/g-development/mixed/kitten_5.9f4b41712362b832ce672907f0221471aa0ca148c17350107b96f0d54ea2deda.jpg +0 -0
  185. data/spec/dummy/public/assets/g-development/mixed/kitten_5.jpg +0 -0
  186. data/spec/dummy/public/assets/g-development/mixed/kitten_6.d5d7ef1f783685e23ea39c07910073b832ec22872175d7061a9084ab7e4a074d.jpg +0 -0
  187. data/spec/dummy/public/assets/g-development/mixed/kitten_6.jpg +0 -0
  188. data/spec/dummy/public/assets/g-development/mixed/kitten_7.59681fdcfdba95f16db760e490fa04d0cb302b80a91c0f7f5d8e36211811f8d2.jpg +0 -0
  189. data/spec/dummy/public/assets/g-development/mixed/kitten_7.jpg +0 -0
  190. data/spec/dummy/public/assets/g-development/mixed/kitten_8.7225e60000a76c9273ead2e6d8d8c280223e1a5b58e99693f486b5d3cd02d755.jpg +0 -0
  191. data/spec/dummy/public/assets/g-development/mixed/kitten_8.jpg +0 -0
  192. data/spec/dummy/public/assets/g-development/mixed/logo.58a56028cf0d44791e113b8cdfd4d3ad704212ba765e7cb600899c19e0cb782c.png +0 -0
  193. data/spec/dummy/public/assets/g-development/mixed/logo.png +0 -0
  194. data/spec/dummy/public/assets/g-development/plain/application.css +430 -0
  195. data/spec/dummy/public/assets/g-development/plain/application.css.map +11 -0
  196. data/spec/dummy/public/assets/g-development/plain/application.js +11580 -0
  197. data/spec/dummy/public/assets/g-development/plain/application.js.map +11 -0
  198. data/spec/dummy/public/assets/g-development/plain/kitten_1.jpg +0 -0
  199. data/spec/dummy/public/assets/g-development/plain/kitten_2.jpg +0 -0
  200. data/spec/dummy/public/assets/g-development/plain/kitten_3.jpg +0 -0
  201. data/spec/dummy/public/assets/g-development/plain/kitten_4.jpg +0 -0
  202. data/spec/dummy/public/assets/g-development/plain/kitten_5.jpg +0 -0
  203. data/spec/dummy/public/assets/g-development/plain/kitten_6.jpg +0 -0
  204. data/spec/dummy/public/assets/g-development/plain/kitten_7.jpg +0 -0
  205. data/spec/dummy/public/assets/g-development/plain/kitten_8.jpg +0 -0
  206. data/spec/dummy/public/assets/g-development/plain/logo.png +0 -0
  207. data/spec/dummy/public/favicon.ico +0 -0
  208. data/spec/dummy/tmp/grunt/asset_timestamps.json +216 -0
  209. data/spec/dummy/tmp/grunt/css/base/application.css/1_bower.css +584 -0
  210. data/spec/dummy/tmp/grunt/css/base/application.css/base/application.css +2 -0
  211. data/spec/dummy/tmp/grunt/css/base/application.css/base/application.css.map +7 -0
  212. data/spec/dummy/tmp/grunt/css/mixed/application.css/1_bower.css +932 -0
  213. data/spec/dummy/tmp/grunt/css/mixed/application.css/mixed/application.css +2 -0
  214. data/spec/dummy/tmp/grunt/css/mixed/application.css/mixed/application.css.map +7 -0
  215. data/spec/dummy/tmp/grunt/css/mixed/application.css/mixed/second.css +2 -0
  216. data/spec/dummy/tmp/grunt/css/mixed/application.css/mixed/second.css.map +7 -0
  217. data/spec/dummy/tmp/grunt/css/plain/application.css/1_bower.css +424 -0
  218. data/spec/dummy/tmp/grunt/css/plain/application.css/plain/application.css +2 -0
  219. data/spec/dummy/tmp/grunt/css/plain/application.css/plain/application.css.map +7 -0
  220. data/spec/dummy/tmp/grunt/css/plain/application.css/plain/second.css +2 -0
  221. data/spec/dummy/tmp/grunt/css/plain/application.css/plain/second.css.map +7 -0
  222. data/spec/dummy/tmp/grunt/filerevision/development-base.json +15 -0
  223. data/spec/dummy/tmp/grunt/filerevision/development-mixed.json +15 -0
  224. data/spec/dummy/tmp/grunt/filerevision/development-plain.json +15 -0
  225. data/spec/dummy/tmp/grunt/js/base/application.js/1_bower.js +18682 -0
  226. data/spec/dummy/tmp/grunt/js/base/application.js/base/application.js +6 -0
  227. data/spec/dummy/tmp/grunt/js/base/application.js/base/application.js.map +10 -0
  228. data/spec/dummy/tmp/grunt/js/mixed/application.js/1_bower.js +13153 -0
  229. data/spec/dummy/tmp/grunt/js/mixed/application.js/mixed/application.js +6 -0
  230. data/spec/dummy/tmp/grunt/js/mixed/application.js/mixed/application.js.map +10 -0
  231. data/spec/dummy/tmp/grunt/js/mixed/application.js/mixed/second.js +2 -0
  232. data/spec/dummy/tmp/grunt/js/mixed/application.js/mixed/second.js.map +7 -0
  233. data/spec/dummy/tmp/grunt/js/plain/application.js/1_bower.js +11574 -0
  234. data/spec/dummy/tmp/grunt/js/plain/application.js/plain/application.js +2 -0
  235. data/spec/dummy/tmp/grunt/js/plain/application.js/plain/application.js.map +7 -0
  236. data/spec/dummy/tmp/grunt/js/plain/application.js/plain/second.js +2 -0
  237. data/spec/dummy/tmp/grunt/js/plain/application.js/plain/second.js.map +7 -0
  238. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_convert-units.scssc +0 -0
  239. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_directional-values.scssc +0 -0
  240. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_font-source-declaration.scssc +0 -0
  241. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_gradient-positions-parser.scssc +0 -0
  242. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_linear-angle-parser.scssc +0 -0
  243. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_linear-gradient-parser.scssc +0 -0
  244. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_linear-positions-parser.scssc +0 -0
  245. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_linear-side-corner-parser.scssc +0 -0
  246. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_radial-arg-parser.scssc +0 -0
  247. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_radial-gradient-parser.scssc +0 -0
  248. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_radial-positions-parser.scssc +0 -0
  249. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_render-gradients.scssc +0 -0
  250. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_shape-size-stripper.scssc +0 -0
  251. data/spec/dummy/tmp/grunt/sass_cache/08ad877409792dddd715faefc2a5ebd471969650/_str-to-num.scssc +0 -0
  252. data/spec/dummy/tmp/grunt/sass_cache/16d30df860db416a2481ad22d3ff1a747d6219db/application.sassc +0 -0
  253. data/spec/dummy/tmp/grunt/sass_cache/1e3c1dcafa0d8e91f21a327b193bb9bbc5522a0f/_grid.sassc +0 -0
  254. data/spec/dummy/tmp/grunt/sass_cache/1e3c1dcafa0d8e91f21a327b193bb9bbc5522a0f/_layout.sassc +0 -0
  255. data/spec/dummy/tmp/grunt/sass_cache/1e3c1dcafa0d8e91f21a327b193bb9bbc5522a0f/_typography.sassc +0 -0
  256. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_border-color.scssc +0 -0
  257. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_border-radius.scssc +0 -0
  258. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_border-style.scssc +0 -0
  259. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_border-width.scssc +0 -0
  260. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_buttons.scssc +0 -0
  261. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_clearfix.scssc +0 -0
  262. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_ellipsis.scssc +0 -0
  263. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_font-stacks.scssc +0 -0
  264. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_hide-text.scssc +0 -0
  265. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_margin.scssc +0 -0
  266. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_padding.scssc +0 -0
  267. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_position.scssc +0 -0
  268. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_prefixer.scssc +0 -0
  269. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_retina-image.scssc +0 -0
  270. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_size.scssc +0 -0
  271. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_text-inputs.scssc +0 -0
  272. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_timing-functions.scssc +0 -0
  273. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_triangle.scssc +0 -0
  274. data/spec/dummy/tmp/grunt/sass_cache/27de6c9bd1cc1e521ad09b2575de2ae77a566697/_word-wrap.scssc +0 -0
  275. data/spec/dummy/tmp/grunt/sass_cache/326439c8e594c1dca703b9ee873e90079d5f5cb5/_bourbon-deprecated-upcoming.scssc +0 -0
  276. data/spec/dummy/tmp/grunt/sass_cache/326439c8e594c1dca703b9ee873e90079d5f5cb5/_bourbon.scssc +0 -0
  277. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_box-sizing.scssc +0 -0
  278. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_direction-context.scssc +0 -0
  279. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_display-context.scssc +0 -0
  280. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_fill-parent.scssc +0 -0
  281. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_media.scssc +0 -0
  282. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_omega.scssc +0 -0
  283. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_outer-container.scssc +0 -0
  284. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_pad.scssc +0 -0
  285. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_private.scssc +0 -0
  286. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_row.scssc +0 -0
  287. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_shift.scssc +0 -0
  288. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_span-columns.scssc +0 -0
  289. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_to-deprecate.scssc +0 -0
  290. data/spec/dummy/tmp/grunt/sass_cache/3ec69ce433221720b130ca9e42300ea140e6d275/_visual-grid.scssc +0 -0
  291. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_animation.scssc +0 -0
  292. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_appearance.scssc +0 -0
  293. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_backface-visibility.scssc +0 -0
  294. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_background-image.scssc +0 -0
  295. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_background.scssc +0 -0
  296. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_border-image.scssc +0 -0
  297. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_calc.scssc +0 -0
  298. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_columns.scssc +0 -0
  299. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_filter.scssc +0 -0
  300. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_flex-box.scssc +0 -0
  301. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_font-face.scssc +0 -0
  302. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_font-feature-settings.scssc +0 -0
  303. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_hidpi-media-query.scssc +0 -0
  304. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_hyphens.scssc +0 -0
  305. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_image-rendering.scssc +0 -0
  306. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_keyframes.scssc +0 -0
  307. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_linear-gradient.scssc +0 -0
  308. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_perspective.scssc +0 -0
  309. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_placeholder.scssc +0 -0
  310. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_radial-gradient.scssc +0 -0
  311. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_selection.scssc +0 -0
  312. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_text-decoration.scssc +0 -0
  313. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_transform.scssc +0 -0
  314. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_transition.scssc +0 -0
  315. data/spec/dummy/tmp/grunt/sass_cache/4f625854e2c059b207d0b2f78574d69e284dd241/_user-select.scssc +0 -0
  316. data/spec/dummy/tmp/grunt/sass_cache/547e7d669634d2662355e40eb168a731b071c473/application.sassc +0 -0
  317. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_assign-inputs.scssc +0 -0
  318. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_contains-falsy.scssc +0 -0
  319. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_contains.scssc +0 -0
  320. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_is-length.scssc +0 -0
  321. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_is-light.scssc +0 -0
  322. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_is-number.scssc +0 -0
  323. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_is-size.scssc +0 -0
  324. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_modular-scale.scssc +0 -0
  325. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_px-to-em.scssc +0 -0
  326. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_px-to-rem.scssc +0 -0
  327. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_shade.scssc +0 -0
  328. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_strip-units.scssc +0 -0
  329. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_tint.scssc +0 -0
  330. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_transition-property-name.scssc +0 -0
  331. data/spec/dummy/tmp/grunt/sass_cache/5abd7e0c6f1f03692d8b3702912743f79fedc2f3/_unpack.scssc +0 -0
  332. data/spec/dummy/tmp/grunt/sass_cache/9734cd2400af9be4fa8b47bed719f07707107597/_neat-helpers.scssc +0 -0
  333. data/spec/dummy/tmp/grunt/sass_cache/9734cd2400af9be4fa8b47bed719f07707107597/_neat.scssc +0 -0
  334. data/spec/dummy/tmp/grunt/sass_cache/a53529989ccbf12725d42e2e8519a39a49a2ca52/_disable-warnings.scssc +0 -0
  335. data/spec/dummy/tmp/grunt/sass_cache/a53529989ccbf12725d42e2e8519a39a49a2ca52/_grid.scssc +0 -0
  336. data/spec/dummy/tmp/grunt/sass_cache/a53529989ccbf12725d42e2e8519a39a49a2ca52/_visual-grid.scssc +0 -0
  337. data/spec/dummy/tmp/grunt/sass_cache/ac58adafccab62210cad1ab751e37e487323cace/_new-breakpoint.scssc +0 -0
  338. data/spec/dummy/tmp/grunt/sass_cache/ac58adafccab62210cad1ab751e37e487323cace/_private.scssc +0 -0
  339. data/spec/dummy/tmp/grunt/sass_cache/c1fd3f393f01d5e51395ed159f6ce9ebd70b922c/_asset-pipeline.scssc +0 -0
  340. data/spec/dummy/tmp/grunt/sass_cache/c1fd3f393f01d5e51395ed159f6ce9ebd70b922c/_prefixer.scssc +0 -0
  341. data/spec/dummy/tmp/grunt/sass_cache/c1fd3f393f01d5e51395ed159f6ce9ebd70b922c/_px-to-em.scssc +0 -0
  342. data/spec/dummy/tmp/grunt/sass_cache/f99d6590ab65c8c8aa1da236ac0fecd5fcafa344/_footer.sassc +0 -0
  343. data/spec/dummy/tmp/grunt/sass_cache/f99d6590ab65c8c8aa1da236ac0fecd5fcafa344/_grid.sassc +0 -0
  344. data/spec/dummy/tmp/grunt/sass_cache/f99d6590ab65c8c8aa1da236ac0fecd5fcafa344/_layout.sassc +0 -0
  345. data/spec/dummy/tmp/grunt/sass_cache/f99d6590ab65c8c8aa1da236ac0fecd5fcafa344/_test1.sassc +0 -0
  346. data/spec/dummy/tmp/grunt/sass_cache/f99d6590ab65c8c8aa1da236ac0fecd5fcafa344/_typography.sassc +0 -0
  347. data/spec/dummy/tmp/pids/server.pid +1 -0
  348. data/spec/rails_helper.rb +1 -0
  349. data/spec/spec_helper.rb +58 -0
  350. metadata +679 -0
@@ -0,0 +1,10 @@
1
+ module.exports = class AbstractTaskHelper extends require('../abstract')
2
+
3
+ getCacheKey: ->
4
+ "watch-#{@eac.env_name}-#{@eac.app_name}"
5
+
6
+ isEnabled: ->
7
+ return false unless super() == true
8
+ return false unless @_.isObject(@getConfig().watch)
9
+
10
+ @getConfig().watch.enabled == true
@@ -0,0 +1,40 @@
1
+ module.exports = class TaskHelper extends require('./abstract')
2
+
3
+ isEnabled: ->
4
+ return false unless super() == true
5
+
6
+ @_.isObject(@getConfig().watch.groups)
7
+
8
+ run: ->
9
+ return unless @isEnabled()
10
+
11
+ cfg = @g.config.get('watch') || {}
12
+ cfg = @_.merge {}, cfg, @buildConfig()
13
+
14
+ @g.config.merge({ watch: cfg })
15
+
16
+ buildConfig: ->
17
+ @setBaseWatchConfig()
18
+
19
+ cfg = {}
20
+
21
+ @_.each @getConfig().watch.groups, (group, group_name) =>
22
+ group_name = "#{@eac.env_name}-#{@eac.app_name}-#{group_name}"
23
+
24
+ cfg[group_name] = {}
25
+ cfg[group_name].options = {}
26
+ cfg[group_name].options.spawn = @getConfig().watch.options.spawn
27
+ cfg[group_name].options.reload = @getConfig().watch.options.reload
28
+ cfg[group_name].files = group.files
29
+ cfg[group_name].tasks = @_.map group.tasks, (task) =>
30
+ "#{task}:#{@eac.env_name}:#{@eac.app_name}"
31
+
32
+ cfg
33
+
34
+ setBaseWatchConfig: ->
35
+ cfg = {}
36
+ cfg.options = {}
37
+ cfg.options.forever = true
38
+ cfg.options.livereload = @getConfig().watch.options.livereload
39
+
40
+ @g.config.merge({ watch: cfg })
@@ -0,0 +1,21 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_bower', (t1, t2) ->
6
+ taskRunner.runGruntTask 'graspi_bower_concat_check', t1, t2
7
+ taskRunner.runGruntTask 'graspi_bower_concat', t1, t2
8
+
9
+ grunt.registerTask 'graspi_bower_concat_check', (t1, t2) ->
10
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/bower/concat_check'
11
+
12
+ grunt.registerTask 'graspi_bower_concat', (t1, t2) ->
13
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/bower/concat'
14
+
15
+ grunt.registerTask 'graspi_bower_clean', (t1, t2) ->
16
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/bower/clean'
17
+
18
+ grunt.registerTask 'graspi_bower_clean_full', (t1, t2) ->
19
+ taskRunner.runGruntTask 'graspi_bower_clean', t1, t2
20
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/bower/clean_full'
21
+
@@ -0,0 +1,8 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_browsersync', (t1, t2) ->
6
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/browsersync/browsersync'
7
+
8
+ taskRunner.runGruntTask 'browserSync', null, null
@@ -0,0 +1,31 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_css', (t1, t2) ->
6
+ taskRunner.runGruntTask 'graspi_css_copy', t1, t2
7
+ taskRunner.runGruntTask 'graspi_css_sass_compile', t1, t2
8
+ taskRunner.runGruntTask 'graspi_css_concat', t1, t2
9
+ taskRunner.runGruntTask 'graspi_css_minify', t1, t2
10
+
11
+ grunt.registerTask 'graspi_css_copy', (t1, t2) ->
12
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/copy'
13
+
14
+ grunt.registerTask 'graspi_css_sass_compile', (t1, t2) ->
15
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/sass_compile'
16
+
17
+ grunt.registerTask 'graspi_css_concat', (t1, t2) ->
18
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/concat'
19
+
20
+ grunt.registerTask 'graspi_css_minify', (t1, t2) ->
21
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/minify'
22
+
23
+ grunt.registerTask 'graspi_css_replace_urls', (t1, t2) ->
24
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/replace_urls'
25
+
26
+ grunt.registerTask 'graspi_css_clean', (t1, t2) ->
27
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/clean'
28
+
29
+ grunt.registerTask 'graspi_css_clean_full', (t1, t2) ->
30
+ taskRunner.runGruntTask 'graspi_css_clean', t1, t2
31
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/css/clean_full'
@@ -0,0 +1,13 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_filerev', (t1, t2) ->
6
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/filerev/filerev'
7
+
8
+ grunt.registerTask 'graspi_filerev_clean', (t1, t2) ->
9
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/filerev/clean'
10
+
11
+ grunt.registerTask 'graspi_filerev_clean_full', (t1, t2) ->
12
+ taskRunner.runGruntTask 'graspi_filerev_clean', t1, t2
13
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/filerev/clean_full'
@@ -0,0 +1,28 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_image_min', (t1, t2) ->
6
+ taskRunner.runGruntTask 'graspi_image_min_copy', t1, t2
7
+ taskRunner.runGruntTask 'graspi_image_min_imagemin', t1, t2
8
+ taskRunner.runGruntTask 'graspi_image_min_svgmin', t1, t2
9
+ taskRunner.runGruntTask 'graspi_image_min_update_timestamps', t1, t2
10
+
11
+ grunt.registerTask 'graspi_image_min_copy', (t1, t2) ->
12
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/copy'
13
+
14
+ grunt.registerTask 'graspi_image_min_imagemin', (t1, t2) ->
15
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/imagemin'
16
+
17
+ grunt.registerTask 'graspi_image_min_svgmin', (t1, t2) ->
18
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/svgmin'
19
+
20
+ grunt.registerTask 'graspi_image_min_update_timestamps', (t1, t2) ->
21
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/timestamps'
22
+
23
+ grunt.registerTask 'graspi_image_min_clean', (t1, t2) ->
24
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/clean'
25
+
26
+ grunt.registerTask 'graspi_image_min_clean_full', (t1, t2) ->
27
+ taskRunner.runGruntTask 'graspi_image_min_clean', t1, t2
28
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/image_min/clean_full'
@@ -0,0 +1,28 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_js', (t1, t2) ->
6
+ taskRunner.runGruntTask 'graspi_js_copy', t1, t2
7
+ taskRunner.runGruntTask 'graspi_js_coffee_compile', t1, t2
8
+ taskRunner.runGruntTask 'graspi_js_concat', t1, t2
9
+ taskRunner.runGruntTask 'graspi_js_uglify', t1, t2
10
+
11
+ grunt.registerTask 'graspi_js_copy', (t1, t2) ->
12
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/copy'
13
+
14
+ grunt.registerTask 'graspi_js_coffee_compile', (t1, t2) ->
15
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/coffee_compile'
16
+
17
+ grunt.registerTask 'graspi_js_concat', (t1, t2) ->
18
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/concat'
19
+
20
+ grunt.registerTask 'graspi_js_uglify', (t1, t2) ->
21
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/uglify'
22
+
23
+ grunt.registerTask 'graspi_js_clean', (t1, t2) ->
24
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/clean'
25
+
26
+ grunt.registerTask 'graspi_js_clean_full', (t1, t2) ->
27
+ taskRunner.runGruntTask 'graspi_js_clean', t1, t2
28
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/js/clean_full'
@@ -0,0 +1,13 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_manifest', (t1, t2) ->
6
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/manifest/manifest'
7
+
8
+ grunt.registerTask 'graspi_manifest_clean', (t1, t2) ->
9
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/manifest/clean'
10
+
11
+ grunt.registerTask 'graspi_manifest_clean_full', (t1, t2) ->
12
+ taskRunner.runGruntTask 'graspi_manifest_clean', t1, t2
13
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/manifest/clean_full'
@@ -0,0 +1,8 @@
1
+ module.exports = (grunt, configPath) ->
2
+
3
+ taskRunner = require('../util/task_runner')(grunt, configPath)
4
+
5
+ grunt.registerTask 'graspi_watch', (t1, t2) ->
6
+ taskRunner.runGraspiTask t1, t2, 'task_helpers/watch/watch'
7
+
8
+ taskRunner.runGruntTask 'watch', null, null
@@ -0,0 +1,280 @@
1
+ _ = require './lodash_extensions'
2
+ AppConfig = require './config_app'
3
+
4
+ configs = {}
5
+
6
+ module.exports = (grunt, configFile) ->
7
+ if grunt.file.exists(configFile) == false
8
+ grunt.fail.fatal("graspi: missing config file - #{configFile}")
9
+ else if _.isEmpty(configs[configFile]) || !_.isObject(configs[configFile])
10
+ configs[configFile] = new GraspiConfig(grunt, configFile)
11
+
12
+ return configs[configFile]
13
+
14
+ class GraspiConfig
15
+
16
+ constructor: (grunt, configFile) ->
17
+ @grunt = grunt
18
+ @configFile = configFile
19
+
20
+ @buildConfig()
21
+ @buildAppConfigs()
22
+
23
+ getDefaults: ->
24
+ environments: []
25
+ apps: {}
26
+ assetHost: ''
27
+ tmp:
28
+ css: 'tmp/grunt/css'
29
+ js: 'tmp/grunt/js'
30
+ images: 'tmp/grunt/images'
31
+ filerevision: 'tmp/grunt/filerevision'
32
+ filerev: 'tmp/grunt/filerev'
33
+ bowerConcat:
34
+ enabled: true
35
+ include: []
36
+ exclude: []
37
+ dependencies: {}
38
+ mainFiles: []
39
+ cssSass:
40
+ enabed: true
41
+ trace: false
42
+ compass: false
43
+ debugInfo: false
44
+ lineNumbers: false
45
+ cacheLocation: 'tmp/grunt/sass_cache'
46
+ precision: 10
47
+ quiet: false
48
+ sourcemap: 'auto'
49
+ style: 'compressed'
50
+ update: true
51
+ loadPath: []
52
+ cssMinify:
53
+ enabled: false
54
+ report: 'min'
55
+ sourceMap: true
56
+ cleanCss:
57
+ advanced: false
58
+ aggressiveMerging: false
59
+ compatibility: '*'
60
+ keepBreaks: false
61
+ keepSpecialComments: 0
62
+ mediaMerging: true
63
+ rebase: false
64
+ restructuring: true
65
+ roundingPrecision: -1
66
+ semanticMerging: false
67
+ shorthandCompacting: false
68
+ sourceMapInlineSources: false
69
+ jsCoffee:
70
+ enabled: true
71
+ bare: false
72
+ uglify: false
73
+ sourceMap: true
74
+ jsUglify:
75
+ enabled: false
76
+ report: 'min'
77
+ sourceMap: true
78
+ options:
79
+ mangle: false
80
+ beautify: false
81
+ maxLineLen: 32000
82
+ ASCIIOnly: false
83
+ exportAll: false
84
+ preserveComments: 'all'
85
+ banner: ''
86
+ footer: ''
87
+ screwIE8: false
88
+ mangleProperties: false
89
+ reserveDOMProperties: false
90
+ nameCache: 'tmp/grunt/coffee_mangle_cache.json'
91
+ quoteStyle: 0
92
+ imageMin:
93
+ enabled: true
94
+ gifInterlaced: false
95
+ jpegProgressive: false
96
+ pngOptimizationLevel: 0
97
+ jpegRecompressPlugin:
98
+ enabled: false
99
+ loops: 6
100
+ accurate: true
101
+ quality: 'veryhigh'
102
+ method: 'ssim'
103
+ target: 0.9999
104
+ min: 60
105
+ max: 99
106
+ defish: 0
107
+ progressive: true
108
+ subsample: 'default'
109
+ filerevision:
110
+ enabled: false
111
+ manifest:
112
+ prettyPrint: true
113
+ manifest:
114
+ enabled: true
115
+ prettyPrint: true
116
+ path: 'public/assets/g-assets.json'
117
+ fileReplacePattern:
118
+ pattern: '^(\/)?public\/assets\/g\-development(\/)?'
119
+ replace: ''
120
+ pathReplacePattern:
121
+ pattern: '^(\/)?public\/'
122
+ replace: ''
123
+ watch:
124
+ enabled: true
125
+ options:
126
+ livereload: 35729
127
+ spawn: false
128
+ reload: false
129
+ gruntfile:
130
+ files: ['Gruntfile.coffee']
131
+ browserSync:
132
+ enabled: true
133
+ bsFiles: {}
134
+ options:
135
+ watchTask: true
136
+ ui:
137
+ port: 3001
138
+ weinre:
139
+ port: 8080
140
+ server: false
141
+ proxy: false
142
+ port: 3002
143
+ https: undefined
144
+ ghostMode:
145
+ clicks: true
146
+ scroll: true
147
+ forms:
148
+ submit: true
149
+ inputs: true
150
+ toggles: true
151
+ logLevel: 'info'
152
+ logPrefix: 'BS'
153
+ logConnections: false
154
+ logFileChanges: true
155
+ logSnippet: true
156
+ snippetOptions:
157
+ async: true
158
+ whitelist: []
159
+ blacklist: []
160
+ rule:
161
+ match: /<body[^>]*>/i
162
+ fn: (snippet, match) ->
163
+ match + snippet
164
+ rewriteRules: false
165
+ tunnel: null
166
+ online: null
167
+ open: false
168
+ browser: 'default'
169
+ xip: false
170
+ reloadOnRestart: false
171
+ notify: true
172
+ scrollProportionally: true
173
+ scrollThrottle: 0
174
+ scrollRestoreTechnique: 'window.name'
175
+ reloadDelay: 0
176
+ reloadDebounce: 0
177
+ plugins: []
178
+ injectChanges: true
179
+ startPath: null
180
+ minify: true
181
+ host: null
182
+ codeSync: true
183
+ timestamps: true
184
+ scriptPath: undefined
185
+ socket:
186
+ path: '/browser-sync/socket.io'
187
+ clientPath: '/browser-sync'
188
+ namespace: '/browser-sync'
189
+ domain: undefined
190
+ clients:
191
+ heartbeatTimeout: 5000
192
+
193
+ tasks:
194
+ gt_stylesheets: [
195
+ 'graspi_css_copy'
196
+ 'graspi_css_sass_compile'
197
+ 'graspi_css_concat'
198
+ 'graspi_css_minify'
199
+ 'graspi_filerev'
200
+ 'graspi_manifest'
201
+ 'graspi_css_replace_urls'
202
+ ]
203
+ gt_css: [
204
+ 'graspi_css_copy'
205
+ 'graspi_css_concat'
206
+ 'graspi_css_minify'
207
+ 'graspi_filerev'
208
+ 'graspi_manifest'
209
+ 'graspi_css_replace_urls'
210
+ ]
211
+ gt_sass: [
212
+ 'graspi_css_sass_compile'
213
+ 'graspi_css_concat'
214
+ 'graspi_css_minify'
215
+ 'graspi_filerev'
216
+ 'graspi_manifest'
217
+ 'graspi_css_replace_urls'
218
+ ]
219
+ gt_scripts: [
220
+ 'graspi_js_copy'
221
+ 'graspi_js_coffee_compile'
222
+ 'graspi_js_concat'
223
+ 'graspi_js_uglify'
224
+ ]
225
+ gt_js: [
226
+ 'graspi_js_copy'
227
+ 'graspi_js_concat'
228
+ 'graspi_js_uglify'
229
+ ]
230
+ gt_coffee: [
231
+ 'graspi_js_coffee_compile'
232
+ 'graspi_js_concat'
233
+ 'graspi_js_uglify'
234
+ ]
235
+
236
+
237
+ getBaseConfig: ->
238
+ @baseConfig or= {}
239
+
240
+ getConfig: ->
241
+ @configObject or= {}
242
+
243
+ getAppConfigs: ->
244
+ @appConfigsObject or= {}
245
+
246
+ getEnvironment: (env_name) ->
247
+ @getConfig()[env_name]
248
+
249
+ getApp: (env_name, app_name) ->
250
+ return null unless _.isObject(@getAppConfigs()[app_name])
251
+
252
+ @getAppConfigs()[app_name].getConfig(env_name)
253
+
254
+ getYamlFileConfig: ->
255
+ try
256
+ yaml = @grunt.file.readYAML(@configFile)
257
+ finally
258
+ yaml or= {}
259
+
260
+ yaml
261
+
262
+ buildConfig: ->
263
+ resultConfig = {}
264
+ configYaml = @getYamlFileConfig()
265
+ baseConfig = _.mergeRecursive(@getDefaults(), configYaml)
266
+ @baseConfig = _.mergeRecursive(@getDefaults(), configYaml)
267
+
268
+ _.each baseConfig.environments, (env) =>
269
+ delete baseConfig[env]
270
+
271
+ _.each baseConfig.environments, (env) =>
272
+ resultConfig[env] = _.mergeRecursive(baseConfig, (configYaml[env] || {}))
273
+
274
+ @configObject = resultConfig
275
+
276
+ buildAppConfigs: ->
277
+ _.each @getConfig(), (env, env_name) =>
278
+ _.each env.apps, (app, app_name) =>
279
+ @getAppConfigs()[app_name] = new AppConfig(@grunt, @getConfig(), app_name)
280
+