compass-edge 0.9.1

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 (312) hide show
  1. data/CHANGELOG.markdown +528 -0
  2. data/LICENSE.markdown +29 -0
  3. data/README.markdown +46 -0
  4. data/REVISION +1 -0
  5. data/Rakefile +131 -0
  6. data/VERSION.yml +4 -0
  7. data/bin/compass +26 -0
  8. data/deps.rip +1 -0
  9. data/examples/README.markdown +4 -0
  10. data/examples/blueprint_default/config.rb +7 -0
  11. data/examples/blueprint_default/images/grid.png +0 -0
  12. data/examples/blueprint_default/index.html.haml +85 -0
  13. data/examples/blueprint_default/parts/elements.html.haml +282 -0
  14. data/examples/blueprint_default/parts/forms.html.haml +190 -0
  15. data/examples/blueprint_default/parts/grid.html.haml +274 -0
  16. data/examples/blueprint_default/parts/test-small.jpg +0 -0
  17. data/examples/blueprint_default/parts/test.jpg +0 -0
  18. data/examples/blueprint_default/parts/valid.png +0 -0
  19. data/examples/blueprint_default/src/ie.sass +3 -0
  20. data/examples/blueprint_default/src/images/grid.png +0 -0
  21. data/examples/blueprint_default/src/print.sass +3 -0
  22. data/examples/blueprint_default/src/screen.sass +8 -0
  23. data/examples/blueprint_plugins/config.rb +8 -0
  24. data/examples/blueprint_plugins/images/buttons/cross.png +0 -0
  25. data/examples/blueprint_plugins/images/buttons/key.png +0 -0
  26. data/examples/blueprint_plugins/images/buttons/tick.png +0 -0
  27. data/examples/blueprint_plugins/images/grid.png +0 -0
  28. data/examples/blueprint_plugins/images/link_icons/doc.png +0 -0
  29. data/examples/blueprint_plugins/images/link_icons/email.png +0 -0
  30. data/examples/blueprint_plugins/images/link_icons/external.png +0 -0
  31. data/examples/blueprint_plugins/images/link_icons/feed.png +0 -0
  32. data/examples/blueprint_plugins/images/link_icons/im.png +0 -0
  33. data/examples/blueprint_plugins/images/link_icons/pdf.png +0 -0
  34. data/examples/blueprint_plugins/images/link_icons/visited.png +0 -0
  35. data/examples/blueprint_plugins/images/link_icons/xls.png +0 -0
  36. data/examples/blueprint_plugins/images/test-small.jpg +0 -0
  37. data/examples/blueprint_plugins/images/test.jpg +0 -0
  38. data/examples/blueprint_plugins/images/valid.png +0 -0
  39. data/examples/blueprint_plugins/index.html.haml +96 -0
  40. data/examples/blueprint_plugins/plugins/buttons.html.haml +67 -0
  41. data/examples/blueprint_plugins/plugins/fancy_type.html.haml +100 -0
  42. data/examples/blueprint_plugins/plugins/link_icons.html.haml +61 -0
  43. data/examples/blueprint_plugins/plugins/rtl.html.haml +100 -0
  44. data/examples/blueprint_plugins/src/buttons.sass +49 -0
  45. data/examples/blueprint_plugins/src/ie.sass +3 -0
  46. data/examples/blueprint_plugins/src/images/grid.png +0 -0
  47. data/examples/blueprint_plugins/src/link_icons.sass +13 -0
  48. data/examples/blueprint_plugins/src/print.sass +3 -0
  49. data/examples/blueprint_plugins/src/rtl_screen.sass +13 -0
  50. data/examples/blueprint_plugins/src/screen.sass +11 -0
  51. data/examples/blueprint_scoped/images/grid.png +0 -0
  52. data/examples/blueprint_scoped/src/ie.sass +4 -0
  53. data/examples/blueprint_scoped/src/print.sass +4 -0
  54. data/examples/blueprint_scoped/src/screen.sass +5 -0
  55. data/examples/blueprint_scoped_form/images/grid.png +0 -0
  56. data/examples/blueprint_scoped_form/src/ie.sass +3 -0
  57. data/examples/blueprint_scoped_form/src/print.sass +3 -0
  58. data/examples/blueprint_scoped_form/src/screen.sass +10 -0
  59. data/examples/blueprint_semantic/config.rb +7 -0
  60. data/examples/blueprint_semantic/images/grid.png +0 -0
  61. data/examples/blueprint_semantic/index.html.haml +86 -0
  62. data/examples/blueprint_semantic/parts/fancy_type.html.haml +100 -0
  63. data/examples/blueprint_semantic/parts/liquid.html.haml +100 -0
  64. data/examples/blueprint_semantic/parts/test-small.jpg +0 -0
  65. data/examples/blueprint_semantic/parts/test.jpg +0 -0
  66. data/examples/blueprint_semantic/parts/valid.png +0 -0
  67. data/examples/blueprint_semantic/src/ie.sass +3 -0
  68. data/examples/blueprint_semantic/src/images/grid.png +0 -0
  69. data/examples/blueprint_semantic/src/liquid.sass +69 -0
  70. data/examples/blueprint_semantic/src/print.sass +3 -0
  71. data/examples/blueprint_semantic/src/screen.sass +70 -0
  72. data/examples/compass/compass.html.haml +39 -0
  73. data/examples/compass/config.rb +7 -0
  74. data/examples/compass/images/blue_arrow.gif +0 -0
  75. data/examples/compass/src/compass.sass +47 -0
  76. data/examples/compass/src/images/blue_arrow.gif +0 -0
  77. data/examples/compass/src/sticky_footer.sass +11 -0
  78. data/examples/compass/src/utilities.sass +108 -0
  79. data/examples/compass/sticky_footer.html.haml +14 -0
  80. data/examples/compass/utilities.html.haml +189 -0
  81. data/examples/downloader.rb +57 -0
  82. data/examples/logo/logo.html.haml +40 -0
  83. data/examples/logo/src/ie.sass +6 -0
  84. data/examples/logo/src/print.sass +6 -0
  85. data/examples/logo/src/screen.sass +29 -0
  86. data/examples/ninesixty/bootstrap.rb +4 -0
  87. data/examples/ninesixty/config.rb +9 -0
  88. data/examples/ninesixty/extensions/ninesixty/README.mkdn +56 -0
  89. data/examples/ninesixty/extensions/ninesixty/compass-960-plugin.gemspec +36 -0
  90. data/examples/ninesixty/extensions/ninesixty/lib/ninesixty.rb +1 -0
  91. data/examples/ninesixty/extensions/ninesixty/lib/ninesixty/compass_plugin.rb +5 -0
  92. data/examples/ninesixty/extensions/ninesixty/sass/960/_grid.sass +64 -0
  93. data/examples/ninesixty/extensions/ninesixty/sass/960/_text.sass +59 -0
  94. data/examples/ninesixty/extensions/ninesixty/templates/project/grid.sass +34 -0
  95. data/examples/ninesixty/extensions/ninesixty/templates/project/manifest.rb +2 -0
  96. data/examples/ninesixty/extensions/ninesixty/templates/project/text.sass +10 -0
  97. data/examples/ninesixty/src/grid.sass +16 -0
  98. data/examples/ninesixty/src/text.sass +10 -0
  99. data/examples/yui/bootstrap.rb +3 -0
  100. data/examples/yui/divisions.html.haml +179 -0
  101. data/examples/yui/extensions/yui/stylesheets/_yui.sass +7 -0
  102. data/examples/yui/extensions/yui/stylesheets/yui/modules/_base.sass +70 -0
  103. data/examples/yui/extensions/yui/stylesheets/yui/modules/_fonts.sass +45 -0
  104. data/examples/yui/extensions/yui/stylesheets/yui/modules/_grids.sass +385 -0
  105. data/examples/yui/extensions/yui/stylesheets/yui/modules/_reset.sass +61 -0
  106. data/examples/yui/extensions/yui/templates/project/manifest.rb +1 -0
  107. data/examples/yui/extensions/yui/templates/project/screen.sass +4 -0
  108. data/examples/yui/index.html.haml +19 -0
  109. data/examples/yui/src/screen.sass +13 -0
  110. data/examples/yui/sub_divisions.html.haml +169 -0
  111. data/examples/yui/templates.html.haml +54 -0
  112. data/examples/yui/test.jpg +0 -0
  113. data/examples/yui/typography.html.haml +132 -0
  114. data/lib/compass.rb +22 -0
  115. data/lib/compass/actions.rb +116 -0
  116. data/lib/compass/app_integration.rb +3 -0
  117. data/lib/compass/app_integration/merb.rb +1 -0
  118. data/lib/compass/app_integration/merb/runtime.rb +63 -0
  119. data/lib/compass/app_integration/rails.rb +8 -0
  120. data/lib/compass/app_integration/rails/action_controller.rb +15 -0
  121. data/lib/compass/app_integration/rails/configuration_defaults.rb +29 -0
  122. data/lib/compass/app_integration/rails/installer.rb +127 -0
  123. data/lib/compass/app_integration/rails/runtime.rb +14 -0
  124. data/lib/compass/app_integration/rails/sass_plugin.rb +5 -0
  125. data/lib/compass/app_integration/rails/templates/compass-install-rails.rb +80 -0
  126. data/lib/compass/app_integration/rails/urls.rb +14 -0
  127. data/lib/compass/app_integration/stand_alone.rb +3 -0
  128. data/lib/compass/app_integration/stand_alone/configuration_defaults.rb +24 -0
  129. data/lib/compass/app_integration/stand_alone/installer.rb +71 -0
  130. data/lib/compass/commands.rb +11 -0
  131. data/lib/compass/commands/base.rb +36 -0
  132. data/lib/compass/commands/create_project.rb +113 -0
  133. data/lib/compass/commands/generate_grid_background.rb +91 -0
  134. data/lib/compass/commands/help.rb +62 -0
  135. data/lib/compass/commands/installer_command.rb +34 -0
  136. data/lib/compass/commands/list_frameworks.rb +16 -0
  137. data/lib/compass/commands/print_version.rb +91 -0
  138. data/lib/compass/commands/project_base.rb +92 -0
  139. data/lib/compass/commands/registry.rb +22 -0
  140. data/lib/compass/commands/stamp_pattern.rb +86 -0
  141. data/lib/compass/commands/update_project.rb +38 -0
  142. data/lib/compass/commands/validate_project.rb +21 -0
  143. data/lib/compass/commands/watch_project.rb +69 -0
  144. data/lib/compass/commands/write_configuration.rb +32 -0
  145. data/lib/compass/compiler.rb +54 -0
  146. data/lib/compass/configuration.rb +38 -0
  147. data/lib/compass/configuration/adapters.rb +59 -0
  148. data/lib/compass/configuration/comments.rb +22 -0
  149. data/lib/compass/configuration/data.rb +103 -0
  150. data/lib/compass/configuration/defaults.rb +107 -0
  151. data/lib/compass/configuration/helpers.rb +83 -0
  152. data/lib/compass/configuration/inheritance.rb +170 -0
  153. data/lib/compass/configuration/serialization.rb +86 -0
  154. data/lib/compass/core_ext.rb +14 -0
  155. data/lib/compass/dependencies.rb +6 -0
  156. data/lib/compass/errors.rb +7 -0
  157. data/lib/compass/exec.rb +15 -0
  158. data/lib/compass/exec/command_option_parser.rb +23 -0
  159. data/lib/compass/exec/global_options_parser.rb +37 -0
  160. data/lib/compass/exec/helpers.rb +28 -0
  161. data/lib/compass/exec/project_options_parser.rb +42 -0
  162. data/lib/compass/exec/sub_command_ui.rb +45 -0
  163. data/lib/compass/exec/switch_ui.rb +166 -0
  164. data/lib/compass/frameworks.rb +53 -0
  165. data/lib/compass/frameworks/blueprint/stylesheets/_blueprint.sass +3 -0
  166. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_ie.sass +99 -0
  167. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_print.sass +90 -0
  168. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_reset.sass +3 -0
  169. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_screen.sass +29 -0
  170. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass +84 -0
  171. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_colors.sass +33 -0
  172. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_debug.sass +9 -0
  173. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass +82 -0
  174. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +55 -0
  175. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass +178 -0
  176. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +58 -0
  177. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass +44 -0
  178. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_liquid.sass +141 -0
  179. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_reset.sass +56 -0
  180. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +122 -0
  181. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_scaffolding.sass +47 -0
  182. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +160 -0
  183. data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_utilities.sass +37 -0
  184. data/lib/compass/frameworks/blueprint/templates/buttons/buttons.sass +49 -0
  185. data/lib/compass/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
  186. data/lib/compass/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
  187. data/lib/compass/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
  188. data/lib/compass/frameworks/blueprint/templates/buttons/manifest.rb +5 -0
  189. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons.sass +13 -0
  190. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
  191. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
  192. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
  193. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
  194. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
  195. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
  196. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
  197. data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
  198. data/lib/compass/frameworks/blueprint/templates/link_icons/manifest.rb +10 -0
  199. data/lib/compass/frameworks/blueprint/templates/project/grid.png +0 -0
  200. data/lib/compass/frameworks/blueprint/templates/project/ie.sass +16 -0
  201. data/lib/compass/frameworks/blueprint/templates/project/manifest.rb +8 -0
  202. data/lib/compass/frameworks/blueprint/templates/project/partials/_base.sass +11 -0
  203. data/lib/compass/frameworks/blueprint/templates/project/print.sass +8 -0
  204. data/lib/compass/frameworks/blueprint/templates/project/screen.sass +47 -0
  205. data/lib/compass/frameworks/blueprint/templates/project/welcome.html.haml +13 -0
  206. data/lib/compass/frameworks/compass/stylesheets/_compass.sass +1 -0
  207. data/lib/compass/frameworks/compass/stylesheets/compass/_layout.sass +1 -0
  208. data/lib/compass/frameworks/compass/stylesheets/compass/_misc.sass +24 -0
  209. data/lib/compass/frameworks/compass/stylesheets/compass/_reset.sass +3 -0
  210. data/lib/compass/frameworks/compass/stylesheets/compass/_utilities.sass +7 -0
  211. data/lib/compass/frameworks/compass/stylesheets/compass/layout/_sticky_footer.sass +19 -0
  212. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_css3.sass +6 -0
  213. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_general.sass +5 -0
  214. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_links.sass +3 -0
  215. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_lists.sass +3 -0
  216. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_print.sass +18 -0
  217. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_sprites.sass +1 -0
  218. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_tables.sass +3 -0
  219. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/_text.sass +2 -0
  220. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_border_radius.sass +47 -0
  221. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_box_shadow.sass +12 -0
  222. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_box_sizing.sass +13 -0
  223. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_columns.sass +37 -0
  224. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_inline_block.sass +7 -0
  225. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/css3/_opacity.sass +18 -0
  226. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.sass +24 -0
  227. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_float.sass +17 -0
  228. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_hacks.sass +6 -0
  229. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_reset.sass +134 -0
  230. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_tabs.sass +0 -0
  231. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/general/_tag_cloud.sass +19 -0
  232. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/links/_hover_link.sass +5 -0
  233. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/links/_link_colors.sass +24 -0
  234. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/links/_unstyled_link.sass +7 -0
  235. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.sass +21 -0
  236. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal_list.sass +52 -0
  237. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/lists/_inline_list.sass +29 -0
  238. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite_img.sass +52 -0
  239. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +20 -0
  240. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_borders.sass +27 -0
  241. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.sass +9 -0
  242. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.sass +13 -0
  243. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.sass +3 -0
  244. data/lib/compass/frameworks/compass/stylesheets/compass/utilities/text/_replacement.sass +17 -0
  245. data/lib/compass/frameworks/compass/templates/ellipsis/ellipsis.sass +6 -0
  246. data/lib/compass/frameworks/compass/templates/ellipsis/manifest.rb +2 -0
  247. data/lib/compass/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +14 -0
  248. data/lib/compass/frameworks/compass/templates/extension/manifest.rb +6 -0
  249. data/lib/compass/frameworks/compass/templates/extension/stylesheets/main.sass +1 -0
  250. data/lib/compass/frameworks/compass/templates/extension/templates/project/manifest.rb +2 -0
  251. data/lib/compass/frameworks/compass/templates/extension/templates/project/screen.sass +2 -0
  252. data/lib/compass/frameworks/compass/templates/project/ie.sass +6 -0
  253. data/lib/compass/frameworks/compass/templates/project/manifest.rb +3 -0
  254. data/lib/compass/frameworks/compass/templates/project/print.sass +6 -0
  255. data/lib/compass/frameworks/compass/templates/project/screen.sass +13 -0
  256. data/lib/compass/grid_builder.rb +76 -0
  257. data/lib/compass/installers.rb +3 -0
  258. data/lib/compass/installers/base.rb +186 -0
  259. data/lib/compass/installers/manifest.rb +79 -0
  260. data/lib/compass/installers/template_context.rb +44 -0
  261. data/lib/compass/logger.rb +42 -0
  262. data/lib/compass/sass_extensions.rb +5 -0
  263. data/lib/compass/sass_extensions/functions.rb +19 -0
  264. data/lib/compass/sass_extensions/functions/display.rb +22 -0
  265. data/lib/compass/sass_extensions/functions/enumerate.rb +6 -0
  266. data/lib/compass/sass_extensions/functions/inline_image.rb +35 -0
  267. data/lib/compass/sass_extensions/functions/selectors.rb +42 -0
  268. data/lib/compass/sass_extensions/functions/urls.rb +105 -0
  269. data/lib/compass/sass_extensions/monkey_patches.rb +3 -0
  270. data/lib/compass/sass_extensions/monkey_patches/stylesheet_updating.rb +23 -0
  271. data/lib/compass/test_case.rb +38 -0
  272. data/lib/compass/validator.rb +10 -0
  273. data/lib/compass/version.rb +57 -0
  274. data/lib/vendor/fssm.rb +28 -0
  275. data/lib/vendor/fssm/backends/fsevents.rb +78 -0
  276. data/lib/vendor/fssm/backends/polling.rb +24 -0
  277. data/lib/vendor/fssm/ext.rb +7 -0
  278. data/lib/vendor/fssm/monitor.rb +21 -0
  279. data/lib/vendor/fssm/path.rb +88 -0
  280. data/lib/vendor/fssm/state.rb +46 -0
  281. data/lib/vendor/fssm/support.rb +26 -0
  282. data/test/command_line_helper.rb +97 -0
  283. data/test/command_line_test.rb +67 -0
  284. data/test/compass_test.rb +132 -0
  285. data/test/configuration_test.rb +123 -0
  286. data/test/fixtures/stylesheets/blueprint/config.rb +9 -0
  287. data/test/fixtures/stylesheets/blueprint/css/typography.css +158 -0
  288. data/test/fixtures/stylesheets/blueprint/images/grid.png +0 -0
  289. data/test/fixtures/stylesheets/blueprint/sass/ie.sass +3 -0
  290. data/test/fixtures/stylesheets/blueprint/sass/print.sass +3 -0
  291. data/test/fixtures/stylesheets/blueprint/sass/screen.sass +17 -0
  292. data/test/fixtures/stylesheets/blueprint/sass/typography.sass +3 -0
  293. data/test/fixtures/stylesheets/compass/config.rb +9 -0
  294. data/test/fixtures/stylesheets/compass/css/layout.css +15 -0
  295. data/test/fixtures/stylesheets/compass/css/print.css +18 -0
  296. data/test/fixtures/stylesheets/compass/css/reset.css +60 -0
  297. data/test/fixtures/stylesheets/compass/css/utilities.css +17 -0
  298. data/test/fixtures/stylesheets/compass/sass/layout.sass +3 -0
  299. data/test/fixtures/stylesheets/compass/sass/print.sass +5 -0
  300. data/test/fixtures/stylesheets/compass/sass/reset.sass +10 -0
  301. data/test/fixtures/stylesheets/compass/sass/utilities.sass +6 -0
  302. data/test/fixtures/stylesheets/image_urls/config.rb +17 -0
  303. data/test/fixtures/stylesheets/image_urls/css/screen.css +3 -0
  304. data/test/fixtures/stylesheets/image_urls/images/grid.png +0 -0
  305. data/test/fixtures/stylesheets/image_urls/sass/screen.sass +6 -0
  306. data/test/io_helper.rb +19 -0
  307. data/test/rails_integration_test.rb +84 -0
  308. data/test/sass_extensions_test.rb +31 -0
  309. data/test/test_case_helper.rb +13 -0
  310. data/test/test_helper.rb +27 -0
  311. data/test/test_rails_helper.rb +20 -0
  312. metadata +404 -0
@@ -0,0 +1,20 @@
1
+ =alternating-rows-and-columns(!even_row_color, !odd_row_color, !dark_intersection, !header_color = #FFF, !footer_color = #FFF)
2
+ th
3
+ background-color= !header_color
4
+ &.even
5
+ background-color= !header_color - !dark_intersection
6
+ tr.odd
7
+ td
8
+ background-color= !odd_row_color
9
+ &.even
10
+ background-color= !odd_row_color - !dark_intersection
11
+ tr.even
12
+ td
13
+ background-color= !even_row_color
14
+ &.even
15
+ background-color= !even_row_color - !dark_intersection
16
+ tfoot
17
+ th, td
18
+ background-color= !footer_color
19
+ &.even
20
+ background-color= !footer_color - !dark_intersection
@@ -0,0 +1,27 @@
1
+ =outer-table-borders(!width = 2px, !color = black)
2
+ border= !width "solid" !color
3
+ thead
4
+ th
5
+ border-bottom= !width "solid" !color
6
+ tfoot
7
+ th, td
8
+ border-top= !width "solid" !color
9
+ th
10
+ &:first-child
11
+ border-right= !width "solid" !color
12
+
13
+ =inner-table-borders(!width = 2px, !color = black)
14
+ th, td
15
+ border:
16
+ right= !width "solid" !color
17
+ bottom= !width "solid" !color
18
+ left-width: 0px
19
+ top-width: 0px
20
+ &:last-child,
21
+ &.last
22
+ border-right-width: 0px
23
+ tbody, tfoot
24
+ tr:last-child,
25
+ tr.last
26
+ th, td
27
+ border-bottom-width: 0px
@@ -0,0 +1,9 @@
1
+ =table-scaffolding
2
+ th
3
+ text-align: center
4
+ font-weight: bold
5
+ td,
6
+ th
7
+ padding: 2px
8
+ &.numeric
9
+ text-align: right
@@ -0,0 +1,13 @@
1
+ //
2
+ This technique, by [Justin Maxwell](http://code404.com/), was originally
3
+ published at http://mattsnider.com/css/css-string-truncation-with-ellipsis/
4
+ Firefox implementation by [Rikkert Koppes](http://www.rikkertkoppes.com/thoughts/2008/6/)
5
+
6
+ =ellipsis(!no_wrap = true)
7
+ @if !no_wrap
8
+ white-space: nowrap
9
+ overflow: hidden
10
+ text-overflow: ellipsis
11
+ -o-text-overflow: ellipsis
12
+ -ms-text-overflow: ellipsis
13
+ -moz-binding= stylesheet_url("xml/ellipsis.xml#ellipsis")
@@ -0,0 +1,3 @@
1
+ // When remembering whether or not there's a hyphen in white-space is too hard
2
+ =nowrap
3
+ white-space: nowrap
@@ -0,0 +1,17 @@
1
+ //
2
+ Hides html text and replaces it with an image.
3
+ If you use this on an inline element, you will need to change the display to block or inline-block.
4
+ Also, if the size of the image differs significantly from the font size, you'll need to set the width and/or height.
5
+ @param img
6
+ the relative path from the project image directory to the image.
7
+ @param x
8
+ the x position of the background image.
9
+ @param y
10
+ the y position of the background image.
11
+ =replace-text( !img, !x = 50%, !y = 50% )
12
+ text-indent: -9999em
13
+ overflow: hidden
14
+ background:
15
+ image= image_url(!img)
16
+ repeat: no-repeat
17
+ position= !x !y
@@ -0,0 +1,6 @@
1
+ @import compass/utilities/text/ellipsis.sass
2
+
3
+ // You can delete this sass file if you want, it's just an example of how to use the ellipsis mixin.
4
+ // By default, ellipsis text is no-wrap. Pass false as the first argument if you don't want that.
5
+ .ellipsis
6
+ +ellipsis
@@ -0,0 +1,2 @@
1
+ file 'xml/ellipsis.xml', :like => :css
2
+ stylesheet 'ellipsis.sass'
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0"?>
2
+ <bindings
3
+ xmlns="http://www.mozilla.org/xbl"
4
+ xmlns:xbl="http://www.mozilla.org/xbl"
5
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
6
+ >
7
+ <binding id="ellipsis">
8
+ <content>
9
+ <xul:window>
10
+ <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
11
+ </xul:window>
12
+ </content>
13
+ </binding>
14
+ </bindings>
@@ -0,0 +1,6 @@
1
+ file 'stylesheets/main.sass', :to => "stylesheets/_#{File.basename(options[:pattern_name])}.sass"
2
+ file 'templates/project/manifest.rb'
3
+ file 'templates/project/screen.sass'
4
+
5
+ no_configuration_file!
6
+ skip_compilation!
@@ -0,0 +1 @@
1
+ // This is your framework's main stylesheet. Use it to import all default modules.
@@ -0,0 +1,2 @@
1
+ # Make sure you list all the project template files here in the manifest.
2
+ stylesheet 'screen.sass', :media => 'screen, projection'
@@ -0,0 +1,2 @@
1
+ // This is where you put the contents of the main stylesheet for the user's project.
2
+ // It should import your sass stylesheets and demonstrate how to use them.
@@ -0,0 +1,6 @@
1
+ /*
2
+ Welcome to Compass. Use this file to write IE specific override styles.
3
+ Import this file using the following HTML or equivalent:
4
+ <!--[if IE]>
5
+ <link href="/stylesheets/ie.css" media="screen, projection" rel="stylesheet" type="text/css" />
6
+ <![endif]-->
@@ -0,0 +1,3 @@
1
+ stylesheet 'screen.sass', :media => 'screen, projection'
2
+ stylesheet 'print.sass', :media => 'print'
3
+ stylesheet 'ie.sass', :media => 'screen, projection', :condition => "IE"
@@ -0,0 +1,6 @@
1
+ /*
2
+ Welcome to Compass. Use this file to define print styles.
3
+ Import this file using the following HTML or equivalent:
4
+ <link href="/stylesheets/print.css" media="print" rel="stylesheet" type="text/css" />
5
+
6
+
@@ -0,0 +1,13 @@
1
+ /*
2
+ Welcome to Compass.
3
+ In this file you should write your main styles. (or centralize your imports)
4
+ Import this file using the following HTML or equivalent:
5
+ <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css" />
6
+
7
+ @import compass/reset.sass
8
+
9
+ /*
10
+ The *:focus rule is reset and suppresses link outlining.
11
+ You _must_ remember to redefine your own outline, as it’s an important accessibility aid. E.g.
12
+ *:focus
13
+ outline: #ccc dotted medium
@@ -0,0 +1,76 @@
1
+ # This file came from the Blueprint Project
2
+ begin
3
+ require 'rubygems'
4
+ gem 'rmagick'
5
+ require 'rvg/rvg'
6
+ rescue Exception => e
7
+ end
8
+
9
+ module Compass
10
+ # Uses ImageMagick and RMagick to generate grid.png file
11
+ class GridBuilder
12
+ include Actions
13
+
14
+ begin
15
+ include Magick
16
+ rescue Exception => e
17
+ end
18
+
19
+ attr_reader :column_width, :gutter_width, :filename, :able_to_generate, :options
20
+
21
+ # ==== Options
22
+ # * <tt>options</tt>
23
+ # * <tt>:column_width</tt> -- Width (in pixels) of current grid column
24
+ # * <tt>:gutter_width</tt> -- Width (in pixels) of current grid gutter
25
+ # * <tt>:height</tt> -- Height (in pixels) of a row
26
+ # * <tt>:filename</tt> -- Output path of grid.png file
27
+ def initialize(options={})
28
+ @able_to_generate = Magick::Long_version rescue false
29
+ return unless @able_to_generate
30
+ @column_width = options[:column_width]
31
+ @gutter_width = options[:gutter_width]
32
+ @height = options[:height] || 20
33
+ @filename = options[:filename]
34
+ @options = options
35
+ end
36
+
37
+ def working_path
38
+ options[:working_path]
39
+ end
40
+
41
+ # generates (overwriting if necessary) grid.png image to be tiled in background
42
+ def generate!
43
+ return false unless self.able_to_generate
44
+ total_width = self.column_width + self.gutter_width
45
+ RVG::dpi = 100
46
+
47
+ rvg = RVG.new((total_width.to_f/RVG::dpi).in, (@height.to_f/RVG::dpi).in).viewbox(0, 0, total_width, @height) do |canvas|
48
+ canvas.background_fill = 'white'
49
+
50
+ canvas.g do |column|
51
+ column.rect(self.column_width, @height).styles(:fill => "#e8effb")
52
+ end
53
+
54
+ canvas.g do |baseline|
55
+ baseline.line(0, (@height - 1), total_width, (@height- 1)).styles(:fill => "#e9e9e9")
56
+ end
57
+ end
58
+
59
+ if File.exists?(filename)
60
+ if options[:force]
61
+ overwrite = true
62
+ else
63
+ msg = "#{filename} already exists. Overwrite with --force."
64
+ raise Compass::FilesystemConflict.new(msg)
65
+ end
66
+ end
67
+ directory File.dirname(filename)
68
+ logger.record((overwrite ? :overwrite : :create), basename(filename))
69
+ unless options[:dry_run]
70
+ rvg.draw.write(filename)
71
+ else
72
+ true
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,3 @@
1
+ %w(manifest template_context base).each do |f|
2
+ require "compass/installers/#{f}"
3
+ end
@@ -0,0 +1,186 @@
1
+ module Compass
2
+ module Installers
3
+
4
+ class Base
5
+
6
+ include Actions
7
+
8
+ attr_accessor :template_path, :target_path, :working_path
9
+ attr_accessor :options
10
+ attr_accessor :manifest
11
+
12
+ def initialize(template_path, target_path, options = {})
13
+ @template_path = template_path
14
+ @target_path = target_path
15
+ @working_path = Dir.getwd
16
+ @options = options
17
+ @manifest = Manifest.new(manifest_file, options) if template_path
18
+ self.logger = options[:logger]
19
+ end
20
+
21
+ def manifest_file
22
+ @manifest_file ||= File.join(template_path, "manifest.rb")
23
+ end
24
+
25
+ [:css_dir, :sass_dir, :images_dir, :javascripts_dir, :http_stylesheets_path].each do |dir|
26
+ define_method dir do
27
+ Compass.configuration.send(dir)
28
+ end
29
+ define_method "#{dir}_without_default" do
30
+ Compass.configuration.send("#{dir}_without_default")
31
+ end
32
+ end
33
+
34
+ # Initializes the project to work with compass
35
+ def init
36
+ dirs = manifest.map do |entry|
37
+ loc = send("install_location_for_#{entry.type}", entry.to, entry.options)
38
+ File.dirname(loc)
39
+ end
40
+
41
+ if manifest.has_stylesheet?
42
+ dirs << sass_dir
43
+ dirs << css_dir
44
+ end
45
+
46
+ dirs.uniq.sort.each do |dir|
47
+ directory targetize(dir)
48
+ end
49
+ end
50
+
51
+ # Runs the installer.
52
+ # Every installer must conform to the installation strategy of prepare, install, and then finalize.
53
+ # A default implementation is provided for each step.
54
+ def run(options = {})
55
+ prepare
56
+ install
57
+ finalize(options) unless options[:skip_finalization]
58
+ end
59
+
60
+ # The default prepare method -- it is a no-op.
61
+ # Generally you would create required directories, etc.
62
+ def prepare
63
+ end
64
+
65
+ def configure_option_with_default(opt)
66
+ value = options[opt]
67
+ value ||= begin
68
+ default_method = "default_#{opt}".to_sym
69
+ send(default_method) if respond_to?(default_method)
70
+ end
71
+ send("#{opt}=", value)
72
+ end
73
+
74
+ # The default install method. Calls install_<type> methods in the order specified by the manifest.
75
+ def install
76
+ manifest.each do |entry|
77
+ send("install_#{entry.type}", entry.from, entry.to, entry.options)
78
+ end
79
+ end
80
+
81
+ # The default finalize method -- it is a no-op.
82
+ # This could print out a message or something.
83
+ def finalize
84
+ end
85
+
86
+ def compilation_required?
87
+ false
88
+ end
89
+
90
+ def pattern_name_as_dir
91
+ "#{options[:pattern_name]}/" if options[:pattern_name]
92
+ end
93
+
94
+ def self.installer(type, installer_opts = {}, &locator)
95
+ locator ||= lambda{|to| to}
96
+ loc_method = "install_location_for_#{type}".to_sym
97
+ define_method("simple_#{loc_method}", locator)
98
+ define_method(loc_method) do |to, options|
99
+ if options[:like] && options[:like] != type
100
+ send("install_location_for_#{options[:like]}", to, options)
101
+ else
102
+ send("simple_#{loc_method}", to)
103
+ end
104
+ end
105
+ define_method "install_#{type}" do |from, to, options|
106
+ from = templatize(from)
107
+ to = targetize(send(loc_method, to, options))
108
+ copy from, to, nil, (installer_opts[:binary] || options[:binary])
109
+ end
110
+ end
111
+
112
+ installer :stylesheet do |to|
113
+ "#{sass_dir}/#{pattern_name_as_dir}#{to}"
114
+ end
115
+
116
+ installer :css do |to|
117
+ "#{css_dir}/#{to}"
118
+ end
119
+
120
+ installer :image, :binary => true do |to|
121
+ "#{images_dir}/#{to}"
122
+ end
123
+
124
+ installer :javascript do |to|
125
+ "#{javascripts_dir}/#{to}"
126
+ end
127
+
128
+ installer :file do |to|
129
+ "#{pattern_name_as_dir}#{to}"
130
+ end
131
+
132
+ installer :html do |to|
133
+ "#{pattern_name_as_dir}#{to}"
134
+ end
135
+
136
+ alias install_html_without_haml install_html
137
+ def install_html(from, to, options)
138
+ if to =~ /\.haml$/
139
+ require 'haml'
140
+ to = to[0..-(".haml".length+1)]
141
+ if respond_to?(:install_location_for_html)
142
+ to = install_location_for_html(to, options)
143
+ end
144
+ contents = File.read(templatize(from))
145
+ if options.delete(:erb)
146
+ ctx = TemplateContext.ctx(:to => to, :options => options)
147
+ contents = process_erb(contents, ctx)
148
+ end
149
+ html = Haml::Engine.new(contents, :filename => templatize(from)).render
150
+ write_file(targetize(to), html, options)
151
+ else
152
+ install_html_without_haml(from, to, options)
153
+ end
154
+ end
155
+
156
+ # returns an absolute path given a path relative to the current installation target.
157
+ # Paths can use unix style "/" and will be corrected for the current platform.
158
+ def targetize(path)
159
+ strip_trailing_separator File.join(target_path, separate(path))
160
+ end
161
+
162
+ # returns an absolute path given a path relative to the current template.
163
+ # Paths can use unix style "/" and will be corrected for the current platform.
164
+ def templatize(path)
165
+ strip_trailing_separator File.join(template_path, separate(path))
166
+ end
167
+
168
+ def stylesheet_links
169
+ html = "<head>\n"
170
+ manifest.each_stylesheet do |stylesheet|
171
+ # Skip partials.
172
+ next if File.basename(stylesheet.from)[0..0] == "_"
173
+ media = if stylesheet.options[:media]
174
+ %Q{ media="#{stylesheet.options[:media]}"}
175
+ end
176
+ ss_line = %Q{ <link href="#{http_stylesheets_path}/#{stylesheet.to.sub(/\.sass$/,'.css')}"#{media} rel="stylesheet" type="text/css" />}
177
+ if stylesheet.options[:condition]
178
+ ss_line = " <!--[if #{stylesheet.options[:condition]}]>\n #{ss_line}\n <![endif]-->"
179
+ end
180
+ html << ss_line + "\n"
181
+ end
182
+ html << "</head>"
183
+ end
184
+ end
185
+ end
186
+ end