Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

client side build tools working

  • Loading branch information...
commit 66e29e7ed0cad3f508d6b4d961f85cd66760701a 1 parent b6d1726
Ben Ipsen authored August 04, 2012

Showing 303 changed files with 55,462 additions and 5 deletions. Show diff stats Hide diff stats

  1. BIN  .DS_Store
  2. 11  README.md
  3. 11  bin/flint
  4. 280  node/coffee.js
  5. 86  node/dependency.js
  6. 57  node/flint.js
  7. 152  node/styler.js
  8. 1  node_modules/.bin/cake
  9. 1  node_modules/.bin/coffee
  10. 1  node_modules/.bin/handlebar-rider
  11. 1  node_modules/.bin/stylus
  12. 1  node_modules/.bin/toaster
  13. 1  node_modules/.bin/uglifyjs
  14. 1  node_modules/coffee-script
  15. 0  toaster.coffee → node_modules/express-resource/.gitmodules
  16. 2  node_modules/express-resource/.npmignore
  17. 51  node_modules/express-resource/History.md
  18. 6  node_modules/express-resource/Makefile
  19. 194  node_modules/express-resource/Readme.md
  20. 54  node_modules/express-resource/examples/content-negotiation.js
  21. 34  node_modules/express-resource/examples/controllers/forum.js
  22. 26  node_modules/express-resource/examples/controllers/thread.js
  23. 16  node_modules/express-resource/examples/nesting.js
  24. 22  node_modules/express-resource/examples/root.js
  25. 50  node_modules/express-resource/examples/user.js
  26. 262  node_modules/express-resource/index.js
  27. 3  node_modules/express-resource/node_modules/lingo/.gitmodules
  28. 1  node_modules/express-resource/node_modules/lingo/.npmignore
  29. 28  node_modules/express-resource/node_modules/lingo/History.md
  30. 22  node_modules/express-resource/node_modules/lingo/LICENSE
  31. 17  node_modules/express-resource/node_modules/lingo/Makefile
  32. 128  node_modules/express-resource/node_modules/lingo/Readme.md
  33. 572  node_modules/express-resource/node_modules/lingo/index.html
  34. 2  node_modules/express-resource/node_modules/lingo/index.js
  35. 194  node_modules/express-resource/node_modules/lingo/lib/inflection.js
  36. 52  node_modules/express-resource/node_modules/lingo/lib/language.js
  37. 138  node_modules/express-resource/node_modules/lingo/lib/languages/en.js
  38. 91  node_modules/express-resource/node_modules/lingo/lib/languages/es.js
  39. 140  node_modules/express-resource/node_modules/lingo/lib/lingo.js
  40. 24  node_modules/express-resource/node_modules/lingo/package.json
  41. 118  node_modules/express-resource/node_modules/lingo/test/inflection.en.test.js
  42. 50  node_modules/express-resource/node_modules/lingo/test/inflection.es.test.js
  43. 38  node_modules/express-resource/node_modules/lingo/test/lingo.test.js
  44. 30  node_modules/express-resource/node_modules/lingo/test/translation.test.js
  45. 38  node_modules/express-resource/package.json
  46. 15  node_modules/handlebar-rider/.npmignore
  47. 75  node_modules/handlebar-rider/README.md
  48. 8  node_modules/handlebar-rider/bin/handlebar-rider
  49. 296  node_modules/handlebar-rider/lib/handlebar-rider.js
  50. 1  node_modules/handlebar-rider/node_modules/.bin/handlebars
  51. 1  node_modules/handlebar-rider/node_modules/.bin/uglifyjs
  52. 52  node_modules/handlebar-rider/node_modules/handlebars/.jshintrc
  53. 11  node_modules/handlebar-rider/node_modules/handlebars/.npmignore
  54. 1  node_modules/handlebar-rider/node_modules/handlebars/.rspec
  55. 20  node_modules/handlebar-rider/node_modules/handlebars/LICENSE
  56. 316  node_modules/handlebar-rider/node_modules/handlebars/README.markdown
  57. 139  node_modules/handlebar-rider/node_modules/handlebars/bin/handlebars
  58. 10  node_modules/handlebar-rider/node_modules/handlebars/handlebars.sublime-project
  59. 3,338  node_modules/handlebar-rider/node_modules/handlebars/handlebars.sublime-workspace
  60. 14  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars.js
  61. 119  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/base.js
  62. 123  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/ast.js
  63. 27  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/base.js
  64. 1,066  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/compiler.js
  65. 7  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/index.js
  66. 488  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/parser.js
  67. 127  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/printer.js
  68. 13  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/compiler/visitor.js
  69. 68  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/runtime.js
  70. 68  node_modules/handlebar-rider/node_modules/handlebars/lib/handlebars/utils.js
  71. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/.bin/uglifyjs
  72. 4  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/.npmignore
  73. 981  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/README.html
  74. 578  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/README.org
  75. 332  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/bin/uglifyjs
  76. 75  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/docstyle.css
  77. 2,599  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/lib/consolidator.js
  78. 75  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/lib/object-ast.js
  79. 1,346  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/lib/parse-js.js
  80. 2,011  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/lib/process.js
  81. 73  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/lib/squeeze-more.js
  82. 21  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/package.json
  83. 24  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/package.json~
  84. 28  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/beautify.js
  85. 403  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/testparser.js
  86. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/array1.js
  87. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/array2.js
  88. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/array3.js
  89. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/array4.js
  90. 1  ...es/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/assignment.js
  91. 1  .../handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/concatstring.js
  92. 1  ...modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/const.js
  93. 1  .../handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js
  94. 1  .../handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/forstatement.js
  95. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/if.js
  96. 1  ...ules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js
  97. 1  ...les/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js
  98. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue10.js
  99. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue11.js
  100. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue13.js
  101. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue14.js
  102. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue16.js
  103. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue17.js
  104. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue20.js
  105. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue21.js
  106. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue25.js
  107. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue27.js
  108. 1  ...ules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue278.js
  109. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue28.js
  110. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue29.js
  111. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue30.js
  112. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue34.js
  113. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue4.js
  114. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue48.js
  115. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue50.js
  116. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue53.js
  117. 1  ...les/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js
  118. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue68.js
  119. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue69.js
  120. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/issue9.js
  121. 1  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/mangle.js
  122. 1  ...s/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/null_string.js
  123. 1  ...handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js
  124. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/var.js
  125. 1  ...es/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/whitespace.js
  126. 1  ..._modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/expected/with.js
  127. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/array1.js
  128. 4  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/array2.js
  129. 4  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/array3.js
  130. 6  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/array4.js
  131. 20  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/assignment.js
  132. 3  ...ules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/concatstring.js
  133. 5  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/const.js
  134. 4  ...ules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js
  135. 10  ...ules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/forstatement.js
  136. 6  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/if.js
  137. 9  ..._modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/ifreturn.js
  138. 16  ...modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js
  139. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue10.js
  140. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue11.js
  141. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue13.js
  142. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue14.js
  143. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue16.js
  144. 4  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue17.js
  145. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue20.js
  146. 6  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue21.js
  147. 7  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue25.js
  148. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue27.js
  149. 1  ..._modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue278.js
  150. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue28.js
  151. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue29.js
  152. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue30.js
  153. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue34.js
  154. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue4.js
  155. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue48.js
  156. 9  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue50.js
  157. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue53.js
  158. 3  ...modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue54.1.js
  159. 5  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue68.js
  160. 1  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue69.js
  161. 4  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/issue9.js
  162. 5  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/mangle.js
  163. 1  ...dules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/null_string.js
  164. 3  ...les/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/strict-equals.js
  165. 3  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/var.js
  166. 21  ...odules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/whitespace.js
  167. 2  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/compress/test/with.js
  168. 55  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/test/unit/scripts.js
  169. 13  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/269.js
  170. 22,315  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/app.js
  171. 15  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/embed-tokens.js
  172. 26  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/goto.js
  173. 8  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/goto2.js
  174. 33  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/hoist.js
  175. 97  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/instrument.js
  176. 138  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/instrument2.js
  177. 8  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/liftvars.js
  178. 30  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/test.js
  179. 3,930  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/uglify-hangs.js
  180. 166  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/tmp/uglify-hangs2.js
  181. 18  node_modules/handlebar-rider/node_modules/handlebars/node_modules/uglify-js/uglify-js.js
  182. 34  node_modules/handlebar-rider/node_modules/handlebars/package.json
  183. 4  node_modules/handlebar-rider/node_modules/uglify-js/.npmignore
  184. 1,026  node_modules/handlebar-rider/node_modules/uglify-js/README.html
  185. 571  node_modules/handlebar-rider/node_modules/uglify-js/README.org
  186. 317  node_modules/handlebar-rider/node_modules/uglify-js/bin/uglifyjs
  187. 75  node_modules/handlebar-rider/node_modules/uglify-js/docstyle.css
  188. 75  node_modules/handlebar-rider/node_modules/uglify-js/lib/object-ast.js
  189. 1,339  node_modules/handlebar-rider/node_modules/uglify-js/lib/parse-js.js
  190. 2,001  node_modules/handlebar-rider/node_modules/uglify-js/lib/process.js
  191. 51  node_modules/handlebar-rider/node_modules/uglify-js/lib/squeeze-more.js
  192. 21  node_modules/handlebar-rider/node_modules/uglify-js/package.json
  193. 24  node_modules/handlebar-rider/node_modules/uglify-js/package.json~
  194. 28  node_modules/handlebar-rider/node_modules/uglify-js/test/beautify.js
  195. 403  node_modules/handlebar-rider/node_modules/uglify-js/test/testparser.js
  196. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/array1.js
  197. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/array2.js
  198. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/array3.js
  199. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/array4.js
  200. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/assignment.js
  201. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/concatstring.js
  202. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/const.js
  203. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js
  204. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/forstatement.js
  205. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/if.js
  206. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js
  207. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js
  208. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue10.js
  209. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue11.js
  210. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue13.js
  211. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue14.js
  212. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue16.js
  213. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue17.js
  214. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue20.js
  215. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue21.js
  216. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue25.js
  217. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue27.js
  218. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue28.js
  219. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue29.js
  220. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue30.js
  221. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue34.js
  222. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue4.js
  223. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue48.js
  224. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue50.js
  225. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue53.js
  226. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js
  227. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue68.js
  228. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue69.js
  229. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/issue9.js
  230. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/mangle.js
  231. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/null_string.js
  232. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js
  233. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/var.js
  234. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/whitespace.js
  235. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/expected/with.js
  236. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/array1.js
  237. 4  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/array2.js
  238. 4  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/array3.js
  239. 6  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/array4.js
  240. 20  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/assignment.js
  241. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/concatstring.js
  242. 5  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/const.js
  243. 4  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js
  244. 10  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/forstatement.js
  245. 6  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/if.js
  246. 9  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/ifreturn.js
  247. 16  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js
  248. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue10.js
  249. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue11.js
  250. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue13.js
  251. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue14.js
  252. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue16.js
  253. 4  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue17.js
  254. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue20.js
  255. 6  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue21.js
  256. 7  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue25.js
  257. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue27.js
  258. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue28.js
  259. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue29.js
  260. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue30.js
  261. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue34.js
  262. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue4.js
  263. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue48.js
  264. 9  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue50.js
  265. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue53.js
  266. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue54.1.js
  267. 5  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue68.js
  268. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue69.js
  269. 4  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/issue9.js
  270. 5  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/mangle.js
  271. 1  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/null_string.js
  272. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/strict-equals.js
  273. 3  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/var.js
  274. 21  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/whitespace.js
  275. 2  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/compress/test/with.js
  276. 55  node_modules/handlebar-rider/node_modules/uglify-js/test/unit/scripts.js
  277. 33  node_modules/handlebar-rider/node_modules/uglify-js/tmp/hoist.js
  278. 97  node_modules/handlebar-rider/node_modules/uglify-js/tmp/instrument.js
  279. 138  node_modules/handlebar-rider/node_modules/uglify-js/tmp/instrument2.js
  280. 30  node_modules/handlebar-rider/node_modules/uglify-js/tmp/test.js
  281. 17  node_modules/handlebar-rider/node_modules/uglify-js/uglify-js.js
  282. 34  node_modules/handlebar-rider/package.json
  283. 1  node_modules/optimist
  284. 22  node_modules/stylus/LICENSE
  285. 157  node_modules/stylus/Readme.md
  286. 596  node_modules/stylus/bin/stylus
  287. 63  node_modules/stylus/bm.js
  288. 4  node_modules/stylus/index.js
  289. 156  node_modules/stylus/lib/colors.js
  290. 130  node_modules/stylus/lib/convert/css.js
  291. 58  node_modules/stylus/lib/errors.js
  292. 121  node_modules/stylus/lib/functions/image.js
  293. 809  node_modules/stylus/lib/functions/index.js
  294. 227  node_modules/stylus/lib/functions/index.styl
  295. 98  node_modules/stylus/lib/functions/url.js
  296. 792  node_modules/stylus/lib/lexer.js
  297. 211  node_modules/stylus/lib/middleware.js
  298. 65  node_modules/stylus/lib/nodes/arguments.js
  299. 54  node_modules/stylus/lib/nodes/binop.js
  300. 99  node_modules/stylus/lib/nodes/block.js
  301. 103  node_modules/stylus/lib/nodes/boolean.js
  302. 57  node_modules/stylus/lib/nodes/call.js
BIN  .DS_Store
Binary file not shown
11  README.md
Source Rendered
... ...
@@ -1,10 +1,11 @@
1  
-flint
2  
-=====
  1
+# flint
  2
+================
3 3
 
4  
-2 simple goals of this project: 
  4
+Full stack coffee script development.  This is in it's very early stages, the client side compile and watch tools are the only thing working right now. 
5 5
 
6  
-1. Single model definitions for Backbone Client and Server Flatiron-based Modeling
  6
+STAY TUNED.
7 7
 
8  
-2. Built-in routing conventions for server side modeling
  8
+### Install:
9 9
 
  10
+		npm install -g flint
10 11
 
11  bin/flint
... ...
@@ -0,0 +1,11 @@
  1
+#!/usr/bin/env node
  2
+
  3
+var path = require('path');
  4
+var fs = require('fs');
  5
+var node = path.join(path.dirname(fs.realpathSync(__filename)), '../node');
  6
+
  7
+flint = require(node + '/flint')
  8
+
  9
+
  10
+
  11
+
280  node/coffee.js
... ...
@@ -0,0 +1,280 @@
  1
+
  2
+// compiles the coffeescript into a single file
  3
+
  4
+
  5
+// handlebar coffee
  6
+
  7
+coffeescript = require('coffee-script');
  8
+uglify = require('uglify-js');
  9
+fs = require('fs');
  10
+
  11
+
  12
+(function(){
  13
+  
  14
+  //colored output
  15
+  var color = {
  16
+    red : '\u001b[31m',
  17
+    blue: '\u001b[36m',
  18
+    green: '\u001b[32m',
  19
+    yellow: '\u001b[33m',
  20
+    reset: '\u001b[0m'
  21
+  }
  22
+
  23
+  //options and helper functions scoped globally in simple namespaced object
  24
+  var coffee = {
  25
+  
  26
+    in: './app/coffee/', 
  27
+    out: './public/javascript/application.js',
  28
+    scripts: [],
  29
+    directories: [],
  30
+    minify: false
  31
+    
  32
+  }
  33
+  
  34
+  // recursively reads in directory and namespaces template and partial objects  
  35
+  var recurseCoffeeDirectory = function(dir, done) {
  36
+    
  37
+    // stores results    
  38
+    var results = []
  39
+    
  40
+    // read the directory    
  41
+    fs.readdir(dir, function(err, list) {
  42
+    
  43
+      if (err) return done(err);
  44
+      var pending = list.length;
  45
+      if (!pending) return done(null, results);
  46
+    
  47
+      // walk it
  48
+      list.forEach( function(file) {
  49
+      
  50
+        file = dir + '/' + file;
  51
+        
  52
+        // determine if file or directory
  53
+        fs.stat(file, function(err, stat) {
  54
+      
  55
+          if (stat && stat.isDirectory()) {
  56
+          
  57
+              // push as directory
  58
+              results.push('directory:' + file);          
  59
+              recurseCoffeeDirectory(file, function(err, res) {
  60
+              results = results.concat(res);
  61
+              if (!--pending) done(null, results);
  62
+          
  63
+            });
  64
+      
  65
+          } else {
  66
+            
  67
+            // push as file
  68
+            results.push('file:' + file);    
  69
+            if (!--pending) done(null, results);
  70
+      
  71
+          }
  72
+      
  73
+        });
  74
+      });
  75
+    });
  76
+      
  77
+  };
  78
+    
  79
+  
  80
+  //watches a file for changes
  81
+  var fileHasChanged = function(event, filename){
  82
+      
  83
+      console.log(color.blue + '[brew] change detected to file, recompiling' + color.reset);
  84
+      compileTemplates();
  85
+  
  86
+  };
  87
+  
  88
+  
  89
+  // watches a directory for changes  
  90
+  var directoryHasChanged = function(event, filename){
  91
+     
  92
+      console.log(color.blue + '[brew] new or removed file detected, recompiling' + color.reset);
  93
+      readAndCompile(coffee.in, coffee.watch);
  94
+        
  95
+  };
  96
+  
  97
+  var watchers = []
  98
+  var unwatchAll = function(){
  99
+    
  100
+    for(var w = 0; w < watchers.length; w++){
  101
+      watchers[w].close();
  102
+    }
  103
+    
  104
+  }
  105
+    
  106
+  //compiles to output destination
  107
+  var compileTemplates = function(){
  108
+    
  109
+    
  110
+    out = []
  111
+    
  112
+    
  113
+    try { 
  114
+      
  115
+      //console.log(coffee.directories)
  116
+    
  117
+      // scope all the directories as objects for the begining of the file
  118
+      for(var d = 0; d < coffee.directories.length; d++){
  119
+      
  120
+        object = coffee.directories[d].namespace.replace(/\//g,'.');
  121
+        out.push(object + ' = {}\n');
  122
+      
  123
+      }
  124
+      
  125
+      // add the __ methods required for class inheritance
  126
+      out.push('\n');
  127
+      out.push('__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n');
  128
+      out.push('__hasProp = {}.hasOwnProperty,\n');
  129
+      out.push('__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n');
  130
+    
  131
+      // compile all the coffee scripts
  132
+      out.push('\n');
  133
+      
  134
+      for(var s = 0; s < coffee.scripts.length; s++){
  135
+          data = fs.readFileSync(coffee.scripts[s].file, 'utf8');
  136
+          compiled = coffeescript.compile(data, {bare:true})
  137
+          
  138
+          // hack off var Whatever line
  139
+          compiled = compiled.substr(compiled.indexOf('\n\n'), compiled.length);
  140
+          
  141
+          // trim so we can rescope objects based on the directory structure
  142
+          compiled = compiled.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  143
+          spaced = coffee.scripts[s].namespace.substr(0, coffee.scripts[s].namespace.lastIndexOf('/')).replace(/\//g,'.')
  144
+          
  145
+          out.push(spaced + '.' + compiled + '\n')
  146
+      
  147
+      }
  148
+      
  149
+    } catch (e) {
  150
+      
  151
+      console.log(color.red + '[brew] warning, a file was deleted ' + color.reset + e);
  152
+      
  153
+    }
  154
+    
  155
+    output = out.join('');
  156
+  
  157
+    if(coffee.minify){
  158
+      
  159
+      var ast = uglify.parser.parse(output);
  160
+      ast = uglify.uglify.ast_mangle(ast);
  161
+      ast = uglify.uglify.ast_squeeze(ast);
  162
+      output = uglify.uglify.gen_code(ast);
  163
+    
  164
+    }
  165
+
  166
+    //write the output file
  167
+    try {
  168
+      
  169
+      fs.writeFileSync(coffee.out, output, 'utf8');
  170
+      console.log(color.green + '[brew] compiled ' + coffee.in + ' to ' + coffee.out + color.reset);
  171
+      
  172
+    } catch(e){
  173
+    
  174
+        console.log(color.red + '[brew] ERROR! destination file or directory does not exist.' + color.reset + '\n:' + e);
  175
+    
  176
+    }
  177
+  
  178
+
  179
+ };
  180
+
  181
+  
  182
+ var readAndCompile = function(dir, watch){
  183
+   
  184
+    coffee.scripts = []
  185
+    coffee.directories = []
  186
+    
  187
+    // unwatch all the files
  188
+    unwatchAll();
  189
+    
  190
+    //read files in the directory
  191
+    recurseCoffeeDirectory(dir, function(err, files) {
  192
+    
  193
+     try {
  194
+       
  195
+       if(err)
  196
+         throw new Error('directory does not exists: ' + dir)
  197
+      
  198
+       source_dir = coffee.in.toString();
  199
+       for(var f = 0; f < files.length; f++){
  200
+          
  201
+          // determine whether or not it's a file or directory. 
  202
+          info = files[f].split(':')
  203
+          
  204
+          if( info[0] == 'file' && info[1].indexOf('.coffee') > 0 ){
  205
+            
  206
+            // watch the file
  207
+            if(watch) {
  208
+              
  209
+              watchers.push(fs.watch(info[1], fileHasChanged))
  210
+            
  211
+            }
  212
+            
  213
+            // get the template namespace by using the extra directory
  214
+            file_and_dir = info[1].substr( (info[1].indexOf(dir) + dir.length) + 1, info[1].length);
  215
+            namespaced = file_and_dir.replace(/\.coffee/,'');
  216
+            
  217
+            // push object for the compiler to work with
  218
+            coffee.scripts.push({
  219
+              namespace: namespaced,
  220
+              file: info[1]
  221
+            })
  222
+            
  223
+            
  224
+          } else if ( info[0] == 'directory') {
  225
+            
  226
+            namespaced = info[1].substr( (info[1].indexOf(source_dir) + source_dir.length) + 1, info[1].length);
  227
+            coffee.directories.push({
  228
+              namespace: namespaced,
  229
+              directory: info[0]
  230
+            })
  231
+            
  232
+            // watch the directory for new / removed files
  233
+            if(watch){ 
  234
+              
  235
+              watchers.push(fs.watch(info[1], directoryHasChanged))
  236
+            
  237
+            }
  238
+            
  239
+          }
  240
+        
  241
+        }
  242
+        
  243
+        compileTemplates();
  244
+        
  245
+      } catch (e){
  246
+        
  247
+        console.log(color.red + '[brew] ERROR! check to be sure your directories exist. ' + color.reset  + "\n" + e + "\n");
  248
+        console.log('[brew] input directory: ' + dir);
  249
+        console.log('[brew] destination file: ' + coffee.out + "\n");
  250
+        if(coffee.help)
  251
+          console.log(coffee.help)
  252
+        
  253
+      }
  254
+        
  255
+    });
  256
+   
  257
+  }  
  258
+
  259
+
  260
+// export functions for module use
  261
+exports.configure = function(config){ coffee = config; }
  262
+exports.watch = function(){
  263
+  
  264
+  console.log(color.yellow + '[brew] watching template directory ' + coffee.in  + color.reset);
  265
+  coffee.watch = true;
  266
+  readAndCompile(coffee.in, true);
  267
+  
  268
+}
  269
+
  270
+exports.compile = function(){
  271
+  coffee.watch = false;
  272
+  readAndCompile(coffee.in, false);
  273
+  
  274
+}
  275
+
  276
+ 
  277
+})()
  278
+
  279
+
  280
+
86  node/dependency.js
... ...
@@ -0,0 +1,86 @@
  1
+
  2
+// wraps up vendors into a single dependencies.js file
  3
+fs = require('fs')
  4
+
  5
+var watcher = null;
  6
+
  7
+var deps = {
  8
+  in: './app/vendor/',
  9
+  out: './public/javascript/dependencies.js',
  10
+  files: []
  11
+}
  12
+
  13
+var color = {
  14
+  red : '\u001b[31m',
  15
+  blue: '\u001b[36m',
  16
+  green: '\u001b[32m',
  17
+  yellow: '\u001b[33m',
  18
+  reset: '\u001b[0m'
  19
+}
  20
+  
  21
+var changed = function(){
  22
+
  23
+  console.log(color.blue + '[dependency] new or renamed file deteted, re-concatenating' + color.reset);
  24
+  if(watcher)
  25
+    watcher.close();  
  26
+  concat(true);
  27
+
  28
+}
  29
+
  30
+var concat = function(watch){
  31
+  
  32
+
  33
+  readThenWrite();  
  34
+  if(watch)
  35
+    watcher = fs.watch(deps.in, changed);
  36
+  
  37
+}
  38
+
  39
+var readThenWrite = function(){
  40
+  
  41
+  files = []
  42
+  try {
  43
+    
  44
+    // loop over directory and compile files
  45
+    
  46
+    fs.readdir( deps.in, function( err, list ) {
  47
+    
  48
+     for(var l = 0; l < list.length; l++){
  49
+       
  50
+       js = fs.readFileSync(deps.in + '/' + list[l], 'utf8');
  51
+       files.push(js);
  52
+      
  53
+     }
  54
+     
  55
+     write(files);
  56
+    
  57
+    });
  58
+  
  59
+  } catch (e) {
  60
+    
  61
+    console.log(color.red + '[dependency] ERROR: could not read dependencies from  : ' + deps.in + color.reset)
  62
+    
  63
+  }
  64
+  
  65
+}
  66
+
  67
+var write = function(files){
  68
+   
  69
+  
  70
+  try{
  71
+  
  72
+     fs.writeFileSync(deps.out, files.join('\n'), 'utf8');
  73
+     console.log(color.green + '[depencendcy] concatenated dependencies to ' + deps.out + color.reset);
  74
+    
  75
+  } catch (e) {
  76
+    
  77
+    console.log(color.red + '[dependency] ERROR: could not write file to : ' + deps.out + color.reset + e);
  78
+    
  79
+  }
  80
+  
  81
+  
  82
+}
  83
+
  84
+exports.on = function(config) { deps = config; }
  85
+exports.watch = function(){ concat(true); };
  86
+exports.conact = concat;
57  node/flint.js
... ...
@@ -0,0 +1,57 @@
  1
+
  2
+// flint command line tool
  3
+optimist = require('optimist');
  4
+fs = require('fs');
  5
+
  6
+brew = require('./coffee');
  7
+style = require('./styler');
  8
+depend = require('./dependency');
  9
+ride = require('handlebar-rider');
  10
+
  11
+/*
  12
+// get optimist options
  13
+argv = optimist
  14
+  .usage('\nFlint: Full stack coffeescript development.\nCommand Line Use: ')
  15
+  
  16
+  
  17
+  .demand(' ')
  18
+ 
  19
+.argv
  20
+*/
  21
+
  22
+// wrap dependencies
  23
+//depencency = { 
  24
+// in: '/Users/benipsen/Sites/flybook/app/vendor',
  25
+// out: '/Users/benipsen/Sites/flybook/public/javascript/dependencies.js'
  26
+//}
  27
+//depend.on(depencency);
  28
+depend.watch();
  29
+
  30
+
  31
+// brew the coffee
  32
+//coffee_maker = {
  33
+//  in: '/Users/benipsen/Sites/flybook/app/coffee',
  34
+//  out: '/Users/benipsen/Sites/flybook/public/javascript/application.js'
  35
+//}
  36
+//brew.configure(coffee_maker);
  37
+brew.watch();
  38
+
  39
+// run the styler
  40
+//style_guide = {
  41
+//  in:'/Users/benipsen/Sites/flybook/app/stylus/',
  42
+//  out:'/Users/benipsen/Sites/flybook/public/application.css'
  43
+//}
  44
+//style.configure(style_guide)
  45
+style.watch()
  46
+
  47
+
  48
+// ride on the handlebars
  49
+//bike = {
  50
+//  in:'/Users/benipsen/Sites/flybook/app/handlebars/',
  51
+//  out:'/Users/benipsen/Sites/flybook/public/javascript/templates.js',
  52
+//  minify: true
  53
+//}
  54
+//ride.configure(bike)
  55
+ride.watch()
  56
+
  57
+
152  node/styler.js
... ...
@@ -0,0 +1,152 @@
  1
+
  2
+// compiles anything in the stylus directory into a single css application.css file
  3
+
  4
+stylus = require('stylus');
  5
+fs = require('fs');
  6
+
  7
+(function(){
  8
+  
  9
+  var files = []
  10
+  var config = {
  11
+    in: './app/stylus',
  12
+    out: './public/application.css'
  13
+  }
  14
+  
  15
+  //colored output
  16
+  var color = {
  17
+    red : '\u001b[31m',
  18
+    blue: '\u001b[36m',
  19
+    green: '\u001b[32m',
  20
+    yellow: '\u001b[33m',
  21
+    reset: '\u001b[0m'
  22
+  }
  23
+  
  24
+  var directoryHasChanged = function(event, filename){
  25
+    
  26
+    console.log(color.blue + '[styler] new or renamed file deteted, recompiling css' + color.reset);
  27
+    unwatchAll();
  28
+    watch(config.in, true);
  29
+    
  30
+  }
  31
+
  32
+  var fileHasChanged = function(event, filename){
  33
+        
  34
+      console.log(color.blue + '[styler] change detected to file, recompiling css' + color.reset);
  35
+      unwatchAll();
  36
+      watch(config.in, true);
  37
+  
  38
+  }
  39
+  
  40
+  var watchers = []
  41
+  var unwatchAll = function(){
  42
+    
  43
+    for(var w = 0; w < watchers.length; w++){
  44
+      watchers[w].close();
  45
+    }
  46
+    
  47
+  }
  48
+  
  49
+  var directory_watch = false;
  50
+  var watch = function(dir, skip_message){
  51
+   
  52
+      if(!dir) dir = config.in
  53
+      config.in = dir
  54
+      
  55
+      if(directory_watch) directory_watch.close()
  56
+      directory_watch = fs.watch(config.in, directoryHasChanged);
  57
+      
  58
+      if(!skip_message) console.log(color.yellow + '[styler] watching stylus directory: ' + dir + color.reset);
  59
+      compile(dir, true)
  60
+  
  61
+  }
  62
+  
  63
+  var compile = function(dir, watch){
  64
+    
  65
+    if(!dir) dir = config.in
  66
+    config.in = dir 
  67
+    files = readFiles(dir, watch);
  68
+   
  69
+  }
  70
+  
  71
+  var buildOutput = function(files){
  72
+    
  73
+    try {
  74
+      //read in all the styles
  75
+      styl = []
  76
+      for(var f = 0; f < files.length; f++){
  77
+        styl.push( fs.readFileSync(files[f], 'utf8') ); 
  78
+      }
  79
+      
  80
+      // run it through the styler
  81
+      stylus.render (styl.join(''), {filename: 'application.css'}, function(err, css){
  82
+        
  83
+        if (err) throw err;
  84
+        
  85
+        writeCssFile(css);
  86
+        
  87
+        
  88
+      });
  89
+      
  90
+    } catch (e) { 
  91
+      
  92
+      console.log(color.red + '[styler] Error compiling stylus: ' + color.reset);
  93
+      console.log(e);
  94
+      
  95
+    }
  96
+      
  97
+  }
  98
+  
  99
+  var readFiles = function(dir, watch){
  100
+   
  101
+    fs.readdir( dir, function( err, list ) {
  102
+        
  103
+        try{
  104
+          
  105
+          if(err) throw err
  106
+          _files = []
  107
+    
  108
+          for(var l = 0; l < list.length; l++){
  109
+            
  110
+            if(list[l].indexOf('.styl') > 0){
  111
+              _files.push(dir + '/' + list[l])
  112
+              if(watch) 
  113
+                watchers.push(fs.watch(dir + '/' + list[l], fileHasChanged));
  114
+            }
  115
+              
  116
+          }
  117
+        
  118
+          buildOutput(_files)
  119
+        
  120
+        } catch (e) {
  121
+            
  122
+          console.log(color.red + '[styler] Cound not read stylus directory: ' + dir + color.reset);
  123
+          console.log(e);
  124
+          
  125
+        }
  126
+        
  127
+    });  
  128
+    
  129
+      
  130
+  }
  131
+  
  132
+  var writeCssFile = function(css){
  133
+     
  134
+    try {
  135
+        
  136
+       // output the css
  137
+       fs.writeFileSync(config.out, css, 'utf8');
  138
+       console.log(color.green + '[styler] compiled css output to ' + config.out + color.reset);
  139
+    
  140
+    } catch(e){
  141
+    
  142
+        console.log(color.red + '[styler] ERROR! Destination file or directory does not exist.' + color.reset + '\n:' + e);
  143
+    
  144
+    }
  145
+    
  146
+  }
  147
+  
  148
+  exports.configure = function(cfg){ config = cfg };
  149
+  exports.compile = compile;
  150
+  exports.watch = watch;
  151
+  
  152
+})()
1  node_modules/.bin/cake
1  node_modules/.bin/coffee
1  node_modules/.bin/handlebar-rider
1  node_modules/.bin/stylus
1  node_modules/.bin/toaster
1  node_modules/.bin/uglifyjs
1  node_modules/coffee-script
0  toaster.coffee → node_modules/express-resource/.gitmodules
File renamed without changes
2  node_modules/express-resource/.npmignore
... ...
@@ -0,0 +1,2 @@
  1
+support
  2
+test
51  node_modules/express-resource/History.md
Source Rendered
... ...
@@ -0,0 +1,51 @@
  1
+
  2
+0.2.4 / 2011-12-28 
  3
+==================
  4
+
  5
+  * Fixed windows path join. Closes #43
  6
+  * Fixed _examples/user.js_
  7
+  * Fixed resource id when multiple segments are present. Closes #36
  8
+
  9
+0.2.3 / 2011-09-23 
  10
+==================
  11
+
  12
+  * Fixed logic to allow actions to be defined in any order [Wompt]
  13
+
  14
+0.2.2 / 2011-09-08 
  15
+==================
  16
+
  17
+  * Added support to allow root resources to have nested resources
  18
+  * Added auto-load signature support of `(req, id, callback)`
  19
+
  20
+0.2.1 / 2011-05-25 
  21
+==================
  22
+
  23
+  * Fixed for express 2.3.9. Closes #18
  24
+  * Added better support for mapping your own actions. Closes #7
  25
+
  26
+0.2.0 / 2011-04-09 
  27
+==================
  28
+
  29
+  * Added basic content-negotiation support via format extensions
  30
+  * Added nested resource support
  31
+  * Added auto-loading support, populating `req.user` etc automatically
  32
+  * Added another options param to `app.resource()`
  33
+  * Added `Resource#[http-verb]()` methods to define additional routes
  34
+  * Added `Resource#map(method, path, fn)`
  35
+  * Changed; every `Resource` has a `.base`
  36
+  * Changed; resource id is no longer "id", it's a singular version of the resource name, aka `req.params.user` etc
  37
+
  38
+0.1.0 / 2011-03-27
  39
+==================
  40
+
  41
+  * Added support for top-level resources [Daniel Gasienica]
  42
+
  43
+0.0.2 / 2011-03-03 
  44
+==================
  45
+
  46
+  * Added Express 2.0 support
  47
+
  48
+0.0.1 / 2010-09-06 
  49
+==================
  50
+
  51
+  * Initial release
6  node_modules/express-resource/Makefile
... ...
@@ -0,0 +1,6 @@
  1
+
  2
+test:
  3
+	@./node_modules/expresso/bin/expresso \
  4
+		-I support
  5
+
  6
+.PHONY: test
194  node_modules/express-resource/Readme.md
Source Rendered
... ...
@@ -0,0 +1,194 @@
  1
+# Express Resource
  2
+
  3
+  express-resource provides resourceful routing to express.
  4
+
  5
+## Installation
  6
+
  7
+npm:
  8
+
  9
+    $ npm install express-resource
  10
+
  11
+## Usage
  12
+
  13
+ To get started simply `require('express-resource')`, and this module will monkey-patch Express, enabling resourceful routing by providing the `app.resource()` method. A "resource" is simply an object, which defines one of more of the supported "actions" listed below:
  14
+
  15
+    exports.index = function(req, res){
  16
+      res.send('forum index');
  17
+    };
  18
+
  19
+    exports.new = function(req, res){
  20
+      res.send('new forum');
  21
+    };
  22
+
  23
+    exports.create = function(req, res){
  24
+      res.send('create forum');
  25
+    };
  26
+
  27
+    exports.show = function(req, res){
  28
+      res.send('show forum ' + req.params.forum);
  29
+    };
  30
+
  31
+    exports.edit = function(req, res){
  32
+      res.send('edit forum ' + req.params.forum);
  33
+    };
  34
+
  35
+    exports.update = function(req, res){
  36
+      res.send('update forum ' + req.params.forum);
  37
+    };
  38
+
  39
+    exports.destroy = function(req, res){
  40
+      res.send('destroy forum ' + req.params.forum);
  41
+    };
  42
+
  43
+The `app.resource()` method returns a new `Resource` object, which can be used to further map pathnames, nest resources, and more.
  44
+
  45
+    var express = require('express')
  46
+      , Resource = require('express-resource')
  47
+      , app = express.createServer();
  48
+
  49
+    app.resource('forums', require('./forum'));
  50
+
  51
+## Default Action Mapping
  52
+
  53
+Actions are then mapped as follows (by default), providing `req.params.forum` which contains the substring where ":forum" is shown below:
  54
+
  55
+    GET     /forums              ->  index
  56
+    GET     /forums/new          ->  new
  57
+    POST    /forums              ->  create
  58
+    GET     /forums/:forum       ->  show
  59
+    GET     /forums/:forum/edit  ->  edit
  60
+    PUT     /forums/:forum       ->  update
  61
+    DELETE  /forums/:forum       ->  destroy
  62
+
  63
+## Top-Level Resource
  64
+
  65
+Specify a top-level resource by omitting the resource name:
  66
+
  67
+    app.resource(require('./forum'));
  68
+
  69
+Top-level actions are then mapped as follows (by default):
  70
+
  71
+    GET     /                 ->  index
  72
+    GET     /new              ->  new
  73
+    POST    /                 ->  create
  74
+    GET     /:id              ->  show
  75
+    GET     /:id/edit         ->  edit
  76
+    PUT     /:id              ->  update
  77
+    DELETE  /:id              ->  destroy
  78
+
  79
+## Auto-Loading
  80
+
  81
+Resources have the concept of "auto-loading" associated data. For example we can pass a "load" property along with our actions, which should invoke the callback function with an error, or the object such as a `User`:
  82
+
  83
+
  84
+      User.load = function(id, fn) {
  85
+        fn(null, users[id]);
  86
+      };
  87
+
  88
+      // or
  89
+      
  90
+      User.load = function(req, id, fn) {
  91
+        fn(null, users[id]);
  92
+      };
  93
+
  94
+      app.resource('users', { show: ..., load: User.load });
  95
+      
  96
+ With the auto-loader defined, the `req.user` object will be available now be available to the actions automatically. We may pass the "load" option as the third param as well, although this is equivalent to above, but allows you to either export ".load" along with your actions, or passing it explicitly:
  97
+ 
  98
+     app.resource('users', require('./user'), { load: User.load });
  99
+
  100
+ Finally we can utilize the `Resource#load(fn)` method, which again is functionally equivalent:
  101
+ 
  102
+     var user = app.resource('users', require('./user'));
  103
+     user.load(User.load);
  104
+
  105
+  This functionality works when nesting resources as well, for example suppose we have a forum, which contains threads, our setup may look something like below:
  106
+  
  107
+      var forums = app.resource('forums', require('resources/forums'), { load: Forum.get });
  108
+      var threads = app.resource('threads', require('resources/threads'), { load: Thread.get });
  109
+
  110
+      forums.add(threads);
  111
+
  112
+  Now when we request `GET /forums/5/threads/12` both the `req.forum` object, and `req.thread` will be available to thread's _show_ action.
  113
+
  114
+## Content-Negotiation
  115
+
  116
+  Currently express-resource supports basic content-negotiation support utilizing extnames or "formats". This can currently be done two ways, first we may define actions as we normally would, and utilize the `req.format` property, and respond accordingly. The following would respond to `GET /pets.xml`, and `GET /pets.json`.
  117
+  
  118
+      var pets = ['tobi', 'jane', 'loki'];
  119
+
  120
+      exports.index = function(req, res){
  121
+        switch (req.format) {
  122
+          case 'json':
  123
+            res.send(pets);
  124
+            break;
  125
+          case 'xml':
  126
+            res.send('<pets>' + pets.map(function(pet){
  127
+              return '<pet>' + pet + '</pet>';
  128
+            }).join('') + '</pets>');
  129
+            break;
  130
+          default:
  131
+            res.send(406);
  132
+        }
  133
+      };
  134
+
  135
+ The following is equivalent, however we separate the logic into several callbacks, each representing a format. 
  136
+ 
  137
+     exports.index = {
  138
+       json: function(req, res){
  139
+         res.send(pets);
  140
+       },
  141
+
  142
+       xml: function(req, res){
  143
+         res.send('<pets>' + pets.map(function(pet){
  144
+           return '<pet>' + pet + '</pet>';
  145
+         }).join('') + '</pets>');
  146
+       }
  147
+     };
  148
+
  149
+ We may also provide a `default` format, invoked when either no extension is given, or one that does not match another method is given:
  150
+ 
  151
+ 
  152
+     exports.default = function(req, res){
  153
+       res.send('Unsupported format "' + req.format + '"', 406);
  154
+     };
  155
+
  156
+ To assign a default format to an existing method, we can provide the `format` option to the resource. With the following definition both `GET /users/5` and `GET /users/5.json` will invoke the `show.json` action, or `show` with `req.format = 'json'`.
  157
+ 
  158
+     app.resource('users', actions, { format: 'json' });
  159
+
  160
+## Running Tests
  161
+
  162
+First make sure you have the submodules:
  163
+
  164
+    $ git submodule update --init
  165
+
  166
+Then run the tests:
  167
+
  168
+    $ make test
  169
+
  170
+## License
  171
+
  172
+    The MIT License
  173
+
  174
+    Copyright (c) 2010-2011 TJ Holowaychuk <tj@vision-media.ca>
  175
+    Copyright (c) 2011 Daniel Gasienica <daniel@gasienica.ch>
  176
+
  177
+    Permission is hereby granted, free of charge, to any person obtaining
  178
+    a copy of this software and associated documentation files (the
  179
+    'Software'), to deal in the Software without restriction, including
  180
+    without limitation the rights to use, copy, modify, merge, publish,
  181
+    distribute, sublicense, and/or sell copies of the Software, and to
  182
+    permit persons to whom the Software is furnished to do so, subject to
  183
+    the following conditions:
  184
+
  185
+    The above copyright notice and this permission notice shall be
  186
+    included in all copies or substantial portions of the Software.
  187
+
  188
+    THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
  189
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  190
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  191
+    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  192
+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  193
+    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  194
+    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
54  node_modules/express-resource/examples/content-negotiation.js
... ...
@@ -0,0 +1,54 @@
  1
+
  2
+require.paths.unshift(__dirname + '/../support');
  3
+
  4
+/**
  5
+ * Module dependencies.
  6
+ */
  7
+
  8
+var express = require('express')
  9
+  , resource = require('../')
  10
+  , app = express.createServer();
  11
+
  12
+var db = ['tobi', 'loki', 'jane']
  13
+  , toys = ['ball', 'tunnel'];
  14
+
  15
+var pet = {
  16
+  index: {
  17
+    json: function(req, res){
  18
+      res.send(db);
  19
+    },
  20
+    
  21
+    default: function(req, res){
  22
+      res.send(db.join(', '), { 'Content-Type': 'text/plain' });
  23
+    }
  24
+  }
  25
+};
  26
+
  27
+var pets = app.resource('pets', pet);
  28
+
  29
+pets.load(function(id, fn){
  30
+  fn(null, db[id]);
  31
+});
  32
+
  33
+// GET /pets/toys.xml
  34
+// this action must be defined above
  35
+// the one below as the :pet placeholder
  36
+// will otherwise match "/toys".
  37
+
  38
+pets.get('/toys', {
  39
+  xml: function(req, res){
  40
+    res.send('<toys>' + toys.map(function(toy){
  41
+      return '<toy>' + toy + '</toy>';
  42
+    }).join('\n') + '</toys>');
  43
+  }
  44
+});
  45
+
  46
+// GET /pets/1.xml
  47
+
  48
+pets.get({
  49
+  xml: function(req, res){
  50
+    res.send('<pet>' + req.pet + '</pet>');
  51
+  }
  52
+});
  53
+
  54
+app.listen(3000);
34  node_modules/express-resource/examples/controllers/forum.js
... ...
@@ -0,0 +1,34 @@
  1
+
  2
+exports.index = function(req, res){
  3
+  res.send('forum index');
  4
+};
  5
+
  6
+exports.new = function(req, res){
  7
+  res.send('new forum');
  8
+};
  9
+
  10
+exports.create = function(req, res){
  11
+  res.send('create forum');
  12
+};
  13
+
  14
+exports.show = function(req, res){
  15
+  res.send('show forum ' + req.forum.title);
  16
+};
  17
+
  18
+exports.edit = function(req, res){
  19
+  res.send('edit forum ' + req.forum.title);
  20
+};
  21
+
  22
+exports.update = function(req, res){
  23
+  res.send('update forum ' + req.forum.title);
  24
+};
  25
+
  26
+exports.destroy = function(req, res){
  27
+  res.send('destroy forum ' + req.forum.title);
  28
+};
  29
+
  30
+exports.load = function(id, fn){
  31
+  process.nextTick(function(){
  32
+    fn(null, { title: 'Ferrets' });
  33
+  });
  34
+};
26  node_modules/express-resource/examples/controllers/thread.js
... ...
@@ -0,0 +1,26 @@
  1
+
  2
+exports.index = function(req, res){
  3
+  res.send('forum ' + req.forum.title + ' threads');
  4
+};
  5
+
  6
+exports.new = function(req, res){
  7
+  res.send('new forum ' + req.forum.title + ' thread');
  8
+};
  9
+
  10
+exports.create = function(req, res){
  11
+  res.send('forum ' + req.forum.title + ' thread created');
  12
+};
  13
+
  14
+exports.show = function(req, res){
  15
+  res.send('forum ' + req.forum.title + ' thread ' + req.thread.title);
  16
+};
  17
+
  18
+exports.edit = function(req, res){
  19
+  res.send('editing forum ' + req.forum.title + ' thread ' + req.thread.title);
  20
+};
  21
+
  22
+exports.load = function(id, fn){
  23