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,28 @@
1
+ module Compass
2
+ module AppIntegration
3
+ module StandAlone
4
+ module ConfigurationDefaults
5
+ def default_project_type
6
+ :stand_alone
7
+ end
8
+
9
+ def sass_dir_without_default
10
+ "src"
11
+ end
12
+
13
+ def javascripts_dir_without_default
14
+ "javascripts"
15
+ end
16
+
17
+ def css_dir_without_default
18
+ "stylesheets"
19
+ end
20
+
21
+ def images_dir_without_default
22
+ "images"
23
+ end
24
+ end
25
+
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,83 @@
1
+ module Compass
2
+ module Installers
3
+ class Base
4
+ end
5
+ class ManifestInstaller < Base
6
+ end
7
+ end
8
+
9
+ module AppIntegration
10
+ module StandAlone
11
+ class Installer < Compass::Installers::ManifestInstaller
12
+
13
+ def init
14
+ directory targetize("")
15
+ super
16
+ end
17
+
18
+ def write_configuration_files(config_file = nil)
19
+ config_file ||= targetize('config.rb')
20
+ write_file config_file, config_contents
21
+ end
22
+
23
+ def config_files_exist?
24
+ File.exists? targetize('config.rb')
25
+ end
26
+
27
+ def config_contents
28
+ project_path, Compass.configuration.project_path = Compass.configuration.project_path, nil
29
+ Compass.configuration.serialize
30
+ ensure
31
+ Compass.configuration.project_path = project_path
32
+ end
33
+
34
+ def prepare
35
+ write_configuration_files unless config_files_exist? || !@manifest.generate_config?
36
+ end
37
+
38
+ def completed_configuration
39
+ nil
40
+ end
41
+
42
+ def finalize(options = {})
43
+ if options[:create] && !manifest.welcome_message_options[:replace]
44
+ puts <<-NEXTSTEPS
45
+
46
+ *********************************************************************
47
+ Congratulations! Your compass project has been created.
48
+
49
+ You may now add and edit sass stylesheets in the #{Compass.configuration.sass_dir} subdirectory of your project.
50
+
51
+ Sass files beginning with an underscore are called partials and won't be
52
+ compiled to CSS, but they can be imported into other sass stylesheets.
53
+
54
+ You can configure your project by editing the config.rb configuration file.
55
+
56
+ You must compile your sass stylesheets into CSS when they change.
57
+ This can be done in one of the following ways:
58
+ 1. To compile on demand:
59
+ compass compile [path/to/project]
60
+ 2. To monitor your project for changes and automatically recompile:
61
+ compass watch [path/to/project]
62
+
63
+ More Resources:
64
+ * Wiki: http://wiki.github.com/chriseppstein/compass
65
+ * Sass: http://sass-lang.com
66
+ * Community: http://groups.google.com/group/compass-users/
67
+
68
+ NEXTSTEPS
69
+ end
70
+ puts manifest.welcome_message if manifest.welcome_message
71
+ if manifest.has_stylesheet? && !manifest.welcome_message_options[:replace]
72
+ puts "\nTo import your new stylesheets add the following lines of HTML (or equivalent) to your webpage:"
73
+ puts stylesheet_links
74
+ end
75
+ end
76
+
77
+ def compilation_required?
78
+ @manifest.compile?
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,11 @@
1
+ module Compass::Commands
2
+ end
3
+
4
+ require 'compass/commands/registry'
5
+
6
+ %w(base generate_grid_background help list_frameworks project_base
7
+ update_project watch_project create_project installer_command
8
+ print_version project_stats stamp_pattern validate_project
9
+ write_configuration interactive).each do |lib|
10
+ require "compass/commands/#{lib}"
11
+ end
@@ -1,6 +1,9 @@
1
1
  module Compass
2
2
  module Commands
3
3
  class Base
4
+ def self.register(command_name)
5
+ Compass::Commands[command_name] = self
6
+ end
4
7
 
5
8
  include Actions
6
9
 
@@ -30,4 +33,4 @@ module Compass
30
33
 
31
34
  end
32
35
  end
33
- end
36
+ end
@@ -1,13 +1,116 @@
1
1
  require 'fileutils'
2
- require File.join(File.dirname(__FILE__), 'stamp_pattern')
3
- require File.join(File.dirname(__FILE__), 'update_project')
2
+ require 'compass/commands/stamp_pattern'
4
3
 
5
4
  module Compass
6
5
  module Commands
6
+ module CreateProjectOptionsParser
7
+ def set_options(opts)
8
+
9
+ if $command == "create"
10
+ opts.banner = %Q{
11
+ Usage: compass create path/to/project [options]
12
+
13
+ Description:
14
+ Create a new compass project at the path specified.
15
+
16
+ Options:
17
+ }.split("\n").map{|l| l.gsub(/^ */,'')}.join("\n")
18
+
19
+ opts.on_tail("--bare", "Don't generate any Sass or CSS files.") do
20
+ self.options[:bare] = true
21
+ end
22
+ else
23
+ opts.banner = %Q{
24
+ Usage: compass init project_type path/to/project [options]
25
+
26
+ Description:
27
+ Initialize an existing project at the path specified.
28
+
29
+ Supported Project Types:
30
+ * rails
31
+
32
+ Options:
33
+ }.split("\n").map{|l| l.gsub(/^ */,'')}.join("\n").strip
34
+ end
35
+
36
+ opts.on("--using FRAMEWORK", "Framework to use when creating the project.") do |framework|
37
+ framework = framework.split('/', 2)
38
+ self.options[:framework] = framework[0]
39
+ self.options[:pattern] = framework[1]
40
+ end
41
+
42
+ super
43
+ end
44
+ end
45
+
7
46
  class CreateProject < StampPattern
8
47
 
9
- def initialize(working_path, options)
10
- super(working_path, options.merge(:pattern => "project", :pattern_name => nil))
48
+ register :create
49
+ register :init
50
+
51
+ class << self
52
+ def option_parser(arguments)
53
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
54
+ parser.extend(Compass::Exec::GlobalOptionsParser)
55
+ parser.extend(Compass::Exec::ProjectOptionsParser)
56
+ parser.extend(CreateProjectOptionsParser)
57
+ end
58
+
59
+ def usage
60
+ option_parser([]).to_s
61
+ end
62
+
63
+ def description(command)
64
+ if command.to_sym == :create
65
+ "Create a new compass project"
66
+ else
67
+ "Initialize an existing project"
68
+ end
69
+ end
70
+
71
+ def primary; true; end
72
+
73
+ def parse!(arguments)
74
+ parser = option_parser(arguments)
75
+ parse_options!(parser, arguments)
76
+ parse_arguments!(parser, arguments)
77
+ if parser.options[:framework] && parser.options[:bare]
78
+ raise Compass::Error, "A bare project cannot be created when a framework is specified."
79
+ end
80
+ set_default_arguments(parser)
81
+ parser.options
82
+ end
83
+
84
+ def parse_init!(arguments)
85
+ parser = option_parser(arguments)
86
+ parse_options!(parser, arguments)
87
+ if arguments.size > 0
88
+ parser.options[:project_type] = arguments.shift.to_sym
89
+ end
90
+ parse_arguments!(parser, arguments)
91
+ set_default_arguments(parser)
92
+ parser.options
93
+ end
94
+
95
+ def parse_options!(parser, arguments)
96
+ parser.parse!
97
+ parser
98
+ end
99
+
100
+ def parse_arguments!(parser, arguments)
101
+ if arguments.size == 1
102
+ parser.options[:project_name] = arguments.shift
103
+ elsif arguments.size == 0
104
+ # default to the current directory.
105
+ else
106
+ raise Compass::Error, "Too many arguments were specified."
107
+ end
108
+ end
109
+
110
+ def set_default_arguments(parser)
111
+ parser.options[:framework] ||= :compass
112
+ parser.options[:pattern] ||= "project"
113
+ end
11
114
  end
12
115
 
13
116
  def is_project_creation?
@@ -16,4 +119,4 @@ module Compass
16
119
 
17
120
  end
18
121
  end
19
- end
122
+ end
@@ -1,19 +1,86 @@
1
- require File.join(File.dirname(__FILE__), 'project_base')
2
- require File.join(File.dirname(__FILE__), 'update_project')
3
- require File.join(File.dirname(__FILE__), '..', 'grid_builder')
1
+ require 'compass/commands/project_base'
2
+ require 'compass/commands/update_project'
3
+ require 'compass/grid_builder'
4
4
 
5
5
  module Compass
6
6
  module Commands
7
+ module GridBackgroundOptionsParser
8
+ def set_options(opts)
9
+ banner = %Q{Usage: compass grid-img W+GxH [path/to/grid.png]
10
+
11
+ Description:
12
+ Generates a background image that can be used to check grid alignment.
13
+
14
+ Height is optional and defaults to 20px
15
+
16
+ By default, the image generated will be named "grid.png"
17
+ and be found in the images directory.
18
+
19
+ This command requires that you have both ImageMagick and RMagick installed.
20
+
21
+ Examples:
22
+
23
+ compass grid-img 40+10 # 40px column, 10px gutter, 20px height
24
+ compass grid-img 40+20x28 # 40px column, 20px gutter, 28px height
25
+ compass grid-img 60+20x28 images/wide_grid.png
26
+
27
+ Options:
28
+ }
29
+ opts.banner = banner
30
+
31
+ super
32
+ end
33
+ end
7
34
  class GenerateGridBackground < ProjectBase
35
+
8
36
  include Actions
37
+
38
+ register :"grid-img"
39
+
40
+ class << self
41
+ def option_parser(arguments)
42
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
43
+ parser.extend(Compass::Exec::GlobalOptionsParser)
44
+ parser.extend(GridBackgroundOptionsParser)
45
+ end
46
+
47
+ def usage
48
+ option_parser([]).to_s
49
+ end
50
+
51
+ def description(command)
52
+ "Generates a grid background image."
53
+ end
54
+
55
+ def parse!(arguments)
56
+ parser = option_parser(arguments)
57
+ parser.parse!
58
+ if arguments.size == 0
59
+ raise OptionParser::ParseError, "Please specify the grid dimensions."
60
+ end
61
+ parser.options[:grid_dimensions] = arguments.shift
62
+ parser.options[:grid_filename] = arguments.shift
63
+ parser.options
64
+ end
65
+ end
9
66
  def initialize(working_path, options)
10
67
  super
11
68
  assert_project_directory_exists!
69
+ Compass.add_configuration(options, 'command_line')
12
70
  end
13
71
 
14
72
  def perform
15
- column_width, gutter_width = options[:grid_dimensions].split(/\+/).map{|d| d.to_i}
16
- unless GridBuilder.new(options.merge(:column_width => column_width, :gutter_width => gutter_width, :output_path => projectize(project_images_subdirectory), :working_path => self.working_path)).generate!
73
+ unless options[:grid_dimensions] =~ /^(\d+)\+(\d+)(?:x(\d+))?$/
74
+ puts "ERROR: '#{options[:grid_dimensions]}' is not valid."
75
+ puts "Dimensions should be specified like: 30+10x20"
76
+ puts "where 30 is the column width, 10 is the gutter width, and 20 is the (optional) height."
77
+ return
78
+ end
79
+ column_width = $1.to_i
80
+ gutter_width = $2.to_i
81
+ height = $3.to_i if $3
82
+ filename = options[:grid_filename] || projectize("#{project_images_subdirectory}/grid.png")
83
+ unless GridBuilder.new(options.merge(:column_width => column_width, :gutter_width => gutter_width, :height => height, :filename => filename, :working_path => self.working_path)).generate!
17
84
  puts "ERROR: Some library dependencies appear to be missing."
18
85
  puts "Have you installed rmagick? If not, please run:"
19
86
  puts "sudo gem install rmagick"
@@ -21,4 +88,4 @@ module Compass
21
88
  end
22
89
  end
23
90
  end
24
- end
91
+ end
@@ -0,0 +1,89 @@
1
+ module Compass
2
+ module Commands
3
+ module HelpOptionsParser
4
+ def set_options(opts)
5
+ banner = %Q{Usage: compass help [command]
6
+
7
+ Description:
8
+ The Compass Stylesheet Authoring Framework helps you
9
+ build and maintain your stylesheets and makes it easy
10
+ for you to use stylesheet libraries provided by others.
11
+
12
+ To get help on a particular command please specify the command.
13
+
14
+ }
15
+
16
+ primary_commands = Compass::Commands.all.select do |c|
17
+ cmd = Compass::Commands[c]
18
+ cmd.respond_to?(:primary) && cmd.primary
19
+ end
20
+ other_commands = Compass::Commands.all - primary_commands
21
+
22
+ banner << command_list("Primary Commands:", primary_commands)
23
+ banner << command_list("Other Commands:", other_commands)
24
+
25
+ banner << "\nAvailable Frameworks & Patterns:\n\n"
26
+ Compass::Frameworks::ALL.each do |framework|
27
+ banner << " * #{framework.name}\n"
28
+ framework.template_directories.each do |pattern|
29
+ banner << " - #{framework.name}/#{pattern}"
30
+ if description = framework.manifest(pattern).description
31
+ banner << "\t- #{description}"
32
+ end
33
+ banner << "\n"
34
+ end
35
+ end
36
+
37
+ opts.banner = banner
38
+
39
+ super
40
+ end
41
+
42
+ def command_list(header, commands)
43
+ list = "#{header}\n"
44
+ commands.sort_by{|c| c.to_s}.each do |command|
45
+ list << " * #{command}"
46
+ if Compass::Commands[command].respond_to? :description
47
+ list << "\t- #{Compass::Commands[command].description(command)}"
48
+ end
49
+ list << "\n"
50
+ end
51
+ list
52
+ end
53
+ end
54
+ class Help < Base
55
+ register :help
56
+
57
+ class << self
58
+ def option_parser(arguments)
59
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
60
+ parser.extend(HelpOptionsParser)
61
+ end
62
+ def usage
63
+ option_parser([]).to_s
64
+ end
65
+ def description(command)
66
+ "Get help on a compass command or extension"
67
+ end
68
+ def parse!(arguments)
69
+ parser = option_parser(arguments)
70
+ parser.parse!
71
+ parser.options[:help_command] = arguments.shift || 'help'
72
+ parser.options
73
+ end
74
+ end
75
+
76
+ def execute
77
+ if Compass::Commands.command_exists? options[:help_command]
78
+ $command = options[:help_command]
79
+ puts Compass::Commands[options[:help_command]].usage
80
+ $command = "help"
81
+ elsif Compass::Frameworks.template_exists? options[:help_command]
82
+ puts Compass::Frameworks.template_usage(options[:help_command])
83
+ else
84
+ raise OptionParser::ParseError, "No such command: #{options[:help_command]}"
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end