compass 0.8.17 → 0.10.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. data/CHANGELOG.markdown +165 -0
  2. data/README.markdown +15 -3
  3. data/Rakefile +46 -7
  4. data/VERSION.yml +3 -2
  5. data/bin/compass +22 -4
  6. data/examples/blueprint_default/index.html.haml +3 -3
  7. data/examples/blueprint_default/parts/forms.html.haml +2 -0
  8. data/examples/blueprint_default/src/screen.sass +1 -1
  9. data/examples/blueprint_plugins/index.html.haml +6 -6
  10. data/examples/blueprint_plugins/src/buttons.sass +2 -2
  11. data/examples/blueprint_plugins/src/link_icons.sass +1 -1
  12. data/examples/blueprint_plugins/src/rtl_screen.sass +3 -3
  13. data/examples/blueprint_plugins/src/screen.sass +2 -2
  14. data/examples/blueprint_scoped/src/ie.sass +2 -1
  15. data/examples/blueprint_scoped/src/print.sass +2 -1
  16. data/examples/blueprint_scoped/src/screen.sass +2 -1
  17. data/examples/blueprint_semantic/parts/fancy_type.html.haml +1 -1
  18. data/examples/blueprint_semantic/src/liquid.sass +5 -6
  19. data/examples/blueprint_semantic/src/screen.sass +4 -5
  20. data/examples/compass/bootstrap.rb +3 -0
  21. data/{frameworks → examples/compass/extensions}/yui/stylesheets/_yui.sass +0 -0
  22. data/examples/compass/extensions/yui/stylesheets/yui/modules/_base.sass +70 -0
  23. data/{frameworks → examples/compass/extensions}/yui/stylesheets/yui/modules/_fonts.sass +8 -1
  24. data/{frameworks → examples/compass/extensions}/yui/stylesheets/yui/modules/_grids.sass +174 -130
  25. data/{frameworks → examples/compass/extensions}/yui/stylesheets/yui/modules/_reset.sass +0 -0
  26. data/{frameworks → examples/compass/extensions}/yui/templates/project/manifest.rb +0 -0
  27. data/{frameworks → examples/compass/extensions}/yui/templates/project/screen.sass +0 -0
  28. data/examples/compass/src/utilities.sass +2 -2
  29. data/examples/css3/config.rb +6 -0
  30. data/examples/css3/extensions/fancy-fonts/templates/project/Vtks Revolt.ttf +0 -0
  31. data/examples/css3/extensions/fancy-fonts/templates/project/angelina.ttf +0 -0
  32. data/examples/css3/extensions/fancy-fonts/templates/project/fancy-fonts.sass +7 -0
  33. data/examples/css3/extensions/fancy-fonts/templates/project/manifest.rb +5 -0
  34. data/examples/css3/images/fresh-peas.jpg +0 -0
  35. data/examples/css3/index.html.haml +55 -0
  36. data/examples/css3/src/_base.sass +14 -0
  37. data/examples/css3/src/fancy-fonts.sass +7 -0
  38. data/examples/css3/src/gradient.sass +10 -0
  39. data/examples/css3/src/main.sass +80 -0
  40. data/examples/css3/stylesheets/fonts/Vtks Revolt.ttf +0 -0
  41. data/examples/css3/stylesheets/fonts/angelina.ttf +0 -0
  42. data/examples/downloader.rb +57 -0
  43. data/examples/ninesixty/bootstrap.rb +4 -0
  44. data/examples/ninesixty/config.rb +9 -0
  45. data/examples/ninesixty/extensions/ninesixty/README.mkdn +56 -0
  46. data/examples/ninesixty/extensions/ninesixty/compass-960-plugin.gemspec +36 -0
  47. data/examples/ninesixty/extensions/ninesixty/lib/ninesixty.rb +1 -0
  48. data/examples/ninesixty/extensions/ninesixty/lib/ninesixty/compass_plugin.rb +5 -0
  49. data/examples/ninesixty/extensions/ninesixty/sass/960/_grid.sass +64 -0
  50. data/examples/ninesixty/extensions/ninesixty/sass/960/_text.sass +59 -0
  51. data/examples/ninesixty/extensions/ninesixty/templates/project/grid.sass +34 -0
  52. data/examples/ninesixty/extensions/ninesixty/templates/project/manifest.rb +2 -0
  53. data/examples/ninesixty/extensions/ninesixty/templates/project/text.sass +10 -0
  54. data/examples/ninesixty/src/grid.sass +16 -0
  55. data/examples/ninesixty/src/text.sass +10 -0
  56. data/examples/susy/bootstrap.rb +3 -0
  57. data/examples/susy/config.rb +9 -0
  58. data/examples/susy/extensions/susy/LICENSE.txt +28 -0
  59. data/examples/susy/extensions/susy/README.mkdn +235 -0
  60. data/examples/susy/extensions/susy/compass-susy-plugin.gemspec +35 -0
  61. data/examples/susy/extensions/susy/docs/tutorial/build.sh +141 -0
  62. data/examples/susy/extensions/susy/docs/tutorial/code/01_target/src/_defaults.sass +100 -0
  63. data/examples/susy/extensions/susy/docs/tutorial/code/01_target/src/screen.sass +98 -0
  64. data/examples/susy/extensions/susy/docs/tutorial/code/02_container/src/_defaults.sass +147 -0
  65. data/examples/susy/extensions/susy/docs/tutorial/code/02_container/src/screen.sass +19 -0
  66. data/examples/susy/extensions/susy/docs/tutorial/code/03_structure/src/_defaults.sass +147 -0
  67. data/examples/susy/extensions/susy/docs/tutorial/code/03_structure/src/screen.sass +48 -0
  68. data/examples/susy/extensions/susy/docs/tutorial/code/_common/config.rb +14 -0
  69. data/examples/susy/extensions/susy/docs/tutorial/code/_common/images/grid.png +0 -0
  70. data/examples/susy/extensions/susy/docs/tutorial/code/_common/images/susy_logo.png +0 -0
  71. data/examples/susy/extensions/susy/docs/tutorial/code/_common/src/_base.sass +63 -0
  72. data/examples/susy/extensions/susy/docs/tutorial/code/_tools/Markdown.pl +1450 -0
  73. data/examples/susy/extensions/susy/docs/tutorial/code/site/src/_defaults.sass +100 -0
  74. data/examples/susy/extensions/susy/docs/tutorial/code/site/src/screen.sass +91 -0
  75. data/examples/susy/extensions/susy/docs/tutorial/figures/susy_element.png +0 -0
  76. data/examples/susy/extensions/susy/docs/tutorial/figures/susy_grid.png +0 -0
  77. data/examples/susy/extensions/susy/docs/tutorial/index.mkdn +301 -0
  78. data/examples/susy/extensions/susy/lib/susy.rb +2 -0
  79. data/examples/susy/extensions/susy/lib/susy/compass_plugin.rb +5 -0
  80. data/examples/susy/extensions/susy/lib/susy/sass_extensions.rb +79 -0
  81. data/examples/susy/extensions/susy/sass/susy/_grid.sass +128 -0
  82. data/examples/susy/extensions/susy/sass/susy/_reset.sass +7 -0
  83. data/examples/susy/extensions/susy/sass/susy/_susy.sass +23 -0
  84. data/examples/susy/extensions/susy/sass/susy/_text.sass +15 -0
  85. data/examples/susy/extensions/susy/sass/susy/_utils.sass +81 -0
  86. data/examples/susy/extensions/susy/templates/project/_base.sass +62 -0
  87. data/examples/susy/extensions/susy/templates/project/_defaults.sass +147 -0
  88. data/examples/susy/extensions/susy/templates/project/ie.sass +9 -0
  89. data/examples/susy/extensions/susy/templates/project/manifest.rb +5 -0
  90. data/examples/susy/extensions/susy/templates/project/print.sass +7 -0
  91. data/examples/susy/extensions/susy/templates/project/screen.sass +44 -0
  92. data/examples/susy/src/_base.sass +62 -0
  93. data/examples/susy/src/_defaults.sass +148 -0
  94. data/examples/susy/src/screen.sass +114 -0
  95. data/examples/yui/bootstrap.rb +3 -0
  96. data/examples/yui/extensions/yui/stylesheets/_yui.sass +7 -0
  97. data/examples/yui/extensions/yui/stylesheets/yui/modules/_base.sass +70 -0
  98. data/examples/yui/extensions/yui/stylesheets/yui/modules/_fonts.sass +45 -0
  99. data/examples/yui/extensions/yui/stylesheets/yui/modules/_grids.sass +385 -0
  100. data/examples/yui/extensions/yui/stylesheets/yui/modules/_reset.sass +61 -0
  101. data/examples/yui/extensions/yui/templates/project/manifest.rb +1 -0
  102. data/examples/yui/extensions/yui/templates/project/screen.sass +4 -0
  103. data/features/command_line.feature +226 -0
  104. data/features/extensions.feature +20 -0
  105. data/features/step_definitions/command_line_steps.rb +223 -0
  106. data/features/step_definitions/extension_steps.rb +13 -0
  107. data/lib/compass.rb +6 -7
  108. data/lib/compass/actions.rb +7 -1
  109. data/lib/compass/app_integration.rb +23 -4
  110. data/lib/compass/app_integration/merb.rb +1 -43
  111. data/lib/compass/app_integration/merb/runtime.rb +63 -0
  112. data/lib/compass/app_integration/rails.rb +24 -10
  113. data/lib/compass/app_integration/rails/configuration_defaults.rb +45 -0
  114. data/lib/compass/app_integration/rails/installer.rb +127 -0
  115. data/lib/compass/app_integration/rails/runtime.rb +14 -0
  116. data/lib/compass/app_integration/stand_alone.rb +22 -0
  117. data/lib/compass/app_integration/stand_alone/configuration_defaults.rb +28 -0
  118. data/lib/compass/app_integration/stand_alone/installer.rb +83 -0
  119. data/lib/compass/commands.rb +11 -0
  120. data/lib/compass/commands/base.rb +4 -1
  121. data/lib/compass/commands/create_project.rb +108 -5
  122. data/lib/compass/commands/generate_grid_background.rb +73 -6
  123. data/lib/compass/commands/help.rb +89 -0
  124. data/lib/compass/commands/installer_command.rb +20 -13
  125. data/lib/compass/commands/interactive.rb +61 -0
  126. data/lib/compass/commands/list_frameworks.rb +2 -2
  127. data/lib/compass/commands/print_version.rb +72 -4
  128. data/lib/compass/commands/project_base.rb +14 -34
  129. data/lib/compass/commands/project_stats.rb +162 -0
  130. data/lib/compass/commands/registry.rb +22 -0
  131. data/lib/compass/commands/stamp_pattern.rb +56 -3
  132. data/lib/compass/commands/update_project.rb +60 -6
  133. data/lib/compass/commands/validate_project.rb +62 -6
  134. data/lib/compass/commands/watch_project.rb +12 -5
  135. data/lib/compass/commands/write_configuration.rb +89 -4
  136. data/lib/compass/compiler.rb +13 -4
  137. data/lib/compass/configuration.rb +29 -310
  138. data/lib/compass/configuration/adapters.rb +59 -0
  139. data/lib/compass/configuration/comments.rb +22 -0
  140. data/lib/compass/configuration/data.rb +106 -0
  141. data/lib/compass/configuration/defaults.rb +138 -0
  142. data/lib/compass/configuration/helpers.rb +120 -0
  143. data/lib/compass/configuration/inheritance.rb +170 -0
  144. data/lib/compass/configuration/serialization.rb +86 -0
  145. data/lib/compass/dependencies.rb +4 -8
  146. data/lib/compass/errors.rb +4 -1
  147. data/lib/compass/exec.rb +11 -246
  148. data/lib/compass/exec/command_option_parser.rb +23 -0
  149. data/lib/compass/exec/global_options_parser.rb +37 -0
  150. data/lib/compass/exec/helpers.rb +28 -0
  151. data/lib/compass/exec/project_options_parser.rb +46 -0
  152. data/lib/compass/exec/sub_command_ui.rb +45 -0
  153. data/lib/compass/exec/switch_ui.rb +166 -0
  154. data/lib/compass/frameworks.rb +70 -7
  155. data/lib/compass/frameworks/blueprint/stylesheets/_blueprint.sass +31 -0
  156. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_buttons.sass +27 -27
  157. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_colors.sass +0 -0
  158. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_debug.sass +2 -2
  159. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_fancy_type.sass +19 -19
  160. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_form.sass +56 -0
  161. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_grid.sass +34 -33
  162. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_ie.sass +99 -0
  163. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_interaction.sass +58 -0
  164. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_link_icons.sass +9 -9
  165. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_liquid.sass +29 -29
  166. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_print.sass +87 -0
  167. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_reset.sass +20 -18
  168. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_rtl.sass +123 -0
  169. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_scaffolding.sass +6 -4
  170. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_screen.sass +2 -0
  171. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_typography.sass +162 -0
  172. data/{frameworks/blueprint/stylesheets/blueprint/modules → lib/compass/frameworks/blueprint/stylesheets/blueprint}/_utilities.sass +15 -15
  173. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass +2 -0
  174. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_colors.sass +2 -0
  175. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_debug.sass +2 -0
  176. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass +2 -0
  177. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +2 -0
  178. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass +2 -0
  179. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +2 -0
  180. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass +2 -0
  181. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_liquid.sass +3 -0
  182. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_reset.sass +2 -0
  183. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +2 -0
  184. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_scaffolding.sass +2 -0
  185. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +2 -0
  186. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_utilities.sass +2 -0
  187. data/{frameworks → lib/compass/frameworks}/blueprint/templates/buttons/buttons.sass +4 -4
  188. data/{frameworks → lib/compass/frameworks}/blueprint/templates/buttons/buttons/cross.png +0 -0
  189. data/{frameworks → lib/compass/frameworks}/blueprint/templates/buttons/buttons/key.png +0 -0
  190. data/{frameworks → lib/compass/frameworks}/blueprint/templates/buttons/buttons/tick.png +0 -0
  191. data/lib/compass/frameworks/blueprint/templates/buttons/manifest.rb +17 -0
  192. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons.sass +1 -1
  193. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/doc.png +0 -0
  194. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/email.png +0 -0
  195. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/external.png +0 -0
  196. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/feed.png +0 -0
  197. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/im.png +0 -0
  198. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
  199. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/visited.png +0 -0
  200. data/{frameworks → lib/compass/frameworks}/blueprint/templates/link_icons/link_icons/xls.png +0 -0
  201. data/lib/compass/frameworks/blueprint/templates/link_icons/manifest.rb +23 -0
  202. data/{frameworks → lib/compass/frameworks}/blueprint/templates/project/grid.png +0 -0
  203. data/lib/compass/frameworks/blueprint/templates/project/ie.sass +16 -0
  204. data/lib/compass/frameworks/blueprint/templates/project/manifest.rb +32 -0
  205. data/{frameworks → lib/compass/frameworks}/blueprint/templates/project/partials/_base.sass +0 -0
  206. data/lib/compass/frameworks/blueprint/templates/project/print.sass +8 -0
  207. data/{frameworks → lib/compass/frameworks}/blueprint/templates/project/screen.sass +3 -2
  208. data/lib/compass/frameworks/blueprint/templates/project/welcome.html.haml +21 -0
  209. data/lib/compass/frameworks/compass/stylesheets/_compass.sass +2 -0
  210. data/lib/compass/frameworks/compass/stylesheets/compass/_css3.sass +14 -0
  211. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/_layout.sass +0 -0
  212. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/_misc.sass +12 -12
  213. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/_reset.sass +0 -0
  214. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/_utilities.sass +0 -0
  215. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_clip.sass +16 -0
  216. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_origin.sass +18 -0
  217. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_size.sass +14 -0
  218. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_border_radius.sass +47 -0
  219. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_box_shadow.sass +20 -0
  220. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_box_sizing.sass +13 -0
  221. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_columns.sass +37 -0
  222. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_font_face.sass +31 -0
  223. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_gradient.sass +40 -0
  224. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_inline_block.sass +7 -0
  225. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_opacity.sass +18 -0
  226. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_text_shadow.sass +15 -0
  227. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_transform.sass +62 -0
  228. data/lib/compass/frameworks/compass/stylesheets/compass/css3/_transition.sass +57 -0
  229. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/layout/_sticky_footer.sass +9 -7
  230. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/_general.sass +0 -1
  231. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/_links.sass +1 -1
  232. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/_lists.sass +0 -0
  233. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_print.sass +18 -0
  234. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_sprites.sass +1 -0
  235. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/_tables.sass +0 -0
  236. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/_text.sass +0 -0
  237. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/general/_clearfix.sass +7 -7
  238. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/general/_float.sass +2 -2
  239. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/general/_hacks.sass +2 -2
  240. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/general/_reset.sass +28 -28
  241. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/general/_tabs.sass +0 -0
  242. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_tag_cloud.sass +19 -0
  243. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/links/_hover_link.sass +2 -2
  244. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/links/_link_colors.sass +6 -6
  245. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/links/_unstyled_link.sass +7 -0
  246. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/lists/_bullets.sass +6 -6
  247. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/lists/_horizontal_list.sass +6 -6
  248. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/lists/_inline_list.sass +9 -9
  249. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite_img.sass +52 -0
  250. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +20 -0
  251. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_borders.sass +27 -0
  252. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.sass +9 -0
  253. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/text/_ellipsis.sass +0 -0
  254. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/text/_nowrap.sass +1 -1
  255. data/{frameworks → lib/compass/frameworks}/compass/stylesheets/compass/utilities/text/_replacement.sass +6 -6
  256. data/{frameworks → lib/compass/frameworks}/compass/templates/ellipsis/ellipsis.sass +0 -0
  257. data/lib/compass/frameworks/compass/templates/ellipsis/manifest.rb +27 -0
  258. data/{frameworks → lib/compass/frameworks}/compass/templates/ellipsis/xml/ellipsis.xml +0 -0
  259. data/lib/compass/frameworks/compass/templates/extension/manifest.rb +20 -0
  260. data/lib/compass/frameworks/compass/templates/extension/stylesheets/main.sass +1 -0
  261. data/lib/compass/frameworks/compass/templates/extension/templates/project/manifest.rb +2 -0
  262. data/lib/compass/frameworks/compass/templates/extension/templates/project/screen.sass +2 -0
  263. data/lib/compass/frameworks/compass/templates/project/USAGE.markdown +32 -0
  264. data/{frameworks → lib/compass/frameworks}/compass/templates/project/ie.sass +0 -0
  265. data/{frameworks → lib/compass/frameworks}/compass/templates/project/manifest.rb +1 -0
  266. data/{frameworks → lib/compass/frameworks}/compass/templates/project/print.sass +0 -0
  267. data/{frameworks → lib/compass/frameworks}/compass/templates/project/screen.sass +0 -0
  268. data/lib/compass/grid_builder.rb +15 -11
  269. data/lib/compass/installers.rb +3 -5
  270. data/lib/compass/installers/bare_installer.rb +58 -0
  271. data/lib/compass/installers/base.rb +40 -51
  272. data/lib/compass/installers/manifest.rb +55 -2
  273. data/lib/compass/installers/manifest_installer.rb +59 -0
  274. data/lib/compass/installers/template_context.rb +44 -0
  275. data/lib/compass/logger.rb +28 -2
  276. data/lib/compass/sass_extensions.rb +2 -2
  277. data/lib/compass/sass_extensions/functions.rb +4 -2
  278. data/lib/compass/sass_extensions/functions/color_stop.rb +10 -0
  279. data/lib/compass/sass_extensions/functions/font_files.rb +11 -0
  280. data/lib/compass/sass_extensions/functions/inline_image.rb +22 -1
  281. data/lib/compass/sass_extensions/functions/selectors.rb +4 -1
  282. data/lib/compass/sass_extensions/functions/urls.rb +22 -2
  283. data/lib/compass/sass_extensions/monkey_patches.rb +3 -3
  284. data/lib/compass/sass_extensions/monkey_patches/traversal.rb +23 -0
  285. data/lib/compass/stats.rb +92 -0
  286. data/lib/compass/validator.rb +2 -3
  287. data/lib/vendor/fssm/state.rb +1 -1
  288. data/test/command_line_helper.rb +19 -16
  289. data/test/command_line_test.rb +5 -4
  290. data/test/compass_test.rb +16 -15
  291. data/test/configuration_test.rb +24 -19
  292. data/test/fixtures/stylesheets/blueprint/css/typography.css +5 -3
  293. data/test/fixtures/stylesheets/blueprint/sass/screen.sass +1 -1
  294. data/test/fixtures/stylesheets/blueprint/sass/typography.sass +2 -2
  295. data/test/fixtures/stylesheets/compass/css/layout.css +2 -0
  296. data/test/fixtures/stylesheets/compass/css/print.css +2 -8
  297. data/test/fixtures/stylesheets/compass/css/reset.css +3 -3
  298. data/test/fixtures/stylesheets/image_urls/css/screen.css +2 -0
  299. data/test/fixtures/stylesheets/relative/assets/images/testing.png +0 -0
  300. data/test/fixtures/stylesheets/relative/config.rb +9 -0
  301. data/test/fixtures/stylesheets/relative/css/ie.css +1 -0
  302. data/test/fixtures/stylesheets/relative/css/print.css +1 -0
  303. data/test/fixtures/stylesheets/relative/css/screen.css +1 -0
  304. data/test/fixtures/stylesheets/relative/sass/ie.sass +6 -0
  305. data/test/fixtures/stylesheets/relative/sass/print.sass +6 -0
  306. data/test/fixtures/stylesheets/relative/sass/screen.sass +3 -0
  307. data/test/io_helper.rb +36 -0
  308. data/test/rails_helper.rb +40 -0
  309. data/test/rails_integration_test.rb +7 -44
  310. data/test/sass_extensions_test.rb +2 -2
  311. data/test/test_helper.rb +9 -2
  312. metadata +257 -110
  313. data/frameworks/blueprint.rb +0 -2
  314. data/frameworks/blueprint/stylesheets/_blueprint.sass +0 -3
  315. data/frameworks/blueprint/stylesheets/blueprint/_ie.sass +0 -93
  316. data/frameworks/blueprint/stylesheets/blueprint/_print.sass +0 -83
  317. data/frameworks/blueprint/stylesheets/blueprint/_reset.sass +0 -3
  318. data/frameworks/blueprint/stylesheets/blueprint/_screen.sass +0 -15
  319. data/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +0 -55
  320. data/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +0 -58
  321. data/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +0 -104
  322. data/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +0 -155
  323. data/frameworks/blueprint/templates/buttons/manifest.rb +0 -5
  324. data/frameworks/blueprint/templates/link_icons/manifest.rb +0 -10
  325. data/frameworks/blueprint/templates/project/ie.sass +0 -15
  326. data/frameworks/blueprint/templates/project/manifest.rb +0 -6
  327. data/frameworks/blueprint/templates/project/print.sass +0 -3
  328. data/frameworks/compass.rb +0 -2
  329. data/frameworks/compass/stylesheets/_compass.sass +0 -1
  330. data/frameworks/compass/stylesheets/compass/utilities/_print.sass +0 -24
  331. data/frameworks/compass/stylesheets/compass/utilities/_sprites.sass +0 -1
  332. data/frameworks/compass/stylesheets/compass/utilities/general/_inline_block.sass +0 -6
  333. data/frameworks/compass/stylesheets/compass/utilities/general/_tag_cloud.sass +0 -19
  334. data/frameworks/compass/stylesheets/compass/utilities/links/_unstyled_link.sass +0 -5
  335. data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite_img.sass +0 -12
  336. data/frameworks/compass/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +0 -20
  337. data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.sass +0 -27
  338. data/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.sass +0 -9
  339. data/frameworks/compass/templates/ellipsis/manifest.rb +0 -2
  340. data/frameworks/yui.rb +0 -2
  341. data/frameworks/yui/stylesheets/yui/modules/_base.sass +0 -60
  342. data/lib/compass/installers/rails.rb +0 -135
  343. data/lib/compass/installers/stand_alone.rb +0 -60
  344. data/test/fixtures/stylesheets/yui/config.rb +0 -9
  345. data/test/fixtures/stylesheets/yui/css/mixins.css +0 -13
  346. data/test/fixtures/stylesheets/yui/sass/base.sass +0 -3
  347. data/test/fixtures/stylesheets/yui/sass/fonts.sass +0 -3
  348. data/test/fixtures/stylesheets/yui/sass/grids.sass +0 -3
  349. data/test/fixtures/stylesheets/yui/sass/mixins.sass +0 -16
@@ -0,0 +1,22 @@
1
+ module Compass::Commands
2
+ module Registry
3
+ def register(name, command_class)
4
+ @commands ||= Hash.new
5
+ @commands[name.to_sym] = command_class
6
+ end
7
+ def get(name)
8
+ @commands ||= Hash.new
9
+ @commands[name.to_sym]
10
+ end
11
+ def command_exists?(name)
12
+ @commands ||= Hash.new
13
+ name && @commands.has_key?(name.to_sym)
14
+ end
15
+ def all
16
+ @commands.keys
17
+ end
18
+ alias_method :[], :get
19
+ alias_method :[]=, :register
20
+ end
21
+ extend Registry
22
+ end
@@ -1,11 +1,64 @@
1
1
  require 'fileutils'
2
- require File.join(File.dirname(__FILE__), 'base')
3
- require File.join(File.dirname(__FILE__), 'update_project')
2
+ require 'compass/commands/base'
3
+ require 'compass/commands/update_project'
4
4
 
5
5
  module Compass
6
6
  module Commands
7
+ module StampPatternOptionsParser
8
+ def set_options(opts)
9
+ opts.banner = %Q{Usage: compass install extension/pattern [path/to/project] [options]
10
+
11
+ Description:
12
+ Install an extension's pattern into your compass project
13
+
14
+ Example:
15
+ compass install blueprint/buttons
16
+
17
+ Options:
18
+ }
19
+ super
20
+ end
21
+ end
22
+
7
23
  class StampPattern < ProjectBase
8
24
 
25
+ register :install
26
+
27
+ class << self
28
+ def option_parser(arguments)
29
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
30
+ parser.extend(Compass::Exec::GlobalOptionsParser)
31
+ parser.extend(Compass::Exec::ProjectOptionsParser)
32
+ parser.extend(StampPatternOptionsParser)
33
+ end
34
+ def usage
35
+ option_parser([]).to_s
36
+ end
37
+ def description(command)
38
+ "Install an extension's pattern into your compass project"
39
+ end
40
+ def parse!(arguments)
41
+ parser = option_parser(arguments)
42
+ parser.parse!
43
+ parse_arguments!(parser, arguments)
44
+ parser.options
45
+ end
46
+ def parse_arguments!(parser, arguments)
47
+ if arguments.size == 0
48
+ raise OptionParser::ParseError, "Please specify a pattern."
49
+ end
50
+ pattern = arguments.shift.split('/', 2)
51
+ parser.options[:framework] = pattern[0]
52
+ parser.options[:pattern] = pattern[1]
53
+ if arguments.size > 0
54
+ parser.options[:project_name] = arguments.shift
55
+ end
56
+ if arguments.size > 0
57
+ raise OptionParser::ParseError, "Unexpected trailing arguments: #{arguments.join(" ")}"
58
+ end
59
+ end
60
+
61
+ end
9
62
  include InstallerCommand
10
63
 
11
64
  def initialize(working_path, options)
@@ -30,4 +83,4 @@ module Compass
30
83
 
31
84
  end
32
85
  end
33
- end
86
+ end
@@ -1,18 +1,35 @@
1
- require File.join(File.dirname(__FILE__), 'project_base')
2
- require File.join(Compass.lib_directory, 'compass', 'compiler')
1
+ require 'compass/commands/project_base'
2
+ require 'compass/compiler'
3
3
 
4
4
  module Compass
5
5
  module Commands
6
+ module CompileProjectOptionsParser
7
+ def set_options(opts)
8
+ opts.banner = %Q{
9
+ Usage: compass compile [path/to/project] [options]
10
+
11
+ Description:
12
+ compile project at the path specified or the current director if not specified.
13
+
14
+ Options:
15
+ }.split("\n").map{|l| l.gsub(/^ */,'')}.join("\n")
16
+
17
+ super
18
+ end
19
+ end
20
+
6
21
  class UpdateProject < ProjectBase
7
-
22
+
23
+ register :compile
24
+
8
25
  def initialize(working_path, options)
9
26
  super
10
- assert_project_directory_exists!
27
+ assert_project_directory_exists! unless dry_run?
11
28
  end
12
29
 
13
30
  def perform
14
31
  compiler = new_compiler_instance
15
- if compiler.sass_files.empty?
32
+ if compiler.sass_files.empty? && !dry_run?
16
33
  message = "Nothing to compile. If you're trying to start a new project, you have left off the directory argument.\n"
17
34
  message << "Run \"compass -h\" to get help."
18
35
  raise Compass::Error, message
@@ -21,6 +38,10 @@ module Compass
21
38
  end
22
39
  end
23
40
 
41
+ def dry_run?
42
+ options[:dry_run]
43
+ end
44
+
24
45
  def new_compiler_instance(additional_options = {})
25
46
  Compass::Compiler.new(working_path,
26
47
  projectize(Compass.configuration.sass_dir),
@@ -29,6 +50,39 @@ module Compass
29
50
  :force => options[:force]).merge(additional_options))
30
51
  end
31
52
 
53
+ class << self
54
+ def option_parser(arguments)
55
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
56
+ parser.extend(Compass::Exec::GlobalOptionsParser)
57
+ parser.extend(Compass::Exec::ProjectOptionsParser)
58
+ parser.extend(CompileProjectOptionsParser)
59
+ end
60
+
61
+ def usage
62
+ option_parser([]).to_s
63
+ end
64
+
65
+ def primary; true; end
66
+
67
+ def description(command)
68
+ "Compile Sass stylesheets to CSS"
69
+ end
70
+
71
+ def parse!(arguments)
72
+ parser = option_parser(arguments)
73
+ parser.parse!
74
+ parse_arguments!(parser, arguments)
75
+ parser.options
76
+ end
77
+
78
+ def parse_arguments!(parser, arguments)
79
+ if arguments.size == 1
80
+ parser.options[:project_name] = arguments.shift
81
+ elsif arguments.size > 1
82
+ raise Compass::Error, "Too many arguments were specified."
83
+ end
84
+ end
85
+ end
32
86
  end
33
87
  end
34
- end
88
+ end
@@ -1,21 +1,77 @@
1
- require File.join(File.dirname(__FILE__), 'project_base')
2
- require File.join(File.dirname(__FILE__), 'update_project')
1
+ require 'compass/commands/project_base'
2
+ require 'compass/commands/update_project'
3
3
 
4
4
  module Compass
5
5
  module Commands
6
+ module ValidationOptionsParser
7
+ def set_options(opts)
8
+ opts.banner = %Q{
9
+ Usage: compass validate [path/to/project] [options]
10
+
11
+ Description:
12
+ Compile project at the path specified or the current
13
+ directory if not specified and then validate the
14
+ generated CSS.
15
+
16
+ Options:
17
+ }.strip.split("\n").map{|l| l.gsub(/^ {0,10}/,'')}.join("\n")
18
+
19
+ super
20
+ end
21
+ end
6
22
  class ValidateProject < ProjectBase
7
-
23
+
24
+ register :validate
25
+
8
26
  def initialize(working_path, options)
9
27
  super
10
28
  assert_project_directory_exists!
11
29
  end
12
30
 
13
31
  def perform
14
- require File.join(File.dirname(__FILE__), '..', 'validator')
32
+ require 'compass/validator'
15
33
  UpdateProject.new(working_path, options).perform
16
- Validator.new(project_css_subdirectory).validate()
34
+ Dir.chdir Compass.configuration.project_path do
35
+ Validator.new(project_css_subdirectory).validate()
36
+ end
37
+ end
38
+
39
+ class << self
40
+
41
+ def option_parser(arguments)
42
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
43
+ parser.extend(Compass::Exec::GlobalOptionsParser)
44
+ parser.extend(Compass::Exec::ProjectOptionsParser)
45
+ parser.extend(ValidationOptionsParser)
46
+ end
47
+
48
+ def usage
49
+ option_parser([]).to_s
50
+ end
51
+
52
+ def description(command)
53
+ "Validate your generated css."
54
+ end
55
+
56
+ def parse!(arguments)
57
+ parser = option_parser(arguments)
58
+ parser.parse!
59
+ parse_arguments!(parser, arguments)
60
+ parser.options
61
+ end
62
+
63
+ def parse_arguments!(parser, arguments)
64
+ if arguments.size == 1
65
+ parser.options[:project_name] = arguments.shift
66
+ elsif arguments.size == 0
67
+ # default to the current directory.
68
+ else
69
+ raise Compass::Error, "Too many arguments were specified."
70
+ end
71
+ end
72
+
17
73
  end
18
74
 
19
75
  end
20
76
  end
21
- end
77
+ end
@@ -1,12 +1,14 @@
1
1
  require 'fileutils'
2
2
  require 'pathname'
3
- require File.join(File.dirname(__FILE__), 'base')
4
- require File.join(File.dirname(__FILE__), 'update_project')
3
+ require 'compass/commands/base'
4
+ require 'compass/commands/update_project'
5
5
 
6
6
  module Compass
7
7
  module Commands
8
8
  class WatchProject < UpdateProject
9
9
 
10
+ register :watch
11
+
10
12
  attr_accessor :last_update_time, :last_sass_files
11
13
 
12
14
  def perform
@@ -19,7 +21,12 @@ module Compass
19
21
 
20
22
  puts ">>> Compass is watching for changes. Press Ctrl-C to Stop."
21
23
 
22
- require File.join(Compass.lib_directory, 'vendor', 'fssm')
24
+ begin
25
+ require 'fssm'
26
+ rescue LoadError
27
+ $: << File.join(Compass.lib_directory, 'vendor')
28
+ retry
29
+ end
23
30
 
24
31
  FSSM.monitor do |monitor|
25
32
  Compass.configuration.sass_load_paths.each do |load_path|
@@ -54,11 +61,11 @@ module Compass
54
61
  puts ">>> Change detected to: #{file}"
55
62
  compiler.run
56
63
  rescue StandardError => e
57
- ::Compass::Exec.report_error(e, options)
64
+ ::Compass::Exec::Helpers.report_error(e, options)
58
65
  end
59
66
  end
60
67
  end
61
68
 
62
69
  end
63
70
  end
64
- end
71
+ end
@@ -1,9 +1,33 @@
1
- require File.join(File.dirname(__FILE__), 'project_base')
1
+ require 'compass/commands/project_base'
2
2
 
3
3
  module Compass
4
4
  module Commands
5
+ module ConfigurationOptionsParser
6
+ def set_options(opts)
7
+ opts.banner = %Q{
8
+ Usage: compass config [path/to/config_file.rb] [options]
9
+
10
+ Description:
11
+ Generate a configuration file for the options specified.
12
+ Compass will recognize configuration files in the
13
+ following locations relative to the project root:
14
+ * #{Compass::Configuration::Helpers::KNOWN_CONFIG_LOCATIONS.join("
15
+ * ")}
16
+ Any other location, and you'll need to specify it when working with the command line tool using the -c option.
17
+
18
+ Options:
19
+ }.strip.split("\n").map{|l| l.gsub(/^ {0,10}/,'')}.join("\n")
20
+ opts.on("--debug [PROPERTY]", "Debug your configuration by printing out details.") do |prop|
21
+ self.options[:debug] = prop.nil? ? true : prop.to_sym
22
+ end
23
+
24
+ super
25
+ end
26
+ end
5
27
  class WriteConfiguration < ProjectBase
6
-
28
+
29
+ register :config
30
+
7
31
  include InstallerCommand
8
32
 
9
33
  def initialize(working_path, options)
@@ -11,8 +35,33 @@ module Compass
11
35
  assert_project_directory_exists!
12
36
  end
13
37
 
38
+ def add_project_configuration
39
+ Compass.add_project_configuration
40
+ end
41
+
14
42
  def perform
15
- installer.write_configuration_files(options[:configuration_file])
43
+ if options[:debug]
44
+ puts "Configuration sources:"
45
+ c = Compass.configuration
46
+ while c
47
+ print c.name
48
+ c = c.inherited_data
49
+ print ", " if c
50
+ end
51
+ print "\n"
52
+ Compass.configuration.debug.each do |prop, values|
53
+ if options[:debug].is_a?(Symbol)
54
+ next unless prop == options[:debug]
55
+ end
56
+ puts "***** #{prop} = #{values.first[:resolved].inspect} *****"
57
+ [:default, :value, :raw, :resolved].each do |kind|
58
+ puts "#{kind}: " + values.inject([]){|m, v| m << v[kind]}.map{|v| v.nil? ? '-' : v.inspect}.join(", ")
59
+ end
60
+ end
61
+ else
62
+ directory File.dirname(options[:configuration_file])
63
+ installer.write_configuration_files(options[:configuration_file])
64
+ end
16
65
  end
17
66
 
18
67
  def installer_args
@@ -23,6 +72,42 @@ module Compass
23
72
  false
24
73
  end
25
74
 
75
+ class << self
76
+
77
+ def option_parser(arguments)
78
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
79
+ parser.extend(Compass::Exec::GlobalOptionsParser)
80
+ parser.extend(Compass::Exec::ProjectOptionsParser)
81
+ parser.extend(ConfigurationOptionsParser)
82
+ end
83
+
84
+ def usage
85
+ option_parser([]).to_s
86
+ end
87
+
88
+ def description(command)
89
+ "Generate a configuration file for the provided command line options."
90
+ end
91
+
92
+ def parse!(arguments)
93
+ parser = option_parser(arguments)
94
+ parser.parse!
95
+ parse_arguments!(parser, arguments)
96
+ parser.options
97
+ end
98
+
99
+ def parse_arguments!(parser, arguments)
100
+ if arguments.size == 1
101
+ parser.options[:configuration_file] = arguments.shift
102
+ elsif arguments.size == 0
103
+ # default to the current directory.
104
+ else
105
+ raise Compass::Error, "Too many arguments were specified."
106
+ end
107
+ end
108
+
109
+ end
110
+
26
111
  end
27
112
  end
28
- end
113
+ end
@@ -13,8 +13,9 @@ module Compass
13
13
  self.options[:cache_location] ||= File.join(from, ".sass-cache")
14
14
  end
15
15
 
16
- def sass_files
17
- @sass_files || Dir.glob(separate("#{from}/**/[^_]*.sass"))
16
+ def sass_files(options = {})
17
+ exclude_partials = options.fetch(:exclude_partials, true)
18
+ @sass_files || Dir.glob(separate("#{from}/**/#{'[^_]' if exclude_partials}*.sass"))
18
19
  end
19
20
 
20
21
  def stylesheet_name(sass_file)
@@ -47,8 +48,16 @@ module Compass
47
48
  directory dir
48
49
  end
49
50
  sass_files.zip(css_files).each do |sass_filename, css_filename|
50
- compile sass_filename, css_filename, options
51
+ begin
52
+ compile sass_filename, css_filename, options
53
+ rescue Sass::SyntaxError => e
54
+ full_exception = Compass.configuration.environment == :development
55
+ logger.record :error, basename(sass_filename), "(Line #{e.sass_line}: #{e.message})"
56
+ write_file(css_filename,
57
+ Sass::SyntaxError.exception_to_css(e, :full_exception => full_exception),
58
+ options.merge(:force => true))
59
+ end
51
60
  end
52
61
  end
53
62
  end
54
- end
63
+ end