stylus-source 0.15.4 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (577) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +39 -0
  3. data/VERSION +1 -0
  4. data/lib/stylus/source.rb +1 -1
  5. data/stylus-source.gemspec +2 -2
  6. data/vendor/History.md +525 -0
  7. data/vendor/LICENSE +22 -0
  8. data/vendor/Makefile +20 -0
  9. data/vendor/Readme.md +127 -0
  10. data/vendor/bin/stylus +606 -0
  11. data/vendor/bm.js +22 -0
  12. data/vendor/docs/bifs.md +582 -0
  13. data/vendor/docs/comments.md +35 -0
  14. data/vendor/docs/compare.md +81 -0
  15. data/vendor/docs/conditionals.md +107 -0
  16. data/vendor/docs/css-style.md +77 -0
  17. data/vendor/docs/error-reporting.md +50 -0
  18. data/vendor/docs/escape.md +27 -0
  19. data/vendor/docs/executable.md +159 -0
  20. data/vendor/docs/firebug.md +60 -0
  21. data/vendor/docs/font-face.md +26 -0
  22. data/vendor/docs/functions.md +192 -0
  23. data/vendor/docs/functions.url.md +30 -0
  24. data/vendor/docs/gedit.md +24 -0
  25. data/vendor/docs/import.md +73 -0
  26. data/vendor/docs/interpolation.md +55 -0
  27. data/vendor/docs/introspection.md +39 -0
  28. data/vendor/docs/iteration.md +100 -0
  29. data/vendor/docs/js.md +136 -0
  30. data/vendor/docs/keyframes.md +120 -0
  31. data/vendor/docs/kwargs.md +35 -0
  32. data/vendor/docs/literal.md +16 -0
  33. data/vendor/docs/media.md +18 -0
  34. data/vendor/docs/middleware.md +73 -0
  35. data/vendor/docs/mixins.md +130 -0
  36. data/vendor/docs/operators.md +451 -0
  37. data/vendor/docs/selectors.md +131 -0
  38. data/vendor/docs/textmate.md +4 -0
  39. data/vendor/docs/vargs.md +84 -0
  40. data/vendor/docs/variables.md +78 -0
  41. data/vendor/editors/Stylus.tmbundle/Commands/Compile and Display CSS.tmCommand +33 -0
  42. data/vendor/editors/Stylus.tmbundle/Preferences/Comments.tmPreferences +36 -0
  43. data/vendor/editors/Stylus.tmbundle/Syntaxes/Stylus.tmLanguage +166 -0
  44. data/vendor/editors/Stylus.tmbundle/info.plist +10 -0
  45. data/vendor/editors/gedit/styl.lang +475 -0
  46. data/vendor/examples/arithmetic.js +12 -0
  47. data/vendor/examples/arithmetic.styl +29 -0
  48. data/vendor/examples/basic.js +12 -0
  49. data/vendor/examples/basic.styl +8 -0
  50. data/vendor/examples/builtins.js +12 -0
  51. data/vendor/examples/builtins.styl +56 -0
  52. data/vendor/examples/comments.js +11 -0
  53. data/vendor/examples/comments.styl +15 -0
  54. data/vendor/examples/compress.js +12 -0
  55. data/vendor/examples/conversions.js +12 -0
  56. data/vendor/examples/conversions.styl +34 -0
  57. data/vendor/examples/functions.js +12 -0
  58. data/vendor/examples/functions.styl +30 -0
  59. data/vendor/examples/gradients.js +13 -0
  60. data/vendor/examples/gradients.styl +8 -0
  61. data/vendor/examples/images/gopher.jpg +0 -0
  62. data/vendor/examples/images/gradient.svg +9 -0
  63. data/vendor/examples/images/jesus.gif +0 -0
  64. data/vendor/examples/images/sprite.gif +0 -0
  65. data/vendor/examples/images.js +20 -0
  66. data/vendor/examples/images.styl +15 -0
  67. data/vendor/examples/implicit-functions.js +12 -0
  68. data/vendor/examples/implicit-functions.styl +23 -0
  69. data/vendor/examples/import.js +12 -0
  70. data/vendor/examples/import.styl +11 -0
  71. data/vendor/examples/js-functions.js +55 -0
  72. data/vendor/examples/js-functions.styl +23 -0
  73. data/vendor/examples/literal.js +12 -0
  74. data/vendor/examples/literal.styl +8 -0
  75. data/vendor/examples/middleware.js +23 -0
  76. data/vendor/examples/mixins/box.styl +14 -0
  77. data/vendor/examples/mixins/gradients.styl +92 -0
  78. data/vendor/examples/nesting.js +12 -0
  79. data/vendor/examples/nesting.styl +14 -0
  80. data/vendor/examples/variables.js +12 -0
  81. data/vendor/examples/variables.styl +24 -0
  82. data/vendor/index.js +2 -0
  83. data/{lib/stylus → vendor/lib}/colors.js +0 -0
  84. data/{lib/stylus → vendor/lib}/convert/css.js +0 -0
  85. data/{lib/stylus → vendor/lib}/errors.js +0 -0
  86. data/{lib/stylus → vendor/lib}/functions/image.js +0 -0
  87. data/{lib/stylus → vendor/lib}/functions/index.js +0 -0
  88. data/{lib/stylus → vendor/lib}/functions/index.styl +11 -2
  89. data/{lib/stylus → vendor/lib}/functions/url.js +0 -0
  90. data/{lib/stylus → vendor/lib}/lexer.js +14 -1
  91. data/{lib/stylus → vendor/lib}/middleware.js +5 -1
  92. data/{lib/stylus → vendor/lib}/nodes/arguments.js +0 -0
  93. data/{lib/stylus → vendor/lib}/nodes/binop.js +0 -0
  94. data/{lib/stylus → vendor/lib}/nodes/block.js +0 -0
  95. data/{lib/stylus → vendor/lib}/nodes/boolean.js +0 -0
  96. data/{lib/stylus → vendor/lib}/nodes/call.js +0 -0
  97. data/{lib/stylus → vendor/lib}/nodes/charset.js +0 -0
  98. data/{lib/stylus → vendor/lib}/nodes/comment.js +0 -0
  99. data/{lib/stylus → vendor/lib}/nodes/each.js +0 -0
  100. data/{lib/stylus → vendor/lib}/nodes/expression.js +32 -0
  101. data/{lib/stylus → vendor/lib}/nodes/fontface.js +0 -0
  102. data/{lib/stylus → vendor/lib}/nodes/function.js +0 -0
  103. data/{lib/stylus → vendor/lib}/nodes/group.js +0 -0
  104. data/{lib/stylus → vendor/lib}/nodes/hsla.js +0 -0
  105. data/{lib/stylus → vendor/lib}/nodes/ident.js +0 -0
  106. data/{lib/stylus → vendor/lib}/nodes/if.js +0 -0
  107. data/{lib/stylus → vendor/lib}/nodes/import.js +0 -0
  108. data/{lib/stylus → vendor/lib}/nodes/index.js +0 -0
  109. data/{lib/stylus → vendor/lib}/nodes/jsliteral.js +0 -0
  110. data/{lib/stylus → vendor/lib}/nodes/keyframes.js +0 -0
  111. data/{lib/stylus → vendor/lib}/nodes/literal.js +0 -0
  112. data/{lib/stylus → vendor/lib}/nodes/media.js +0 -0
  113. data/{lib/stylus → vendor/lib}/nodes/node.js +14 -0
  114. data/{lib/stylus → vendor/lib}/nodes/null.js +0 -0
  115. data/{lib/stylus → vendor/lib}/nodes/page.js +0 -0
  116. data/{lib/stylus → vendor/lib}/nodes/params.js +0 -0
  117. data/{lib/stylus → vendor/lib}/nodes/property.js +0 -0
  118. data/{lib/stylus → vendor/lib}/nodes/return.js +0 -0
  119. data/{lib/stylus → vendor/lib}/nodes/rgba.js +4 -2
  120. data/{lib/stylus → vendor/lib}/nodes/root.js +0 -0
  121. data/{lib/stylus → vendor/lib}/nodes/selector.js +0 -0
  122. data/{lib/stylus → vendor/lib}/nodes/string.js +0 -0
  123. data/{lib/stylus → vendor/lib}/nodes/ternary.js +0 -0
  124. data/{lib/stylus → vendor/lib}/nodes/unaryop.js +0 -0
  125. data/{lib/stylus → vendor/lib}/nodes/unit.js +0 -0
  126. data/{lib/stylus → vendor/lib}/parser.js +17 -2
  127. data/{lib/stylus → vendor/lib}/renderer.js +0 -0
  128. data/{lib/stylus → vendor/lib}/stack/frame.js +0 -0
  129. data/{lib/stylus → vendor/lib}/stack/index.js +0 -0
  130. data/{lib/stylus → vendor/lib}/stack/scope.js +0 -0
  131. data/{lib/stylus → vendor/lib}/stylus.js +1 -1
  132. data/{lib/stylus → vendor/lib}/token.js +0 -0
  133. data/{lib/stylus → vendor/lib}/utils.js +0 -0
  134. data/{lib/stylus → vendor/lib}/visitor/compiler.js +1 -0
  135. data/{lib/stylus → vendor/lib}/visitor/evaluator.js +9 -3
  136. data/{lib/stylus → vendor/lib}/visitor/index.js +0 -0
  137. data/{lib → vendor}/node_modules/cssom/Jakefile +0 -0
  138. data/{lib → vendor}/node_modules/cssom/README.mdown +0 -0
  139. data/{lib → vendor}/node_modules/cssom/Rakefile +0 -0
  140. data/{lib → vendor}/node_modules/cssom/docs/bar.css +0 -0
  141. data/{lib → vendor}/node_modules/cssom/docs/demo.css +0 -0
  142. data/{lib → vendor}/node_modules/cssom/docs/foo.css +0 -0
  143. data/{lib → vendor}/node_modules/cssom/docs/parse.html +0 -0
  144. data/{lib → vendor}/node_modules/cssom/docs/parse2.html +0 -0
  145. data/{lib → vendor}/node_modules/cssom/index.html +0 -0
  146. data/{lib → vendor}/node_modules/cssom/lib/CSSImportRule.js +0 -0
  147. data/{lib → vendor}/node_modules/cssom/lib/CSSMediaRule.js +0 -0
  148. data/{lib → vendor}/node_modules/cssom/lib/CSSOM.js +0 -0
  149. data/{lib → vendor}/node_modules/cssom/lib/CSSRule.js +0 -0
  150. data/{lib → vendor}/node_modules/cssom/lib/CSSStyleDeclaration.js +0 -0
  151. data/{lib → vendor}/node_modules/cssom/lib/CSSStyleRule.js +0 -0
  152. data/{lib → vendor}/node_modules/cssom/lib/CSSStyleSheet.js +0 -0
  153. data/{lib → vendor}/node_modules/cssom/lib/MediaList.js +0 -0
  154. data/{lib → vendor}/node_modules/cssom/lib/StyleSheet.js +0 -0
  155. data/{lib → vendor}/node_modules/cssom/lib/clone.js +0 -0
  156. data/{lib → vendor}/node_modules/cssom/lib/index.js +0 -0
  157. data/{lib → vendor}/node_modules/cssom/lib/parse.js +0 -0
  158. data/{lib → vendor}/node_modules/cssom/media.html +0 -0
  159. data/{lib → vendor}/node_modules/cssom/package.json +0 -0
  160. data/{lib → vendor}/node_modules/cssom/plugins/toHTML.js +0 -0
  161. data/{lib → vendor}/node_modules/cssom/server/index.html +0 -0
  162. data/{lib → vendor}/node_modules/cssom/server/index.js +0 -0
  163. data/{lib → vendor}/node_modules/cssom/shorthands.html +0 -0
  164. data/{lib → vendor}/node_modules/cssom/test/CSSStyleDeclaration.test.js +0 -0
  165. data/{lib → vendor}/node_modules/cssom/test/CSSStyleRule.test.js +0 -0
  166. data/{lib → vendor}/node_modules/cssom/test/CSSStyleSheet.test.js +0 -0
  167. data/{lib → vendor}/node_modules/cssom/test/MediaList.test.js +0 -0
  168. data/{lib → vendor}/node_modules/cssom/test/clone.test.js +0 -0
  169. data/{lib → vendor}/node_modules/cssom/test/fixtures/dummy.css +0 -0
  170. data/{lib → vendor}/node_modules/cssom/test/helper.js +0 -0
  171. data/{lib → vendor}/node_modules/cssom/test/index.html +0 -0
  172. data/{lib → vendor}/node_modules/cssom/test/parse.test.js +0 -0
  173. data/{lib → vendor}/node_modules/cssom/test/vendor/qunit.css +0 -0
  174. data/{lib → vendor}/node_modules/cssom/test/vendor/qunit.js +0 -0
  175. data/{lib → vendor}/node_modules/growl/History.md +0 -0
  176. data/{lib → vendor}/node_modules/growl/Readme.md +0 -0
  177. data/{lib → vendor}/node_modules/growl/lib/growl.js +0 -0
  178. data/{lib → vendor}/node_modules/growl/package.json +0 -0
  179. data/{lib → vendor}/node_modules/growl/test.js +0 -0
  180. data/vendor/node_modules/mkdirp/LICENSE +21 -0
  181. data/vendor/node_modules/mkdirp/README.markdown +21 -0
  182. data/vendor/node_modules/mkdirp/examples/pow.js +6 -0
  183. data/vendor/node_modules/mkdirp/examples/pow.js.orig +6 -0
  184. data/vendor/node_modules/mkdirp/examples/pow.js.rej +19 -0
  185. data/vendor/node_modules/mkdirp/index.js +20 -0
  186. data/vendor/node_modules/mkdirp/package.json +23 -0
  187. data/vendor/node_modules/mkdirp/test/mkdirp.js +28 -0
  188. data/vendor/node_modules/mkdirp/test/race.js +41 -0
  189. data/vendor/node_modules/mkdirp/test/rel.js +32 -0
  190. data/vendor/package.json +16 -0
  191. data/vendor/test/cases/arithmetic.color.css +44 -0
  192. data/vendor/test/cases/arithmetic.color.styl +48 -0
  193. data/vendor/test/cases/arithmetic.css +23 -0
  194. data/vendor/test/cases/arithmetic.styl +30 -0
  195. data/vendor/test/cases/arithmetic.unary.css +16 -0
  196. data/vendor/test/cases/arithmetic.unary.styl +16 -0
  197. data/vendor/test/cases/atscope.css +21 -0
  198. data/vendor/test/cases/atscope.styl +23 -0
  199. data/vendor/test/cases/bifs.add-property.css +21 -0
  200. data/vendor/test/cases/bifs.add-property.styl +48 -0
  201. data/vendor/test/cases/bifs.components.css +9 -0
  202. data/vendor/test/cases/bifs.components.styl +9 -0
  203. data/vendor/test/cases/bifs.dark.css +5 -0
  204. data/vendor/test/cases/bifs.dark.styl +4 -0
  205. data/vendor/test/cases/bifs.darken.css +8 -0
  206. data/vendor/test/cases/bifs.darken.styl +9 -0
  207. data/vendor/test/cases/bifs.fade.css +6 -0
  208. data/vendor/test/cases/bifs.fade.styl +6 -0
  209. data/vendor/test/cases/bifs.image-size.css +9 -0
  210. data/vendor/test/cases/bifs.image-size.styl +16 -0
  211. data/vendor/test/cases/bifs.join.css +18 -0
  212. data/vendor/test/cases/bifs.join.styl +21 -0
  213. data/vendor/test/cases/bifs.last.css +5 -0
  214. data/vendor/test/cases/bifs.last.styl +6 -0
  215. data/vendor/test/cases/bifs.length.css +10 -0
  216. data/vendor/test/cases/bifs.length.styl +18 -0
  217. data/vendor/test/cases/bifs.light.css +5 -0
  218. data/vendor/test/cases/bifs.light.styl +4 -0
  219. data/vendor/test/cases/bifs.lighten.css +14 -0
  220. data/vendor/test/cases/bifs.lighten.styl +14 -0
  221. data/vendor/test/cases/bifs.lookup.css +3 -0
  222. data/vendor/test/cases/bifs.lookup.styl +8 -0
  223. data/vendor/test/cases/bifs.match.css +4 -0
  224. data/vendor/test/cases/bifs.match.styl +9 -0
  225. data/vendor/test/cases/bifs.opposite-position.css +8 -0
  226. data/vendor/test/cases/bifs.opposite-position.styl +9 -0
  227. data/vendor/test/cases/bifs.push.css +25 -0
  228. data/vendor/test/cases/bifs.push.styl +48 -0
  229. data/vendor/test/cases/bifs.rgba.css +5 -0
  230. data/vendor/test/cases/bifs.rgba.styl +4 -0
  231. data/vendor/test/cases/bifs.s.css +11 -0
  232. data/vendor/test/cases/bifs.s.styl +12 -0
  233. data/vendor/test/cases/bifs.type.css +11 -0
  234. data/vendor/test/cases/bifs.type.styl +12 -0
  235. data/vendor/test/cases/bifs.unit.css +6 -0
  236. data/vendor/test/cases/bifs.unit.styl +5 -0
  237. data/vendor/test/cases/bifs.unquote.css +5 -0
  238. data/vendor/test/cases/bifs.unquote.styl +8 -0
  239. data/vendor/test/cases/bifs.url.css +11 -0
  240. data/vendor/test/cases/bifs.url.styl +15 -0
  241. data/vendor/test/cases/coercion.css +6 -0
  242. data/vendor/test/cases/coercion.styl +5 -0
  243. data/vendor/test/cases/comments.css +18 -0
  244. data/vendor/test/cases/comments.styl +28 -0
  245. data/vendor/test/cases/compress.comments.css +2 -0
  246. data/vendor/test/cases/compress.comments.styl +5 -0
  247. data/vendor/test/cases/compress.units.css +2 -0
  248. data/vendor/test/cases/compress.units.styl +18 -0
  249. data/vendor/test/cases/conditional-assignment.css +4 -0
  250. data/vendor/test/cases/conditional-assignment.styl +9 -0
  251. data/vendor/test/cases/control.blueprint.ie.css +126 -0
  252. data/vendor/test/cases/control.blueprint.ie.styl +36 -0
  253. data/vendor/test/cases/control.blueprint.screen.css +1103 -0
  254. data/vendor/test/cases/control.blueprint.screen.styl +265 -0
  255. data/vendor/test/cases/control.boilerplate.css +473 -0
  256. data/vendor/test/cases/control.boilerplate.styl +265 -0
  257. data/vendor/test/cases/css.functions.single-line.css +9 -0
  258. data/vendor/test/cases/css.functions.single-line.styl +13 -0
  259. data/vendor/test/cases/css.if.css +8 -0
  260. data/vendor/test/cases/css.if.styl +21 -0
  261. data/vendor/test/cases/css.keyframes.css +57 -0
  262. data/vendor/test/cases/css.keyframes.styl +48 -0
  263. data/vendor/test/cases/css.large.css +172 -0
  264. data/vendor/test/cases/css.large.styl +172 -0
  265. data/vendor/test/cases/css.media.css +15 -0
  266. data/vendor/test/cases/css.media.styl +17 -0
  267. data/vendor/test/cases/css.mixins.braces.css +38 -0
  268. data/vendor/test/cases/css.mixins.braces.styl +53 -0
  269. data/vendor/test/cases/css.mixins.css +38 -0
  270. data/vendor/test/cases/css.mixins.root.css +26 -0
  271. data/vendor/test/cases/css.mixins.root.styl +25 -0
  272. data/vendor/test/cases/css.mixins.root.wonky.css +26 -0
  273. data/vendor/test/cases/css.mixins.root.wonky.styl +17 -0
  274. data/vendor/test/cases/css.mixins.styl +47 -0
  275. data/vendor/test/cases/css.selector.interpolation.css +91 -0
  276. data/vendor/test/cases/css.selector.interpolation.styl +90 -0
  277. data/vendor/test/cases/css.selectors.css +38 -0
  278. data/vendor/test/cases/css.selectors.styl +53 -0
  279. data/vendor/test/cases/css.whitespace.css +37 -0
  280. data/vendor/test/cases/css.whitespace.styl +38 -0
  281. data/vendor/test/cases/escape.css +4 -0
  282. data/vendor/test/cases/escape.styl +4 -0
  283. data/vendor/test/cases/fontface.css +4 -0
  284. data/vendor/test/cases/fontface.styl +5 -0
  285. data/vendor/test/cases/for.complex.css +44 -0
  286. data/vendor/test/cases/for.complex.styl +28 -0
  287. data/vendor/test/cases/for.css +52 -0
  288. data/vendor/test/cases/for.function.css +20 -0
  289. data/vendor/test/cases/for.function.styl +51 -0
  290. data/vendor/test/cases/for.styl +44 -0
  291. data/vendor/test/cases/function.arguments.css +4 -0
  292. data/vendor/test/cases/function.arguments.styl +14 -0
  293. data/vendor/test/cases/function.literals.css +6 -0
  294. data/vendor/test/cases/function.literals.styl +12 -0
  295. data/vendor/test/cases/functions.arg-calls.css +3 -0
  296. data/vendor/test/cases/functions.arg-calls.styl +9 -0
  297. data/vendor/test/cases/functions.call.css +4 -0
  298. data/vendor/test/cases/functions.call.styl +7 -0
  299. data/vendor/test/cases/functions.css +11 -0
  300. data/vendor/test/cases/functions.defaults.css +15 -0
  301. data/vendor/test/cases/functions.defaults.styl +30 -0
  302. data/vendor/test/cases/functions.multi-line.css +9 -0
  303. data/vendor/test/cases/functions.multi-line.styl +25 -0
  304. data/vendor/test/cases/functions.multiple-calls.css +13 -0
  305. data/vendor/test/cases/functions.multiple-calls.styl +26 -0
  306. data/vendor/test/cases/functions.nested-calls.css +3 -0
  307. data/vendor/test/cases/functions.nested-calls.styl +9 -0
  308. data/vendor/test/cases/functions.nested.css +10 -0
  309. data/vendor/test/cases/functions.nested.styl +37 -0
  310. data/vendor/test/cases/functions.property.css +10 -0
  311. data/vendor/test/cases/functions.property.styl +11 -0
  312. data/vendor/test/cases/functions.return.css +15 -0
  313. data/vendor/test/cases/functions.return.each.css +10 -0
  314. data/vendor/test/cases/functions.return.each.styl +23 -0
  315. data/vendor/test/cases/functions.return.styl +86 -0
  316. data/vendor/test/cases/functions.styl +34 -0
  317. data/vendor/test/cases/functions.variable.css +9 -0
  318. data/vendor/test/cases/functions.variable.ident.css +3 -0
  319. data/vendor/test/cases/functions.variable.ident.styl +11 -0
  320. data/vendor/test/cases/functions.variable.styl +27 -0
  321. data/vendor/test/cases/hack.star.css +27 -0
  322. data/vendor/test/cases/hack.star.styl +37 -0
  323. data/vendor/test/cases/if.css +43 -0
  324. data/vendor/test/cases/if.else.css +6 -0
  325. data/vendor/test/cases/if.else.styl +16 -0
  326. data/vendor/test/cases/if.mixin.css +7 -0
  327. data/vendor/test/cases/if.mixin.styl +24 -0
  328. data/vendor/test/cases/if.postfix.css +61 -0
  329. data/vendor/test/cases/if.postfix.styl +110 -0
  330. data/vendor/test/cases/if.selectors.css +16 -0
  331. data/vendor/test/cases/if.selectors.styl +22 -0
  332. data/vendor/test/cases/if.styl +99 -0
  333. data/vendor/test/cases/import.basic/a.styl +5 -0
  334. data/vendor/test/cases/import.basic/b.styl +5 -0
  335. data/vendor/test/cases/import.basic/c.styl +3 -0
  336. data/vendor/test/cases/import.basic.css +11 -0
  337. data/vendor/test/cases/import.basic.styl +4 -0
  338. data/vendor/test/cases/import.complex/a.styl +4 -0
  339. data/vendor/test/cases/import.complex/c.styl +2 -0
  340. data/vendor/test/cases/import.complex/nested/b.styl +4 -0
  341. data/vendor/test/cases/import.complex.css +9 -0
  342. data/vendor/test/cases/import.complex.styl +1 -0
  343. data/vendor/test/cases/import.index/vendor/a.styl +2 -0
  344. data/vendor/test/cases/import.index/vendor/b.styl +2 -0
  345. data/vendor/test/cases/import.index/vendor/c.styl +2 -0
  346. data/vendor/test/cases/import.index/vendor/index.styl +4 -0
  347. data/vendor/test/cases/import.index.css +9 -0
  348. data/vendor/test/cases/import.index.styl +2 -0
  349. data/vendor/test/cases/import.literal.css +2 -0
  350. data/vendor/test/cases/import.literal.styl +3 -0
  351. data/vendor/test/cases/import.mixins.css +7 -0
  352. data/vendor/test/cases/import.mixins.styl +9 -0
  353. data/vendor/test/cases/import.ordering/five.styl +2 -0
  354. data/vendor/test/cases/import.ordering/four.styl +4 -0
  355. data/vendor/test/cases/import.ordering/two.styl +2 -0
  356. data/vendor/test/cases/import.ordering.css +15 -0
  357. data/vendor/test/cases/import.ordering.styl +12 -0
  358. data/vendor/test/cases/important.css +6 -0
  359. data/vendor/test/cases/important.styl +6 -0
  360. data/vendor/test/cases/interpolation.properties.css +40 -0
  361. data/vendor/test/cases/interpolation.properties.styl +56 -0
  362. data/vendor/test/cases/introspection.css +7 -0
  363. data/vendor/test/cases/introspection.styl +14 -0
  364. data/vendor/test/cases/jquery.css +3 -0
  365. data/vendor/test/cases/jquery.styl +5 -0
  366. data/vendor/test/cases/keyframes.css +9 -0
  367. data/vendor/test/cases/keyframes.fabrication.css +18 -0
  368. data/vendor/test/cases/keyframes.fabrication.defaults.css +45 -0
  369. data/vendor/test/cases/keyframes.fabrication.defaults.styl +9 -0
  370. data/vendor/test/cases/keyframes.fabrication.styl +11 -0
  371. data/vendor/test/cases/keyframes.styl +6 -0
  372. data/vendor/test/cases/kwargs.css +63 -0
  373. data/vendor/test/cases/kwargs.styl +74 -0
  374. data/vendor/test/cases/list.css +3 -0
  375. data/vendor/test/cases/list.styl +3 -0
  376. data/vendor/test/cases/literal.color.css +6 -0
  377. data/vendor/test/cases/literal.color.styl +5 -0
  378. data/vendor/test/cases/literal.css +10 -0
  379. data/vendor/test/cases/literal.styl +18 -0
  380. data/vendor/test/cases/media.css +14 -0
  381. data/vendor/test/cases/media.styl +11 -0
  382. data/vendor/test/cases/mixin.conditional.css +19 -0
  383. data/vendor/test/cases/mixin.conditional.styl +36 -0
  384. data/vendor/test/cases/mixin.order.conditional.css +11 -0
  385. data/vendor/test/cases/mixin.order.conditional.styl +20 -0
  386. data/vendor/test/cases/mixin.order.css +9 -0
  387. data/vendor/test/cases/mixin.order.nested.css +9 -0
  388. data/vendor/test/cases/mixin.order.nested.styl +21 -0
  389. data/vendor/test/cases/mixin.order.styl +20 -0
  390. data/vendor/test/cases/mixins/box.styl +11 -0
  391. data/vendor/test/cases/mixins.complex.css +30 -0
  392. data/vendor/test/cases/mixins.complex.fix-to.css +15 -0
  393. data/vendor/test/cases/mixins.complex.fix-to.styl +28 -0
  394. data/vendor/test/cases/mixins.complex.styl +41 -0
  395. data/vendor/test/cases/mixins.conditional.css +3 -0
  396. data/vendor/test/cases/mixins.conditional.styl +8 -0
  397. data/vendor/test/cases/mixins.nested.css +7 -0
  398. data/vendor/test/cases/mixins.nested.selectors.css +21 -0
  399. data/vendor/test/cases/mixins.nested.selectors.styl +31 -0
  400. data/vendor/test/cases/mixins.nested.styl +14 -0
  401. data/vendor/test/cases/mixins.order.2.css +11 -0
  402. data/vendor/test/cases/mixins.order.2.styl +16 -0
  403. data/vendor/test/cases/mixins.reset.css +75 -0
  404. data/vendor/test/cases/mixins.reset.styl +27 -0
  405. data/vendor/test/cases/mixins.return.css +4 -0
  406. data/vendor/test/cases/mixins.return.styl +8 -0
  407. data/vendor/test/cases/mixins.root.css +3 -0
  408. data/vendor/test/cases/mixins.root.styl +5 -0
  409. data/vendor/test/cases/operator.range.css +15 -0
  410. data/vendor/test/cases/operator.range.styl +23 -0
  411. data/vendor/test/cases/operators.assignment.function.css +15 -0
  412. data/vendor/test/cases/operators.assignment.function.styl +34 -0
  413. data/vendor/test/cases/operators.assignment.mixin.css +15 -0
  414. data/vendor/test/cases/operators.assignment.mixin.styl +39 -0
  415. data/vendor/test/cases/operators.assignment.root.css +25 -0
  416. data/vendor/test/cases/operators.assignment.root.styl +55 -0
  417. data/vendor/test/cases/operators.complex.css +9 -0
  418. data/vendor/test/cases/operators.complex.styl +32 -0
  419. data/vendor/test/cases/operators.css +40 -0
  420. data/vendor/test/cases/operators.equality.css +55 -0
  421. data/vendor/test/cases/operators.equality.styl +55 -0
  422. data/vendor/test/cases/operators.in.css +37 -0
  423. data/vendor/test/cases/operators.in.styl +51 -0
  424. data/vendor/test/cases/operators.mixins.css +10 -0
  425. data/vendor/test/cases/operators.mixins.styl +25 -0
  426. data/vendor/test/cases/operators.precedence.css +51 -0
  427. data/vendor/test/cases/operators.precedence.styl +82 -0
  428. data/vendor/test/cases/operators.styl +96 -0
  429. data/vendor/test/cases/operators.subscript.assign.css +21 -0
  430. data/vendor/test/cases/operators.subscript.assign.styl +45 -0
  431. data/vendor/test/cases/operators.subscript.css +59 -0
  432. data/vendor/test/cases/operators.subscript.range.css +14 -0
  433. data/vendor/test/cases/operators.subscript.range.styl +15 -0
  434. data/vendor/test/cases/operators.subscript.styl +81 -0
  435. data/vendor/test/cases/page.css +13 -0
  436. data/vendor/test/cases/page.styl +13 -0
  437. data/vendor/test/cases/parent.css +32 -0
  438. data/vendor/test/cases/parent.styl +33 -0
  439. data/vendor/test/cases/properties.colons.css +8 -0
  440. data/vendor/test/cases/properties.colons.styl +10 -0
  441. data/vendor/test/cases/properties.css +4 -0
  442. data/vendor/test/cases/properties.one-line.css +10 -0
  443. data/vendor/test/cases/properties.one-line.styl +11 -0
  444. data/vendor/test/cases/properties.styl +4 -0
  445. data/vendor/test/cases/property-access.css +48 -0
  446. data/vendor/test/cases/property-access.styl +62 -0
  447. data/vendor/test/cases/regression.107.lookup-failure.css +12 -0
  448. data/vendor/test/cases/regression.107.lookup-failure.styl +13 -0
  449. data/vendor/test/cases/regression.127.css +3 -0
  450. data/vendor/test/cases/regression.127.styl +2 -0
  451. data/vendor/test/cases/regression.130.css +16 -0
  452. data/vendor/test/cases/regression.130.styl +6 -0
  453. data/vendor/test/cases/regression.131.css +7 -0
  454. data/vendor/test/cases/regression.131.styl +2 -0
  455. data/vendor/test/cases/regression.137.css +7 -0
  456. data/vendor/test/cases/regression.137.styl +7 -0
  457. data/vendor/test/cases/regression.139.css +5 -0
  458. data/vendor/test/cases/regression.139.styl +21 -0
  459. data/vendor/test/cases/regression.142.css +39 -0
  460. data/vendor/test/cases/regression.142.styl +54 -0
  461. data/vendor/test/cases/regression.146.css +30 -0
  462. data/vendor/test/cases/regression.146.styl +31 -0
  463. data/vendor/test/cases/regression.153.css +8 -0
  464. data/vendor/test/cases/regression.153.styl +9 -0
  465. data/vendor/test/cases/regression.154.css +8 -0
  466. data/vendor/test/cases/regression.154.styl +14 -0
  467. data/vendor/test/cases/regression.156.css +4 -0
  468. data/vendor/test/cases/regression.156.styl +6 -0
  469. data/vendor/test/cases/regression.212.css +15 -0
  470. data/vendor/test/cases/regression.212.styl +14 -0
  471. data/vendor/test/cases/regression.216.css +10 -0
  472. data/vendor/test/cases/regression.216.styl +8 -0
  473. data/vendor/test/cases/regression.220.css +5 -0
  474. data/vendor/test/cases/regression.220.styl +5 -0
  475. data/vendor/test/cases/regression.229.css +12 -0
  476. data/vendor/test/cases/regression.229.styl +9 -0
  477. data/vendor/test/cases/regression.233.css +6 -0
  478. data/vendor/test/cases/regression.233.styl +7 -0
  479. data/vendor/test/cases/regression.235.css +11 -0
  480. data/vendor/test/cases/regression.235.styl +13 -0
  481. data/vendor/test/cases/regression.243.css +3 -0
  482. data/vendor/test/cases/regression.243.styl +4 -0
  483. data/vendor/test/cases/regression.244.css +3 -0
  484. data/vendor/test/cases/regression.244.styl +3 -0
  485. data/vendor/test/cases/regression.247.css +6 -0
  486. data/vendor/test/cases/regression.247.styl +6 -0
  487. data/vendor/test/cases/regression.248.compressed.css +4 -0
  488. data/vendor/test/cases/regression.248.compressed.styl +10 -0
  489. data/vendor/test/cases/regression.252.css +13 -0
  490. data/vendor/test/cases/regression.252.styl +13 -0
  491. data/vendor/test/cases/regression.260.css +6 -0
  492. data/vendor/test/cases/regression.260.styl +6 -0
  493. data/vendor/test/cases/regression.267.css +3 -0
  494. data/vendor/test/cases/regression.267.styl +3 -0
  495. data/vendor/test/cases/regression.270.css +5 -0
  496. data/vendor/test/cases/regression.270.styl +7 -0
  497. data/vendor/test/cases/regression.272.css +11 -0
  498. data/vendor/test/cases/regression.272.styl +17 -0
  499. data/vendor/test/cases/regression.274.css +14 -0
  500. data/vendor/test/cases/regression.274.styl +16 -0
  501. data/vendor/test/cases/regression.360.css +19 -0
  502. data/vendor/test/cases/regression.360.styl +1 -0
  503. data/vendor/test/cases/regression.368.css +4 -0
  504. data/vendor/test/cases/regression.368.styl +3 -0
  505. data/vendor/test/cases/regression.379.css +6 -0
  506. data/vendor/test/cases/regression.379.styl +10 -0
  507. data/vendor/test/cases/regression.380.css +8 -0
  508. data/vendor/test/cases/regression.380.styl +14 -0
  509. data/vendor/test/cases/regression.388.css +2 -0
  510. data/vendor/test/cases/regression.388.styl +6 -0
  511. data/vendor/test/cases/regression.415.css +5 -0
  512. data/vendor/test/cases/regression.415.styl +3 -0
  513. data/vendor/test/cases/regression.420.css +21 -0
  514. data/vendor/test/cases/regression.420.styl +29 -0
  515. data/vendor/test/cases/reset.css +70 -0
  516. data/vendor/test/cases/reset.styl +16 -0
  517. data/vendor/test/cases/rule.charset.css +1 -0
  518. data/vendor/test/cases/rule.charset.styl +2 -0
  519. data/vendor/test/cases/rulset.css +4 -0
  520. data/vendor/test/cases/rulset.newline.css +5 -0
  521. data/vendor/test/cases/rulset.newline.styl +5 -0
  522. data/vendor/test/cases/rulset.styl +3 -0
  523. data/vendor/test/cases/scope.complex.css +10 -0
  524. data/vendor/test/cases/scope.complex.styl +16 -0
  525. data/vendor/test/cases/scope.css +5 -0
  526. data/vendor/test/cases/scope.nested.css +9 -0
  527. data/vendor/test/cases/scope.nested.styl +10 -0
  528. data/vendor/test/cases/scope.styl +12 -0
  529. data/vendor/test/cases/selector.interpolation.css +57 -0
  530. data/vendor/test/cases/selector.interpolation.styl +45 -0
  531. data/vendor/test/cases/selectors.complex.css +28 -0
  532. data/vendor/test/cases/selectors.complex.styl +27 -0
  533. data/vendor/test/cases/selectors.css +50 -0
  534. data/vendor/test/cases/selectors.nested.comma.css +9 -0
  535. data/vendor/test/cases/selectors.nested.comma.styl +8 -0
  536. data/vendor/test/cases/selectors.nested.css +34 -0
  537. data/vendor/test/cases/selectors.nested.styl +33 -0
  538. data/vendor/test/cases/selectors.pseudo.css +27 -0
  539. data/vendor/test/cases/selectors.pseudo.elements.css +26 -0
  540. data/vendor/test/cases/selectors.pseudo.elements.styl +29 -0
  541. data/vendor/test/cases/selectors.pseudo.styl +24 -0
  542. data/vendor/test/cases/selectors.styl +46 -0
  543. data/vendor/test/cases/self-assignment.css +3 -0
  544. data/vendor/test/cases/self-assignment.styl +4 -0
  545. data/vendor/test/cases/vargs.call.css +24 -0
  546. data/vendor/test/cases/vargs.call.styl +40 -0
  547. data/vendor/test/cases/vargs.css +30 -0
  548. data/vendor/test/cases/vargs.styl +49 -0
  549. data/vendor/test/cases/variable.css +3 -0
  550. data/vendor/test/cases/variable.styl +4 -0
  551. data/vendor/test/cases/variables.css +12 -0
  552. data/vendor/test/cases/variables.styl +17 -0
  553. data/vendor/test/images/gif +0 -0
  554. data/vendor/test/images/squirrel.jpeg +0 -0
  555. data/vendor/test/images/tux.png +0 -0
  556. data/vendor/test/run.js +151 -0
  557. data/vendor/testing/index.html +56 -0
  558. data/vendor/testing/stylus.js +146 -0
  559. data/vendor/testing/test-js.js +23 -0
  560. data/vendor/testing/test.css +8 -0
  561. data/vendor/testing/test.js +23 -0
  562. data/vendor/testing/test.styl +75 -0
  563. data/vendor/testing/utils.styl +6 -0
  564. data/vendor/testing/vendor.styl +3 -0
  565. metadata +565 -112
  566. data/.DS_Store +0 -0
  567. data/lib/.DS_Store +0 -0
  568. data/lib/node_modules/cssom/.idea/CSSOM.iml +0 -9
  569. data/lib/node_modules/cssom/.idea/dictionaries/nv.xml +0 -3
  570. data/lib/node_modules/cssom/.idea/encodings.xml +0 -5
  571. data/lib/node_modules/cssom/.idea/misc.xml +0 -17
  572. data/lib/node_modules/cssom/.idea/modules.xml +0 -9
  573. data/lib/node_modules/cssom/.idea/projectCodeStyle.xml +0 -82
  574. data/lib/node_modules/cssom/.idea/vcs.xml +0 -8
  575. data/lib/node_modules/cssom/.idea/workspace.xml +0 -467
  576. data/lib/node_modules/cssom/.livereload +0 -19
  577. data/lib/node_modules/cssom/docs/.livereload +0 -19
data/vendor/bin/stylus ADDED
@@ -0,0 +1,606 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Module dependencies.
5
+ */
6
+
7
+ var fs = require('fs')
8
+ , stylus = require('../lib/stylus')
9
+ , basename = require('path').basename
10
+ , dirname = require('path').dirname
11
+ , join = require('path').join;
12
+
13
+ /**
14
+ * Arguments.
15
+ */
16
+
17
+ var args = process.argv.slice(2);
18
+
19
+ /**
20
+ * Compare flag.
21
+ */
22
+
23
+ var compare = false;
24
+
25
+ /**
26
+ * Compress flag.
27
+ */
28
+
29
+ var compress = false;
30
+
31
+ /**
32
+ * CSS conversion flag.
33
+ */
34
+
35
+ var convertCSS = false;
36
+
37
+ /**
38
+ * Line numbers flag.
39
+ */
40
+
41
+ var linenos = false;
42
+
43
+ /**
44
+ * Firebug flag
45
+ */
46
+
47
+ var firebug = false;
48
+
49
+ /**
50
+ * Files to processes.
51
+ */
52
+
53
+ var files = [];
54
+
55
+ /**
56
+ * Import paths.
57
+ */
58
+
59
+ var paths = [];
60
+
61
+ /**
62
+ * Destination directory.
63
+ */
64
+
65
+ var dest;
66
+
67
+ /**
68
+ * Watcher hash.
69
+ */
70
+
71
+ var watchers;
72
+
73
+ /**
74
+ * Enable REPL.
75
+ */
76
+
77
+ var interactive;
78
+
79
+ /**
80
+ * Plugins.
81
+ */
82
+
83
+ var plugins = [];
84
+
85
+ /**
86
+ * Optional url() function.
87
+ */
88
+
89
+ var urlFunction = false;
90
+
91
+ /**
92
+ * Usage docs.
93
+ */
94
+
95
+ var usage = [
96
+ ''
97
+ , ' Usage: stylus [options] [command] [< in [> out]]'
98
+ , ' [file|dir ...]'
99
+ , ''
100
+ , ' Commands:'
101
+ , ''
102
+ , ' help [<type>:]<prop> Opens help info at MDC for <prop> in'
103
+ , ' your default browser. Optionally'
104
+ , ' searches other resources of <type>:'
105
+ , ' safari opera w3c ms caniuse quirksmode'
106
+ , ''
107
+ , ' Options:'
108
+ , ''
109
+ , ' -i, --interactive Start interactive REPL'
110
+ , ' -u, --use <path> Utilize the stylus plugin at <path>'
111
+ , ' -U, --inline Utilize image inlining via data uri support'
112
+ , ' -w, --watch Watch file(s) for changes and re-compile'
113
+ , ' -o, --out <dir> Output to <dir> when passing files'
114
+ , ' -C, --css <src> [dest] Convert css input to stylus'
115
+ , ' -I, --include <path> Add <path> to lookup paths'
116
+ , ' -c, --compress Compress css output'
117
+ , ' -d, --compare Display input along with output'
118
+ , ' -f, --firebug Emits debug infos in the generated css that'
119
+ , ' can be used by the FireStylus Firebug plugin'
120
+ , ' -l, --line-numbers Emits comments in the generated css'
121
+ , ' indicating the corresponding stylus line'
122
+ , ' -V, --version Display the version of stylus'
123
+ , ' -h, --help Display help information'
124
+ , ''
125
+ ].join('\n');
126
+
127
+ /**
128
+ * Handle arguments.
129
+ */
130
+
131
+ var arg;
132
+ while (args.length) {
133
+ arg = args.shift();
134
+ switch (arg) {
135
+ case '-h':
136
+ case '--help':
137
+ console.error(usage);
138
+ process.exit(1);
139
+ case '-d':
140
+ case '--compare':
141
+ compare = true;
142
+ break;
143
+ case '-c':
144
+ case '--compress':
145
+ compress = true;
146
+ break;
147
+ case '-C':
148
+ case '--css':
149
+ convertCSS = true;
150
+ break;
151
+ case '-f':
152
+ case '--firebug':
153
+ firebug = true;
154
+ break;
155
+ case '-l':
156
+ case '--line-numbers':
157
+ linenos = true;
158
+ break;
159
+ case '-V':
160
+ case '--version':
161
+ console.log(stylus.version);
162
+ process.exit(0);
163
+ break;
164
+ case '-o':
165
+ case '--out':
166
+ dest = args.shift();
167
+ if (!dest) throw new Error('--out <dir> required');
168
+ break;
169
+ case 'help':
170
+ var name = args.shift()
171
+ , browser = name.split(':');
172
+ if (browser.length > 1) {
173
+ name = [].slice.call(browser, 1).join(':');
174
+ browser = browser[0];
175
+ } else {
176
+ name = browser[0];
177
+ browser = '';
178
+ }
179
+ if (!name) throw new Error('help <property> required');
180
+ help(name);
181
+ break;
182
+ case '-i':
183
+ case '--repl':
184
+ case '--interactive':
185
+ interactive = true;
186
+ break;
187
+ case '-I':
188
+ case '--include':
189
+ var path = args.shift();
190
+ if (!path) throw new Error('--include <path> required');
191
+ paths.push(path);
192
+ break;
193
+ case '-w':
194
+ case '--watch':
195
+ watchers = {};
196
+ break;
197
+ case '-U':
198
+ case '--inline':
199
+ args.unshift('--use', 'url');
200
+ break;
201
+ case '-u':
202
+ case '--use':
203
+ var options;
204
+ var path = args.shift();
205
+ if (!path) throw new Error('--use <path> required');
206
+
207
+ // options
208
+ if ('--with' == args[0]) {
209
+ args.shift();
210
+ options = args.shift();
211
+ if (!options) throw new Error('--with <options> required');
212
+ options = eval('(' + options + ')');
213
+ }
214
+
215
+ // url support
216
+ if ('url' == path) {
217
+ urlFunction = options || {};
218
+ } else {
219
+ paths.push(dirname(path));
220
+ plugins.push({ path: path, options: options });
221
+ }
222
+ break;
223
+ default:
224
+ files.push(arg);
225
+ }
226
+ }
227
+
228
+ // optional growl support
229
+
230
+ try {
231
+ var growl = require('growl');
232
+ } catch (err) {
233
+ // ignore
234
+ }
235
+
236
+ // if --watch is used, assume we are
237
+ // not working with stdio
238
+
239
+ if (watchers && !files.length) {
240
+ files = fs.readdirSync(process.cwd())
241
+ .filter(function(file){
242
+ return file.match(/\.styl$/);
243
+ });
244
+ }
245
+
246
+ /**
247
+ * Open the default browser to the CSS property `name`.
248
+ *
249
+ * @param {String} name
250
+ */
251
+
252
+ function help(name) {
253
+ var url
254
+ , exec = require('child_process').exec
255
+ , command;
256
+
257
+ name = encodeURIComponent(name);
258
+
259
+ switch (browser) {
260
+ case 'safari':
261
+ case 'webkit':
262
+ url = 'https://developer.apple.com/library/safari/search/?q=' + name;
263
+ break;
264
+ case 'opera':
265
+ url = 'http://dev.opera.com/search/?term=' + name;
266
+ break;
267
+ case 'w3c':
268
+ url = 'http://www.google.com/search?q=site%3Awww.w3.org%2FTR+' + name;
269
+ break;
270
+ case 'ms':
271
+ url = 'http://social.msdn.microsoft.com/search/en-US/ie?query=' + name + '&refinement=59%2c61';
272
+ break;
273
+ case 'caniuse':
274
+ url = 'http://caniuse.com/#search=' + name;
275
+ break;
276
+ case 'quirksmode':
277
+ url = 'http://www.google.com/search?q=site%3Awww.quirksmode.org+' + name;
278
+ break;
279
+ default:
280
+ url = 'https://developer.mozilla.org/en/CSS/' + name;
281
+ }
282
+
283
+ switch (process.platform) {
284
+ case 'linux': command = 'x-www-browser'; break;
285
+ default: command = 'open';
286
+ }
287
+
288
+ exec(command + ' "' + url + '"', function(){
289
+ process.exit(0);
290
+ });
291
+ }
292
+
293
+ // Compilation options
294
+
295
+ var options = {
296
+ filename: 'stdin'
297
+ , compress: compress
298
+ , firebug: firebug
299
+ , linenos: linenos
300
+ , paths: [process.cwd()].concat(paths)
301
+ };
302
+
303
+ // Buffer stdin
304
+
305
+ var str = '';
306
+
307
+ // Convert css to stylus
308
+
309
+ if (convertCSS) {
310
+ switch (files.length) {
311
+ case 2:
312
+ compileCSSFile(files[0], files[1]);
313
+ break;
314
+ case 1:
315
+ compileCSSFile(files[0], files[0].replace('.css', '.styl'));
316
+ break;
317
+ default:
318
+ var stdin = process.openStdin();
319
+ stdin.setEncoding('utf8');
320
+ stdin.on('data', function(chunk){ str += chunk; });
321
+ stdin.on('end', function(){
322
+ var out = stylus.convertCSS(str);
323
+ console.log(out);
324
+ });
325
+ }
326
+ } else if (interactive) {
327
+ repl();
328
+ } else {
329
+ if (files.length) {
330
+ compileFiles(files);
331
+ } else {
332
+ compileStdio();
333
+ }
334
+ }
335
+
336
+ /**
337
+ * Start stylus REPL.
338
+ */
339
+
340
+ function repl() {
341
+ var options = { filename: 'stdin', imports: [join(__dirname, '..', 'lib', 'functions')] }
342
+ , parser = new stylus.Parser('', options)
343
+ , evaluator = new stylus.Evaluator(parser.parse(), options)
344
+ , rl = require('readline')
345
+ , repl = rl.createInterface(process.stdin, process.stdout, true)
346
+ , global = evaluator.global.scope;
347
+
348
+ // expose BIFs
349
+ evaluator.evaluate();
350
+
351
+ // readline
352
+ repl.setPrompt('> ');
353
+ repl.prompt();
354
+
355
+ // HACK: flat-list auto-complete
356
+ repl._tabComplete = function(){
357
+ var out = this.output
358
+ , line = this.line
359
+ , keys = Object.keys(global.locals)
360
+ , len = keys.length
361
+ , words = line.split(/\s+/)
362
+ , word = words.pop()
363
+ , names = []
364
+ , name
365
+ , obj
366
+ , key;
367
+
368
+ // find words that match
369
+ for (var i = 0; i < len; ++i) {
370
+ key = keys[i];
371
+ if (0 == key.indexOf(word)) {
372
+ names.push(key);
373
+ }
374
+ }
375
+
376
+ // several candidates
377
+ if (names.length > 1) {
378
+ out.write('\r\n\r\n\033[90m');
379
+ names.forEach(function(name){
380
+ var node = global.lookup(name);
381
+ switch (node.nodeName) {
382
+ case 'function':
383
+ out.write(' - ' + node + '\r\n');
384
+ break;
385
+ default:
386
+ out.write(' - ' + name + '\r\n');
387
+ }
388
+ });
389
+ out.write('\r\n\033[0m');
390
+ this._refreshLine();
391
+ // single candidate
392
+ } else if (names.length) {
393
+ name = names.pop();
394
+ obj = global.lookup(name);
395
+ name = name.replace(word, '');
396
+ switch (obj.nodeName) {
397
+ case 'function':
398
+ this._insertString(name + '()');
399
+ this.cursor--;
400
+ break;
401
+ default:
402
+ this._insertString(name);
403
+ }
404
+ this._refreshLine();
405
+ }
406
+ };
407
+
408
+ repl.on('line', function(line){
409
+ if (!line.trim().length) return repl.prompt();
410
+ parser = new stylus.Parser(line, options);
411
+ parser.state.push('expression');
412
+ evaluator.return = true;
413
+ try {
414
+ var expr = parser.parse();
415
+ var ret = evaluator.visit(expr);
416
+ ret = ret.nodes[ret.nodes.length - 1];
417
+ ret = ret.toString();
418
+ if ('(' == ret[0]) ret = ret.replace(/^\(|\)$/g, '');
419
+ console.log('\033[90m=> \033[0m' + highlight(ret));
420
+ repl.prompt();
421
+ } catch (err) {
422
+ console.error('\033[31merror: %s\033[0m', err.message || err.stack);
423
+ repl.prompt();
424
+ }
425
+ });
426
+
427
+ repl.on('SIGINT', function(){
428
+ console.log();
429
+ process.exit(0);
430
+ });
431
+ }
432
+
433
+ /**
434
+ * Highlight the given string of stylus.
435
+ */
436
+
437
+ function highlight(str) {
438
+ return str
439
+ .replace(/(#)?(\d+(\.\d+)?)/g, function($0, $1, $2){
440
+ return $1 ? $0 : '\033[36m' + $2 + '\033[0m';
441
+ })
442
+ .replace(/(#[\da-fA-F]+)/g, '\033[33m$1\033[0m')
443
+ .replace(/('.*?'|".*?")/g, '\033[32m$1\033[0m');
444
+ }
445
+
446
+ /**
447
+ * Convert a CSS file to a Styl file
448
+ */
449
+
450
+ function compileCSSFile(file, fileOut) {
451
+ fs.lstat(file, function(err, stat){
452
+ if (err) throw err;
453
+ if (stat.isFile()) {
454
+ fs.readFile(file, 'utf8', function(err, str){
455
+ if (err) throw err;
456
+ var styl = stylus.convertCSS(str);
457
+ fs.writeFile(fileOut, styl, function(err){
458
+ if (err) throw err;
459
+ });
460
+ });
461
+ }
462
+ });
463
+ }
464
+
465
+ /**
466
+ * Compile with stdio.
467
+ */
468
+
469
+ function compileStdio() {
470
+ process.stdin.setEncoding('utf8');
471
+ process.stdin.on('data', function(chunk){ str += chunk; });
472
+ process.stdin.on('end', function(){
473
+ // Compile to css
474
+ var style = stylus(str, options);
475
+ usePlugins(style);
476
+ style.render(function(err, css){
477
+ if (err) throw err;
478
+ if (compare) {
479
+ console.log('\n\x1b[1mInput:\x1b[0m');
480
+ console.log(str);
481
+ console.log('\n\x1b[1mOutput:\x1b[0m');
482
+ }
483
+ console.log(css);
484
+ if (compare) console.log();
485
+ });
486
+ }).resume();
487
+ }
488
+
489
+ /**
490
+ * Compile the given files.
491
+ */
492
+
493
+ function compileFiles(files) {
494
+ files.forEach(compileFile);
495
+ }
496
+
497
+ /**
498
+ * Compile the given file.
499
+ */
500
+
501
+ function compileFile(file) {
502
+ // ensure file exists
503
+ fs.lstat(file, function(err, stat){
504
+ if (err) throw err;
505
+ // file
506
+ if (stat.isFile()) {
507
+ fs.readFile(file, 'utf8', function(err, str){
508
+ if (err) throw err;
509
+ options.filename = file;
510
+ options._imports = [];
511
+ var style = stylus(str, options);
512
+ usePlugins(style);
513
+ style.render(function(err, css){
514
+ watchImports(file, options._imports);
515
+ if (err) {
516
+ if (watchers) {
517
+ console.error(err.stack || err.message);
518
+ growl && growl.notify(err.message, { title: 'Stylus error' });
519
+ } else {
520
+ throw err;
521
+ }
522
+ } else {
523
+ writeFile(file, css);
524
+ }
525
+ });
526
+ });
527
+ // directory
528
+ } else if (stat.isDirectory()) {
529
+ fs.readdir(file, function(err, files){
530
+ if (err) throw err;
531
+ files.filter(function(path){
532
+ return path.match(/\.styl$/);
533
+ }).map(function(path){
534
+ return join(file, path);
535
+ }).forEach(compileFile);
536
+ });
537
+ }
538
+ });
539
+ }
540
+
541
+ /**
542
+ * Write the given css output.
543
+ */
544
+
545
+ function writeFile(file, css) {
546
+ // --out support
547
+ var path = dest
548
+ ? join(dest, basename(file, '.styl') + '.css')
549
+ : file.replace('.styl', '.css');
550
+ fs.writeFile(path, css, function(err){
551
+ if (err) throw err;
552
+ console.log(' \033[90mcompiled\033[0m %s', path);
553
+ // --watch support
554
+ watch(file, compileFile);
555
+ });
556
+ }
557
+
558
+ /**
559
+ * Watch the given `file` and invoke `fn` when modified.
560
+ */
561
+
562
+ function watch(file, fn) {
563
+ // not watching
564
+ if (!watchers) return;
565
+
566
+ // already watched
567
+ if (watchers[file]) return;
568
+
569
+ // watch the file itself
570
+ watchers[file] = true;
571
+ console.log(' \033[90mwatching\033[0m %s', file);
572
+ fs.watchFile(file, { interval: 50 }, function(curr, prev){
573
+ if (curr.mtime > prev.mtime) fn(file);
574
+ });
575
+ }
576
+
577
+ /**
578
+ * Watch `imports`, re-compiling `file` when they change.
579
+ */
580
+
581
+ function watchImports(file, imports) {
582
+ imports.forEach(function(imported){
583
+ if (!imported.path) return;
584
+ watch(imported.path, function(){
585
+ compileFile(file);
586
+ });
587
+ });
588
+ }
589
+
590
+ /**
591
+ * Utilize plugins.
592
+ */
593
+
594
+ function usePlugins(style) {
595
+ plugins.forEach(function(plugin){
596
+ var path = plugin.path;
597
+ var options = plugin.options;
598
+ fn = require(path);
599
+ if ('function' != typeof fn) {
600
+ throw new Error('plugin ' + path + ' does not export a function');
601
+ }
602
+ style.use(fn(options));
603
+ });
604
+
605
+ if (urlFunction) style.define('url', stylus.url(urlFunction));
606
+ }
data/vendor/bm.js ADDED
@@ -0,0 +1,22 @@
1
+
2
+ /**
3
+ * Module dependencies.
4
+ */
5
+
6
+ var stylus = require('./');
7
+
8
+ var times = 200
9
+ , n = times
10
+ , start = new Date;
11
+
12
+ console.log('compiling %d times', times);
13
+
14
+ while (n--) {
15
+ stylus('body\n color: white;\n background: url(/images/foo.png)\n a\n &:hover\n text-decoration: underline;')
16
+ .render(function(err, css){});
17
+ }
18
+
19
+ var duration = new Date - start;
20
+ console.log(' duration: %dms', duration);
21
+ console.log(' average: %dms', duration / times);
22
+ console.log(' per second: %d', (times / (duration / 1000)).toFixed(1));