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
@@ -1,4 +1,4 @@
1
- require File.join(Compass.lib_directory, 'compass', 'installers')
1
+ require 'compass/installers'
2
2
 
3
3
  module Compass
4
4
  module Commands
@@ -6,26 +6,33 @@ module Compass
6
6
  include Compass::Installers
7
7
 
8
8
  def configure!
9
- read_project_configuration
10
- Compass.configuration.set_maybe(options)
11
- Compass.configuration.default_all(installer.configuration_defaults)
12
- Compass.configuration.set_defaults!
9
+ if respond_to?(:is_project_creation?) && is_project_creation?
10
+ Compass.add_configuration(options.delete(:project_type) || :stand_alone)
11
+ else
12
+ Compass.add_project_configuration(:project_type => options.delete(:project_type))
13
+ end
14
+ Compass.add_configuration(options, 'command_line')
15
+ if File.exists?(Compass.configuration.extensions_path)
16
+ Compass::Frameworks.discover(Compass.configuration.extensions_path)
17
+ end
18
+ Compass.add_configuration(installer.completed_configuration, 'installer')
19
+ end
20
+
21
+ def app
22
+ @app ||= Compass::AppIntegration.lookup(Compass.configuration.project_type)
13
23
  end
14
24
 
15
25
  def installer
16
- @installer ||= case options[:project_type]
17
- when :stand_alone
18
- StandAloneInstaller.new *installer_args
19
- when :rails
20
- RailsInstaller.new *installer_args
26
+ @installer ||= if options[:bare]
27
+ Compass::Installers::BareInstaller.new(*installer_args)
21
28
  else
22
- raise "Unknown project type: #{options[:project_type].inspect}"
29
+ app.installer(*installer_args)
23
30
  end
24
31
  end
25
32
 
26
33
  def installer_args
27
- [template_directory(options[:pattern]), project_directory, options]
34
+ [template_directory(options[:pattern] || "project"), project_directory, options]
28
35
  end
29
36
  end
30
37
  end
31
- end
38
+ end
@@ -0,0 +1,61 @@
1
+
2
+ require 'compass/commands/project_base'
3
+ require 'compass/commands/update_project'
4
+
5
+ module Compass
6
+ module Commands
7
+ module InteractiveOptionsParser
8
+ def set_options(opts)
9
+ opts.banner = %Q{
10
+ Usage: compass interactive [path/to/project] [options]
11
+
12
+ Description:
13
+ Interactively evaluate SassScript
14
+
15
+ Options:
16
+ }.strip.split("\n").map{|l| l.gsub(/^ {0,10}/,'')}.join("\n")
17
+
18
+ super
19
+ end
20
+ end
21
+ class Interactive < ProjectBase
22
+
23
+ register :interactive
24
+
25
+ def initialize(working_path, options)
26
+ super
27
+ end
28
+
29
+ def perform
30
+ require 'sass/repl'
31
+ Sass::Repl.new.run
32
+ end
33
+
34
+ class << self
35
+
36
+ def option_parser(arguments)
37
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
38
+ parser.extend(Compass::Exec::GlobalOptionsParser)
39
+ parser.extend(Compass::Exec::ProjectOptionsParser)
40
+ parser.extend(InteractiveOptionsParser)
41
+ end
42
+
43
+ def usage
44
+ option_parser([]).to_s
45
+ end
46
+
47
+ def description(command)
48
+ "Interactively evaluate SassScript"
49
+ end
50
+
51
+ def parse!(arguments)
52
+ parser = option_parser(arguments)
53
+ parser.parse!
54
+ parser.options
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+ end
61
+ end
@@ -1,9 +1,9 @@
1
1
  module Compass
2
2
  module Commands
3
- class ListFrameworks
3
+ class ListFrameworks < ProjectBase
4
4
  attr_accessor :options
5
5
  def initialize(working_path, options)
6
- self.options = options
6
+ super
7
7
  end
8
8
 
9
9
  def execute
@@ -1,14 +1,82 @@
1
1
  module Compass
2
2
  module Commands
3
- class PrintVersion
3
+ module VersionOptionsParser
4
+ def set_options(opts)
5
+ opts.banner = %Q{Usage: compass version [options]
6
+
7
+ Options:
8
+ }
9
+ opts.on_tail("-?", "-h", "--help", "Print out this message.") do
10
+ puts opts
11
+ exit
12
+ end
13
+ opts.on("-q", "--quiet", "Just print the version string.") do
14
+ self.options[:quiet] = true
15
+ end
16
+ opts.on("--major", "Print the major version number") do
17
+ self.options[:major] = true
18
+ self.options[:custom] = true
19
+ end
20
+ opts.on("--minor", "Print up to the minor version number") do
21
+ self.options[:major] = true
22
+ self.options[:minor] = true
23
+ self.options[:custom] = true
24
+ end
25
+ opts.on("--patch", "Print up to the patch version number") do
26
+ self.options[:major] = true
27
+ self.options[:minor] = true
28
+ self.options[:patch] = true
29
+ self.options[:custom] = true
30
+ end
31
+ opts.on("--revision", "Include the source control revision") do
32
+ self.options[:revision] = true
33
+ self.options[:custom] = true
34
+ end
35
+ end
36
+ end
37
+
38
+ class PrintVersion < Base
39
+ register :version
40
+
41
+ class << self
42
+ def option_parser(arguments)
43
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
44
+ parser.extend(VersionOptionsParser)
45
+ end
46
+ def usage
47
+ option_parser([]).to_s
48
+ end
49
+ def description(command)
50
+ "Print out version information"
51
+ end
52
+ def parse!(arguments)
53
+ parser = option_parser(arguments)
54
+ parser.parse!
55
+ parser.options
56
+ end
57
+ end
58
+
4
59
  attr_accessor :options
60
+
5
61
  def initialize(working_path, options)
6
62
  self.options = options
7
63
  end
8
64
 
9
65
  def execute
10
- if options[:quiet]
11
- # The quiet option may make scripting easier
66
+ if options[:custom]
67
+ version = ""
68
+ version << "#{Compass.version[:major]}" if options[:major]
69
+ version << ".#{Compass.version[:minor]}" if options[:minor]
70
+ version << ".#{Compass.version[:teeny]}" if options[:patch]
71
+ if options[:revision]
72
+ if version.size > 0
73
+ version << " [#{Compass.version[:rev][0..6]}]"
74
+ else
75
+ version << Compass.version[:rev]
76
+ end
77
+ end
78
+ puts version
79
+ elsif options[:quiet]
12
80
  puts ::Compass.version[:string]
13
81
  else
14
82
  lines = []
@@ -20,4 +88,4 @@ module Compass
20
88
  end
21
89
  end
22
90
  end
23
- end
91
+ end
@@ -1,7 +1,7 @@
1
1
  require 'fileutils'
2
2
  require 'pathname'
3
- require File.join(File.dirname(__FILE__), 'base')
4
- require File.join(File.dirname(__FILE__), 'installer_command')
3
+ require 'compass/commands/base'
4
+ require 'compass/commands/installer_command'
5
5
 
6
6
  module Compass
7
7
  module Commands
@@ -11,24 +11,29 @@ module Compass
11
11
  def initialize(working_path, options = {})
12
12
  super(working_path, options)
13
13
  self.project_name = determine_project_name(working_path, options)
14
- Compass.configuration.project_path = determine_project_directory(working_path, options)
14
+ Compass.add_configuration({:project_path => determine_project_directory(working_path, options)}, "implied")
15
+ configure!
15
16
  end
16
17
 
17
18
  def execute
18
- configure!
19
19
  super
20
20
  end
21
21
 
22
22
  protected
23
23
 
24
24
  def configure!
25
- read_project_configuration
26
- Compass.configuration.set_maybe(options)
27
- Compass.configuration.set_defaults!
25
+ add_project_configuration
26
+ if File.exists?(Compass.configuration.extensions_path)
27
+ Compass::Frameworks.discover(Compass.configuration.extensions_path)
28
+ end
29
+ end
30
+
31
+ def add_project_configuration
32
+ Compass.add_project_configuration(options[:configuration_file])
28
33
  end
29
34
 
30
35
  def projectize(path)
31
- File.join(project_directory, separate(path))
36
+ Compass.projectize(path)
32
37
  end
33
38
 
34
39
  def project_directory
@@ -47,31 +52,6 @@ module Compass
47
52
  Compass.configuration.images_dir
48
53
  end
49
54
 
50
- # Read the configuration file for this project
51
- def read_project_configuration
52
- if file = detect_configuration_file
53
- Compass.configuration.parse(file) if File.readable?(file)
54
- end
55
- end
56
-
57
- def explicit_config_file_must_be_readable?
58
- true
59
- end
60
-
61
- # TODO: Deprecate the src/config.rb location.
62
- KNOWN_CONFIG_LOCATIONS = [".compass/config.rb", "config/compass.config", "config.rb", "src/config.rb"]
63
-
64
- # Finds the configuration file, if it exists in a known location.
65
- def detect_configuration_file
66
- if options[:configuration_file]
67
- if explicit_config_file_must_be_readable? && !File.readable?(options[:configuration_file])
68
- raise Compass::Error, "Configuration file, #{file}, not found or not readable."
69
- end
70
- return options[:configuration_file]
71
- end
72
- KNOWN_CONFIG_LOCATIONS.map{|f| projectize(f)}.detect{|f| File.exists?(f)}
73
- end
74
-
75
55
  def assert_project_directory_exists!
76
56
  if File.exists?(project_directory) && !File.directory?(project_directory)
77
57
  raise Compass::FilesystemConflict.new("#{project_directory} is not a directory.")
@@ -109,4 +89,4 @@ module Compass
109
89
 
110
90
  end
111
91
  end
112
- end
92
+ end
@@ -0,0 +1,162 @@
1
+ require 'compass/commands/project_base'
2
+ require 'compass/commands/update_project'
3
+
4
+ module Compass
5
+ module Commands
6
+ module StatsOptionsParser
7
+ def set_options(opts)
8
+ opts.banner = %Q{
9
+ Usage: compass stats [path/to/project] [options]
10
+
11
+ Description:
12
+ Compile project at the path specified (or the current
13
+ directory if not specified) and then compute statistics
14
+ for the sass and css files in the project.
15
+
16
+ Options:
17
+ }.strip.split("\n").map{|l| l.gsub(/^ {0,10}/,'')}.join("\n")
18
+
19
+ super
20
+ end
21
+ end
22
+ class ProjectStats < UpdateProject
23
+
24
+ register :stats
25
+
26
+ def initialize(working_path, options)
27
+ super
28
+ assert_project_directory_exists!
29
+ end
30
+
31
+ def perform
32
+ super
33
+ require 'compass/stats'
34
+ compiler = new_compiler_instance
35
+ sass_files = sorted_sass_files(compiler)
36
+ rows = [[ :-, :-, :-, :-, :-, :-, :- ],
37
+ [ 'Filename', 'Rules', 'Properties', 'Mixins Defs', 'Mixins Used', 'CSS Rules', 'CSS Properties' ],
38
+ [ :-, :-, :-, :-, :-, :-, :- ]]
39
+ maximums = [ 8, 5, 10, 14, 11, 9, 14 ]
40
+ alignments = [ :left, :right, :right, :right, :right, :right, :right ]
41
+ delimiters = [ ['| ', ' |'], [' ', ' |'], [' ', ' |'], [' ', ' |'], [' ', ' |'], [' ', ' |'], [' ', ' |'] ]
42
+ totals = [ "Total (#{sass_files.size} files):", 0, 0, 0, 0, 0, 0 ]
43
+
44
+ sass_files.each do |sass_file|
45
+ css_file = compiler.corresponding_css_file(sass_file) unless sass_file[0..0] == '_'
46
+ row = filename_columns(sass_file)
47
+ row += sass_columns(sass_file)
48
+ row += css_columns(css_file)
49
+ row.each_with_index do |c, i|
50
+ maximums[i] = [maximums[i].to_i, c.size].max
51
+ totals[i] = totals[i] + c.to_i if i > 0
52
+ end
53
+ rows << row
54
+ end
55
+ rows << [:-] * 7
56
+ rows << totals.map{|t| t.to_s}
57
+ rows << [:-] * 7
58
+ rows.each do |row|
59
+ row.each_with_index do |col, i|
60
+ print pad(col, maximums[i], :align => alignments[i], :left => delimiters[i].first, :right => delimiters[i].last)
61
+ end
62
+ print "\n"
63
+ end
64
+ if @missing_css_parser
65
+ puts "\nInstall css_parser to enable stats on your css files:\n\n\tgem install css_parser"
66
+ end
67
+ end
68
+
69
+ def pad(c, max, options = {})
70
+ options[:align] ||= :left
71
+ if c == :-
72
+ filler = '-'
73
+ c = ''
74
+ else
75
+ filler = ' '
76
+ end
77
+ spaces = max - c.size
78
+ filled = filler * [spaces,0].max
79
+ "#{options[:left]}#{filled if options[:align] == :right}#{c}#{filled if options[:align] == :left}#{options[:right]}"
80
+ end
81
+
82
+ def sorted_sass_files(compiler)
83
+ sass_files = compiler.sass_files(:exclude_partials => false)
84
+ sass_files.map! do |s|
85
+ filename = Compass.deprojectize(s, File.join(Compass.configuration.project_path, Compass.configuration.sass_dir))
86
+ [s, File.dirname(filename), File.basename(filename)]
87
+ end
88
+ sass_files = sass_files.sort_by do |s,d,f|
89
+ File.join(d, f[0] == ?_ ? f[1..-1] : f)
90
+ end
91
+ sass_files.map!{|s,d,f| s}
92
+ end
93
+
94
+ def filename_columns(sass_file)
95
+ filename = Compass.deprojectize(sass_file, working_path)
96
+ [filename]
97
+ end
98
+
99
+ def sass_columns(sass_file)
100
+ sf = Compass::Stats::SassFile.new(sass_file)
101
+ sf.analyze!
102
+ %w(rule_count prop_count mixin_def_count mixin_count).map do |t|
103
+ sf.send(t).to_s
104
+ end
105
+ end
106
+
107
+ def css_columns(css_file)
108
+ if File.exists?(css_file)
109
+ cf = Compass::Stats::CssFile.new(css_file)
110
+ cf.analyze!
111
+ %w(selector_count prop_count).map do |t|
112
+ cf.send(t).to_s
113
+ end
114
+ else
115
+ return [ '--', '--' ]
116
+ end
117
+ rescue LoadError
118
+ @missing_css_parser = true
119
+ return [ 'DISABLED', 'DISABLED' ]
120
+ end
121
+
122
+ class << self
123
+
124
+ def option_parser(arguments)
125
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
126
+ parser.extend(Compass::Exec::GlobalOptionsParser)
127
+ parser.extend(Compass::Exec::ProjectOptionsParser)
128
+ parser.extend(StatsOptionsParser)
129
+ end
130
+
131
+ def usage
132
+ option_parser([]).to_s
133
+ end
134
+
135
+ def description(command)
136
+ "Report statistics about your stylesheets"
137
+ end
138
+
139
+ def primary; false; end
140
+
141
+ def parse!(arguments)
142
+ parser = option_parser(arguments)
143
+ parser.parse!
144
+ parse_arguments!(parser, arguments)
145
+ parser.options
146
+ end
147
+
148
+ def parse_arguments!(parser, arguments)
149
+ if arguments.size == 1
150
+ parser.options[:project_name] = arguments.shift
151
+ elsif arguments.size == 0
152
+ # default to the current directory.
153
+ else
154
+ raise Compass::Error, "Too many arguments were specified."
155
+ end
156
+ end
157
+
158
+ end
159
+
160
+ end
161
+ end
162
+ end