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,13 @@
1
+ Given /^the "([^\"]*)" directory exists$/ do |directory|
2
+ FileUtils.mkdir_p directory
3
+ end
4
+
5
+ Given /^and I have a fake extension at (.*)$/ do |directory|
6
+ FileUtils.mkdir_p File.join(directory, 'stylesheets')
7
+ FileUtils.mkdir_p File.join(directory, 'templates/project')
8
+ end
9
+
10
+ Then /^the list of frameworks includes "([^\"]*)"$/ do |framework|
11
+ @last_result.split("\n").map{|f| f.strip}.should include(framework)
12
+ end
13
+
@@ -1,12 +1,13 @@
1
1
  module Compass
2
2
  end
3
3
 
4
- ['dependencies', 'sass_extensions', 'core_ext', 'version', 'errors'].each do |file|
5
- require File.join(File.dirname(__FILE__), 'compass', file)
4
+ %w(dependencies sass_extensions core_ext version errors).each do |lib|
5
+ require "compass/#{lib}"
6
6
  end
7
7
 
8
8
  module Compass
9
9
  extend Compass::Version
10
+ VERSION = "#{version[:major]}.#{version[:minor]}.#{version[:patch]}"
10
11
  def base_directory
11
12
  File.expand_path(File.join(File.dirname(__FILE__), '..'))
12
13
  end
@@ -16,8 +17,6 @@ module Compass
16
17
  module_function :base_directory, :lib_directory
17
18
  end
18
19
 
19
- require File.join(File.dirname(__FILE__), 'compass', 'configuration')
20
- require File.join(File.dirname(__FILE__), 'compass', 'frameworks')
21
- require File.join(File.dirname(__FILE__), 'compass', 'app_integration')
22
-
23
-
20
+ %w(configuration frameworks app_integration).each do |lib|
21
+ require "compass/#{lib}"
22
+ end
@@ -32,6 +32,7 @@ module Compass
32
32
  def write_file(file_name, contents, options = nil, binary = false)
33
33
  options ||= self.options if self.respond_to?(:options)
34
34
  skip_write = options[:dry_run]
35
+ contents = process_erb(contents, options[:erb]) if options[:erb]
35
36
  if File.exists?(file_name)
36
37
  existing_contents = IO.read(file_name)
37
38
  if existing_contents == contents
@@ -47,7 +48,7 @@ module Compass
47
48
  logger.record :create, basename(file_name)
48
49
  end
49
50
  if skip_write
50
- FileUtils.touch file_name
51
+ FileUtils.touch file_name unless options[:dry_run]
51
52
  else
52
53
  mode = "w"
53
54
  mode << "b" if binary
@@ -57,6 +58,11 @@ module Compass
57
58
  end
58
59
  end
59
60
 
61
+ def process_erb(contents, ctx = nil)
62
+ ctx = Object.new.instance_eval("binding") unless ctx.is_a? Binding
63
+ ERB.new(contents).result(ctx)
64
+ end
65
+
60
66
  # Compile one Sass file
61
67
  def compile(sass_filename, css_filename, options)
62
68
  if options[:force] || Sass::Plugin.exact_stylesheet_needs_update?(css_filename, sass_filename)
@@ -1,5 +1,24 @@
1
- # If we're running inside Rails
2
- require File.join(File.dirname(__FILE__), 'app_integration', 'rails') if defined?(ActionController::Base)
1
+ %w(stand_alone rails merb).each do |lib|
2
+ require "compass/app_integration/#{lib}"
3
+ end
3
4
 
4
- # If we're running inside Merb
5
- require File.join(File.dirname(__FILE__), 'app_integration', 'merb') if defined?(Merb::Plugins)
5
+ module Compass
6
+ module AppIntegration
7
+ module Helpers
8
+ def lookup(project_type)
9
+ eval "Compass::AppIntegration::#{camelize(project_type)}"
10
+ rescue NameError
11
+ raise Compass::Error, "No application integration exists for #{project_type}"
12
+ end
13
+
14
+ protected
15
+
16
+ # Stolen from ActiveSupport
17
+ def camelize(s)
18
+ s.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
19
+ end
20
+
21
+ end
22
+ extend Helpers
23
+ end
24
+ end
@@ -1,43 +1 @@
1
- # To configure Merb to use compass do the following:
2
- # Merb::BootLoader.after_app_loads do
3
- # require 'merb-haml'
4
- # require 'compass'
5
- # end
6
- #
7
- # To use a different sass stylesheets locations as is recommended by compass
8
- # add this configuration to your configuration block:
9
- #
10
- # Merb::Config.use do |c|
11
- # c[:compass] = {
12
- # :stylesheets => 'app/stylesheets',
13
- # :compiled_stylesheets => 'public/stylesheets/compiled'
14
- # }
15
- # end
16
-
17
- Merb::BootLoader.after_app_loads do
18
- #set up sass if haml load didn't do it -- this happens when using a non-default stylesheet location.
19
- unless defined?(Sass::Plugin)
20
- require "sass/plugin"
21
- Sass::Plugin.options = Merb::Config[:sass] if Merb::Config[:sass]
22
- end
23
-
24
- # default the compass configuration if they didn't set it up yet.
25
- Merb::Config[:compass] ||= {}
26
-
27
- # default sass stylesheet location unless configured to something else
28
- Merb::Config[:compass][:stylesheets] ||= Merb.dir_for(:stylesheet) / "sass"
29
-
30
- # default sass css location unless configured to something else
31
- Merb::Config[:compass][:compiled_stylesheets] ||= Merb.dir_for(:stylesheet)
32
-
33
- #define the template hash for the project stylesheets as well as the framework stylesheets.
34
- template_location = {
35
- Merb::Config[:compass][:stylesheets] => Merb::Config[:compass][:compiled_stylesheets]
36
- }
37
- Compass::Frameworks::ALL.each do |framework|
38
- template_location[framework.stylesheets_directory] = Merb::Config[:compass][:compiled_stylesheets]
39
- end
40
-
41
- #configure Sass to know about all these sass locations.
42
- Sass::Plugin.options[:template_location] = template_location
43
- end
1
+ require 'compass/app_integration/merb/runtime' if defined?(Merb::Plugins)
@@ -0,0 +1,63 @@
1
+ # To configure Merb to use compass do the following:
2
+ #
3
+ # Add dependencies to config/dependencies.rb
4
+ #
5
+ # dependency "haml", ">=2.2.0"
6
+ # dependency "merb-haml", merb_gems_version
7
+ # dependency "chriseppstein-compass", :require_as => 'compass'
8
+ #
9
+ #
10
+ # To use a different sass stylesheets locations as is recommended by compass
11
+ # add this configuration to your configuration block:
12
+ #
13
+ # Merb::BootLoader.before_app_loads do
14
+ # Merb::Plugins.config[:compass] = {
15
+ # :stylesheets => "app/stylesheets",
16
+ # :compiled_stylesheets => "public/stylesheets/compiled"
17
+ # }
18
+ # end
19
+ #
20
+ module Compass
21
+ def self.setup_template_location
22
+ # default the compass configuration if they didn't set it up yet.
23
+ Merb::Plugins.config[:compass] ||= {}
24
+
25
+ # default sass stylesheet location unless configured to something else
26
+ Merb::Plugins.config[:compass][:stylesheets] ||= Merb.dir_for(:stylesheet) / "sass"
27
+
28
+ # default sass css location unless configured to something else
29
+ Merb::Plugins.config[:compass][:compiled_stylesheets] ||= Merb.dir_for(:stylesheet)
30
+
31
+ #define the template hash for the project stylesheets as well as the framework stylesheets.
32
+ template_location = {
33
+ Merb::Plugins.config[:compass][:stylesheets] => Merb::Plugins.config[:compass][:compiled_stylesheets]
34
+ }
35
+ Compass::Frameworks::ALL.each do |framework|
36
+ template_location[framework.stylesheets_directory] = Merb::Plugins.config[:compass][:compiled_stylesheets]
37
+ end
38
+
39
+ # merge existing template locations if present
40
+ if Merb::Plugins.config[:sass][:template_location].is_a?(Hash)
41
+ template_location.merge!(Merb::Plugins.config[:sass][:template_location])
42
+ Merb::Plugins.config[:sass][:template_location] = template_location
43
+ end
44
+
45
+ #configure Sass to know about all these sass locations.
46
+ Sass::Plugin.options[:template_location] = template_location
47
+ end
48
+ end
49
+
50
+ Merb::BootLoader.after_app_loads do
51
+ #set up sass if haml load didn't do it -- this happens when using a non-default stylesheet location.
52
+ unless defined?(Sass::Plugin)
53
+ require "sass/plugin"
54
+ if Merb::Plugins.config[:sass]
55
+ Sass::Plugin.options = Merb::Plugins.config[:sass]
56
+ # support old (deprecatd Merb::Config[:sass] option)
57
+ elsif Merb::Config[:sass]
58
+ Sass::Plugin.options = Merb::Config[:sass]
59
+ end
60
+ end
61
+
62
+ Compass.setup_template_location
63
+ end
@@ -1,12 +1,26 @@
1
- unless defined?(Compass::RAILS_LOADED)
2
- Compass::RAILS_LOADED = true
3
- require File.join(File.dirname(__FILE__), 'rails', 'action_controller')
4
- require File.join(File.dirname(__FILE__), 'rails', 'sass_plugin')
5
- require File.join(File.dirname(__FILE__), 'rails', 'urls')
6
- # Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
7
- class Sass::Script::Functions::EvaluationContext
8
- include Sass::Script::Functions
9
- private
10
- include ActionView::Helpers::AssetTagHelper
1
+ %w(configuration_defaults installer).each do |lib|
2
+ require "compass/app_integration/rails/#{lib}"
3
+ end
4
+
5
+ require 'compass/app_integration/rails/runtime' if defined?(ActionController::Base)
6
+
7
+
8
+ module Compass
9
+ module AppIntegration
10
+ module Rails
11
+
12
+ extend self
13
+
14
+ def installer(*args)
15
+ Installer.new(*args)
16
+ end
17
+
18
+ def configuration
19
+ Compass::Configuration::Data.new('rails').
20
+ extend(ConfigurationDefaults)
21
+ end
22
+
23
+ end
11
24
  end
12
25
  end
26
+
@@ -0,0 +1,45 @@
1
+ module Compass
2
+ module AppIntegration
3
+ module Rails
4
+ module ConfigurationDefaults
5
+
6
+ def project_type_without_default
7
+ :rails
8
+ end
9
+
10
+ def default_images_dir
11
+ File.join("public", "images")
12
+ end
13
+
14
+ def default_fonts_dir
15
+ File.join("public", "fonts")
16
+ end
17
+
18
+ def default_javascripts_dir
19
+ File.join("public", "javascripts")
20
+ end
21
+
22
+ def default_http_images_path
23
+ "/images"
24
+ end
25
+
26
+ def default_http_javascripts_path
27
+ "/javascripts"
28
+ end
29
+
30
+ def default_http_fonts_path
31
+ "/fonts"
32
+ end
33
+
34
+ def default_http_stylesheets_path
35
+ "/stylesheets"
36
+ end
37
+
38
+ def default_extensions_dir
39
+ "vendor/plugins/compass/extensions"
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,127 @@
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 Rails
11
+ class Installer < Compass::Installers::ManifestInstaller
12
+
13
+ def completed_configuration
14
+ config = {}
15
+ config[:sass_dir] = prompt_sass_dir unless sass_dir_without_default
16
+ config[:css_dir] = prompt_css_dir unless css_dir_without_default
17
+ config unless config.empty?
18
+ end
19
+
20
+ def write_configuration_files(config_file = nil)
21
+ config_file ||= targetize('config/compass.rb')
22
+ directory File.dirname(config_file)
23
+ write_file config_file, config_contents
24
+ directory File.dirname(targetize('config/initializers/compass.rb'))
25
+ write_file targetize('config/initializers/compass.rb'), initializer_contents
26
+ end
27
+
28
+ def config_files_exist?
29
+ File.exists?(targetize('config/compass.config')) &&
30
+ File.exists?(targetize('config/initializers/compass.rb'))
31
+ end
32
+
33
+ def prepare
34
+ write_configuration_files unless config_files_exist?
35
+ end
36
+
37
+ def finalize(options = {})
38
+ if options[:create]
39
+ puts <<-NEXTSTEPS
40
+
41
+ Congratulations! Your rails project has been configured to use Compass.
42
+ Sass will automatically compile your stylesheets during the next
43
+ page request and keep them up to date when they change.
44
+ Make sure you restart your server!
45
+ NEXTSTEPS
46
+ end
47
+ if manifest.has_stylesheet?
48
+ puts "\nNext add these lines to the head of your layouts:\n\n"
49
+ puts stylesheet_links
50
+ puts "\n(You are using haml, aren't you?)"
51
+ end
52
+ end
53
+
54
+
55
+ def install_location_for_html(to, options)
56
+ separate("public/#{pattern_name_as_dir}#{to}")
57
+ end
58
+
59
+ def prompt_sass_dir
60
+ recommended_location = separate('app/stylesheets')
61
+ default_location = separate('public/stylesheets/sass')
62
+ print %Q{Compass recommends that you keep your stylesheets in #{recommended_location}
63
+ instead of the Sass default location of #{default_location}.
64
+ Is this OK? (Y/n) }
65
+ answer = gets.downcase[0]
66
+ answer == ?n ? default_location : recommended_location
67
+ end
68
+
69
+ def prompt_css_dir
70
+ recommended_location = separate("public/stylesheets/compiled")
71
+ default_location = separate("public/stylesheets")
72
+ puts
73
+ print %Q{Compass recommends that you keep your compiled css in #{recommended_location}/
74
+ instead the Sass default of #{default_location}/.
75
+ However, if you're exclusively using Sass, then #{default_location}/ is recommended.
76
+ Emit compiled stylesheets to #{recommended_location}/? (Y/n) }
77
+ answer = gets.downcase[0]
78
+ answer == ?n ? default_location : recommended_location
79
+ end
80
+
81
+ def config_contents
82
+ Compass.configuration.serialize do |prop, value|
83
+ if prop == :project_path
84
+ "project_path = RAILS_ROOT if defined?(RAILS_ROOT)\n"
85
+ elsif prop == :output_style
86
+ ""
87
+ end
88
+ end
89
+ end
90
+
91
+ def initializer_contents
92
+ %Q{require 'compass'
93
+ # If you have any compass plugins, require them here.
94
+ Compass.configuration.parse(File.join(RAILS_ROOT, "config", "compass.config"))
95
+ Compass.configuration.environment = RAILS_ENV.to_sym
96
+ Compass.configure_sass_plugin!
97
+ }
98
+ end
99
+
100
+ def stylesheet_prefix
101
+ if css_dir.length >= 19
102
+ "#{css_dir[19..-1]}/"
103
+ else
104
+ nil
105
+ end
106
+ end
107
+
108
+ def stylesheet_links
109
+ html = "%head\n"
110
+ manifest.each_stylesheet do |stylesheet|
111
+ # Skip partials.
112
+ next if File.basename(stylesheet.from)[0..0] == "_"
113
+ ss_line = " = stylesheet_link_tag '#{stylesheet_prefix}#{stylesheet.to.sub(/\.sass$/,'.css')}'"
114
+ if stylesheet.options[:media]
115
+ ss_line += ", :media => '#{stylesheet.options[:media]}'"
116
+ end
117
+ if stylesheet.options[:condition]
118
+ ss_line = " /[if #{stylesheet.options[:condition]}]\n " + ss_line
119
+ end
120
+ html << ss_line + "\n"
121
+ end
122
+ html
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,14 @@
1
+ unless defined?(Compass::RAILS_LOADED)
2
+ Compass::RAILS_LOADED = true
3
+
4
+ %w(action_controller sass_plugin urls).each do |lib|
5
+ require "compass/app_integration/rails/#{lib}"
6
+ end
7
+
8
+ # Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
9
+ class Sass::Script::Functions::EvaluationContext
10
+ include Sass::Script::Functions
11
+ private
12
+ include ActionView::Helpers::AssetTagHelper
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ %w(configuration_defaults installer).each do |lib|
2
+ require "compass/app_integration/stand_alone/#{lib}"
3
+ end
4
+
5
+ module Compass
6
+ module AppIntegration
7
+ module StandAlone
8
+
9
+ extend self
10
+
11
+ def installer(*args)
12
+ Installer.new(*args)
13
+ end
14
+
15
+ def configuration
16
+ Compass::Configuration::Data.new('stand_alone').
17
+ extend(ConfigurationDefaults)
18
+ end
19
+
20
+ end
21
+ end
22
+ end