compass-sourcemaps 0.12.3.sourcemaps.a4836f1 → 0.12.4.sourcemaps.a4836f1

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 (495) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.markdown +29 -29
  3. data/README.markdown +39 -39
  4. data/Rakefile +157 -157
  5. data/VERSION.yml +5 -5
  6. data/bin/compass +45 -45
  7. data/examples/README.markdown +3 -3
  8. data/examples/blueprint_default/config.rb +7 -7
  9. data/examples/blueprint_default/index.html.haml +85 -85
  10. data/examples/blueprint_default/parts/elements.html.haml +282 -282
  11. data/examples/blueprint_default/parts/forms.html.haml +200 -200
  12. data/examples/blueprint_default/parts/grid.html.haml +274 -274
  13. data/examples/blueprint_default/src/ie.scss +3 -3
  14. data/examples/blueprint_default/src/print.scss +3 -3
  15. data/examples/blueprint_default/src/screen.scss +9 -9
  16. data/examples/blueprint_plugins/config.rb +8 -8
  17. data/examples/blueprint_plugins/index.html.haml +96 -96
  18. data/examples/blueprint_plugins/plugins/buttons.html.haml +67 -67
  19. data/examples/blueprint_plugins/plugins/fancy_type.html.haml +100 -100
  20. data/examples/blueprint_plugins/plugins/link_icons.html.haml +61 -61
  21. data/examples/blueprint_plugins/plugins/rtl.html.haml +100 -100
  22. data/examples/blueprint_plugins/src/buttons.scss +47 -47
  23. data/examples/blueprint_plugins/src/ie.scss +3 -3
  24. data/examples/blueprint_plugins/src/link_icons.scss +13 -13
  25. data/examples/blueprint_plugins/src/print.scss +3 -3
  26. data/examples/blueprint_plugins/src/rtl_screen.scss +15 -15
  27. data/examples/blueprint_plugins/src/screen.scss +12 -12
  28. data/examples/blueprint_scoped/src/ie.scss +4 -4
  29. data/examples/blueprint_scoped/src/print.scss +4 -4
  30. data/examples/blueprint_scoped/src/screen.scss +5 -5
  31. data/examples/blueprint_scoped_form/src/ie.scss +3 -3
  32. data/examples/blueprint_scoped_form/src/print.scss +3 -3
  33. data/examples/blueprint_scoped_form/src/screen.scss +15 -15
  34. data/examples/blueprint_semantic/config.rb +7 -7
  35. data/examples/blueprint_semantic/index.html.haml +86 -86
  36. data/examples/blueprint_semantic/parts/fancy_type.html.haml +100 -100
  37. data/examples/blueprint_semantic/parts/liquid.html.haml +100 -100
  38. data/examples/blueprint_semantic/src/ie.scss +3 -3
  39. data/examples/blueprint_semantic/src/liquid.scss +69 -69
  40. data/examples/blueprint_semantic/src/print.scss +3 -3
  41. data/examples/blueprint_semantic/src/screen.scss +69 -69
  42. data/examples/compass/bootstrap.rb +3 -3
  43. data/examples/compass/clean.rb +1 -1
  44. data/examples/compass/compass.html.haml +39 -39
  45. data/examples/compass/config.rb +8 -8
  46. data/examples/compass/pie.html.haml +73 -73
  47. data/examples/compass/sprites.html.haml +37 -37
  48. data/examples/compass/src/bp_layout.scss +18 -18
  49. data/examples/compass/src/compass.scss +46 -46
  50. data/examples/compass/src/pie.scss +110 -110
  51. data/examples/compass/src/sprites.scss +24 -24
  52. data/examples/compass/src/sticky_footer.scss +11 -11
  53. data/examples/compass/src/utilities.scss +108 -108
  54. data/examples/compass/sticky_footer.html.haml +13 -13
  55. data/examples/compass/utilities.html.haml +189 -189
  56. data/examples/css3/bootstrap.rb +3 -3
  57. data/examples/css3/clean.rb +2 -2
  58. data/examples/css3/config.rb +6 -6
  59. data/examples/css3/extensions/fancy-fonts/templates/project/fancy-fonts.sass +10 -10
  60. data/examples/css3/extensions/fancy-fonts/templates/project/manifest.rb +6 -6
  61. data/examples/css3/gradients.html.haml +68 -68
  62. data/examples/css3/index.html.haml +57 -57
  63. data/examples/css3/src/_base.scss +13 -13
  64. data/examples/css3/src/fancy-fonts.scss +13 -13
  65. data/examples/css3/src/gradients.scss +85 -85
  66. data/examples/css3/src/main.scss +108 -108
  67. data/examples/downloader.rb +58 -58
  68. data/examples/ninesixty/bootstrap.rb +4 -4
  69. data/examples/ninesixty/clean.rb +1 -1
  70. data/examples/ninesixty/config.rb +9 -9
  71. data/examples/ninesixty/src/grid.scss +15 -15
  72. data/examples/ninesixty/src/text.scss +8 -8
  73. data/examples/susy/bootstrap.rb +3 -3
  74. data/examples/susy/clean.rb +1 -1
  75. data/examples/susy/config.rb +9 -9
  76. data/examples/susy/src/_base.scss +61 -61
  77. data/examples/susy/src/_defaults.scss +140 -140
  78. data/examples/susy/src/screen.scss +100 -100
  79. data/examples/yui/bootstrap.rb +2 -2
  80. data/examples/yui/clean.rb +1 -1
  81. data/examples/yui/divisions.html.haml +179 -179
  82. data/examples/yui/index.html.haml +19 -19
  83. data/examples/yui/src/screen.scss +13 -13
  84. data/examples/yui/sub_divisions.html.haml +169 -169
  85. data/examples/yui/templates.html.haml +54 -54
  86. data/examples/yui/typography.html.haml +132 -132
  87. data/features/command_line.feature +292 -292
  88. data/features/extensions.feature +27 -27
  89. data/features/step_definitions/command_line_steps.rb +268 -268
  90. data/features/step_definitions/extension_steps.rb +24 -24
  91. data/frameworks/blueprint/stylesheets/_blueprint.scss +37 -37
  92. data/frameworks/blueprint/stylesheets/blueprint/_buttons.scss +100 -100
  93. data/frameworks/blueprint/stylesheets/blueprint/_colors.scss +36 -36
  94. data/frameworks/blueprint/stylesheets/blueprint/_debug.scss +28 -28
  95. data/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +88 -88
  96. data/frameworks/blueprint/stylesheets/blueprint/_form.scss +66 -66
  97. data/frameworks/blueprint/stylesheets/blueprint/_grid.scss +258 -258
  98. data/frameworks/blueprint/stylesheets/blueprint/_ie.scss +111 -111
  99. data/frameworks/blueprint/stylesheets/blueprint/_interaction.scss +66 -66
  100. data/frameworks/blueprint/stylesheets/blueprint/_link-icons.scss +37 -37
  101. data/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +152 -152
  102. data/frameworks/blueprint/stylesheets/blueprint/_print.scss +86 -86
  103. data/frameworks/blueprint/stylesheets/blueprint/_reset.scss +2 -2
  104. data/frameworks/blueprint/stylesheets/blueprint/_rtl.scss +121 -121
  105. data/frameworks/blueprint/stylesheets/blueprint/_scaffolding.scss +52 -52
  106. data/frameworks/blueprint/stylesheets/blueprint/_typography.scss +90 -90
  107. data/frameworks/blueprint/stylesheets/blueprint/_utilities.scss +37 -37
  108. data/frameworks/blueprint/stylesheets/blueprint/reset/_utilities.scss +83 -83
  109. data/frameworks/blueprint/templates/basic/ie.sass +4 -4
  110. data/frameworks/blueprint/templates/basic/manifest.rb +30 -30
  111. data/frameworks/blueprint/templates/basic/partials/_base.sass +10 -10
  112. data/frameworks/blueprint/templates/basic/print.sass +4 -4
  113. data/frameworks/blueprint/templates/basic/screen.sass +12 -12
  114. data/frameworks/blueprint/templates/buttons/buttons.sass +49 -49
  115. data/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
  116. data/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
  117. data/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
  118. data/frameworks/blueprint/templates/buttons/manifest.rb +17 -17
  119. data/frameworks/blueprint/templates/link_icons/link_icons.sass +13 -13
  120. data/frameworks/blueprint/templates/link_icons/manifest.rb +23 -23
  121. data/frameworks/blueprint/templates/project/ie.sass +16 -16
  122. data/frameworks/blueprint/templates/project/manifest.rb +30 -30
  123. data/frameworks/blueprint/templates/project/partials/_base.sass +11 -11
  124. data/frameworks/blueprint/templates/project/print.sass +7 -7
  125. data/frameworks/blueprint/templates/project/screen.sass +46 -46
  126. data/frameworks/blueprint/templates/semantic/ie.sass +16 -16
  127. data/frameworks/blueprint/templates/semantic/manifest.rb +33 -33
  128. data/frameworks/blueprint/templates/semantic/partials/_base.sass +10 -10
  129. data/frameworks/blueprint/templates/semantic/partials/_form.sass +5 -5
  130. data/frameworks/blueprint/templates/semantic/partials/_page.sass +17 -17
  131. data/frameworks/blueprint/templates/semantic/partials/_two_col.sass +38 -38
  132. data/frameworks/blueprint/templates/semantic/print.sass +4 -4
  133. data/frameworks/blueprint/templates/semantic/screen.sass +14 -14
  134. data/frameworks/compass/stylesheets/_compass.scss +3 -3
  135. data/frameworks/compass/stylesheets/_lemonade.scss +37 -37
  136. data/frameworks/compass/stylesheets/compass/_css3.scss +20 -20
  137. data/frameworks/compass/stylesheets/compass/_layout.scss +3 -3
  138. data/frameworks/compass/stylesheets/compass/_reset-legacy.scss +3 -3
  139. data/frameworks/compass/stylesheets/compass/_reset.scss +3 -3
  140. data/frameworks/compass/stylesheets/compass/_support.scss +40 -40
  141. data/frameworks/compass/stylesheets/compass/_typography.scss +4 -4
  142. data/frameworks/compass/stylesheets/compass/_utilities.scss +9 -9
  143. data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +17 -17
  144. data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +43 -43
  145. data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +42 -42
  146. data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +26 -26
  147. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +130 -130
  148. data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +76 -76
  149. data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +13 -13
  150. data/frameworks/compass/stylesheets/compass/css3/_box.scss +111 -111
  151. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +156 -156
  152. data/frameworks/compass/stylesheets/compass/css3/_filter.scss +23 -23
  153. data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +48 -48
  154. data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +77 -77
  155. data/frameworks/compass/stylesheets/compass/css3/_images.scss +132 -132
  156. data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +22 -22
  157. data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +19 -19
  158. data/frameworks/compass/stylesheets/compass/css3/_pie.scss +72 -72
  159. data/frameworks/compass/stylesheets/compass/css3/_regions.scss +21 -21
  160. data/frameworks/compass/stylesheets/compass/css3/_shared.scss +38 -38
  161. data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +87 -87
  162. data/frameworks/compass/stylesheets/compass/css3/_transform-legacy.scss +87 -87
  163. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +598 -598
  164. data/frameworks/compass/stylesheets/compass/css3/_transition.scss +221 -221
  165. data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +17 -17
  166. data/frameworks/compass/stylesheets/compass/layout/_grid-background.scss +178 -178
  167. data/frameworks/compass/stylesheets/compass/layout/_sticky-footer.scss +23 -23
  168. data/frameworks/compass/stylesheets/compass/layout/_stretching.scss +23 -23
  169. data/frameworks/compass/stylesheets/compass/reset/_utilities-legacy.scss +135 -135
  170. data/frameworks/compass/stylesheets/compass/reset/_utilities.scss +142 -142
  171. data/frameworks/compass/stylesheets/compass/typography/_links.scss +3 -3
  172. data/frameworks/compass/stylesheets/compass/typography/_lists.scss +4 -4
  173. data/frameworks/compass/stylesheets/compass/typography/_text.scss +4 -4
  174. data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +221 -221
  175. data/frameworks/compass/stylesheets/compass/typography/links/_hover-link.scss +5 -5
  176. data/frameworks/compass/stylesheets/compass/typography/links/_link-colors.scss +28 -28
  177. data/frameworks/compass/stylesheets/compass/typography/links/_unstyled-link.scss +7 -7
  178. data/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss +34 -34
  179. data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +61 -61
  180. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-block-list.scss +50 -50
  181. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +44 -44
  182. data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +25 -25
  183. data/frameworks/compass/stylesheets/compass/typography/text/_force-wrap.scss +12 -12
  184. data/frameworks/compass/stylesheets/compass/typography/text/_nowrap.scss +2 -2
  185. data/frameworks/compass/stylesheets/compass/typography/text/_replacement.scss +68 -68
  186. data/frameworks/compass/stylesheets/compass/utilities/_general.scss +6 -6
  187. data/frameworks/compass/stylesheets/compass/utilities/_links.scss +5 -5
  188. data/frameworks/compass/stylesheets/compass/utilities/_lists.scss +6 -6
  189. data/frameworks/compass/stylesheets/compass/utilities/_print.scss +17 -17
  190. data/frameworks/compass/stylesheets/compass/utilities/_sprites.scss +2 -2
  191. data/frameworks/compass/stylesheets/compass/utilities/_tables.scss +3 -3
  192. data/frameworks/compass/stylesheets/compass/utilities/_text.scss +5 -5
  193. data/frameworks/compass/stylesheets/compass/utilities/color/_contrast.scss +27 -27
  194. data/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss +44 -44
  195. data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +29 -29
  196. data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +46 -46
  197. data/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +16 -16
  198. data/frameworks/compass/stylesheets/compass/utilities/general/_reset.scss +1 -1
  199. data/frameworks/compass/stylesheets/compass/utilities/general/_tabs.scss +1 -1
  200. data/frameworks/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -18
  201. data/frameworks/compass/stylesheets/compass/utilities/links/_hover-link.scss +3 -3
  202. data/frameworks/compass/stylesheets/compass/utilities/links/_link-colors.scss +3 -3
  203. data/frameworks/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +3 -3
  204. data/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.scss +3 -3
  205. data/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +3 -3
  206. data/frameworks/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +3 -3
  207. data/frameworks/compass/stylesheets/compass/utilities/lists/_inline-list.scss +3 -3
  208. data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +65 -65
  209. data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +78 -78
  210. data/frameworks/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -22
  211. data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +33 -33
  212. data/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -9
  213. data/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.scss +3 -3
  214. data/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.scss +3 -3
  215. data/frameworks/compass/stylesheets/compass/utilities/text/_replacement.scss +3 -3
  216. data/frameworks/compass/templates/ellipsis/ellipsis.sass +8 -8
  217. data/frameworks/compass/templates/ellipsis/manifest.rb +26 -26
  218. data/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +13 -13
  219. data/frameworks/compass/templates/extension/manifest.rb +26 -26
  220. data/frameworks/compass/templates/extension/stylesheets/main.sass +1 -1
  221. data/frameworks/compass/templates/extension/templates/project/manifest.rb +2 -2
  222. data/frameworks/compass/templates/extension/templates/project/screen.sass +1 -1
  223. data/frameworks/compass/templates/pie/LICENSE +12 -12
  224. data/frameworks/compass/templates/pie/LICENSE-APACHE2.txt +13 -13
  225. data/frameworks/compass/templates/pie/LICENSE-GPL2.txt +277 -277
  226. data/frameworks/compass/templates/pie/PIE.htc +96 -96
  227. data/frameworks/compass/templates/pie/manifest.rb +39 -39
  228. data/frameworks/compass/templates/pie/pie.scss +73 -73
  229. data/frameworks/compass/templates/project/USAGE.markdown +32 -32
  230. data/frameworks/compass/templates/project/ie.sass +6 -6
  231. data/frameworks/compass/templates/project/manifest.rb +3 -3
  232. data/frameworks/compass/templates/project/print.sass +6 -6
  233. data/frameworks/compass/templates/project/screen.sass +7 -7
  234. data/lib/compass.rb +37 -37
  235. data/lib/compass/actions.rb +115 -115
  236. data/lib/compass/app_integration.rb +39 -39
  237. data/lib/compass/app_integration/rails.rb +18 -18
  238. data/lib/compass/app_integration/stand_alone.rb +22 -22
  239. data/lib/compass/app_integration/stand_alone/configuration_defaults.rb +32 -32
  240. data/lib/compass/app_integration/stand_alone/installer.rb +83 -83
  241. data/lib/compass/browser_support.rb +62 -62
  242. data/lib/compass/commands.rb +12 -12
  243. data/lib/compass/commands/base.rb +44 -44
  244. data/lib/compass/commands/clean_project.rb +79 -79
  245. data/lib/compass/commands/create_project.rb +131 -131
  246. data/lib/compass/commands/default.rb +50 -50
  247. data/lib/compass/commands/extension_command.rb +60 -60
  248. data/lib/compass/commands/generate_grid_background.rb +96 -96
  249. data/lib/compass/commands/help.rb +85 -85
  250. data/lib/compass/commands/imports.rb +35 -35
  251. data/lib/compass/commands/installer_command.rb +32 -32
  252. data/lib/compass/commands/interactive.rb +61 -61
  253. data/lib/compass/commands/list_frameworks.rb +38 -38
  254. data/lib/compass/commands/print_version.rb +99 -99
  255. data/lib/compass/commands/project_base.rb +103 -103
  256. data/lib/compass/commands/project_stats.rb +178 -178
  257. data/lib/compass/commands/project_structure.rb +93 -93
  258. data/lib/compass/commands/registry.rb +40 -40
  259. data/lib/compass/commands/sprite.rb +89 -89
  260. data/lib/compass/commands/stamp_pattern.rb +90 -90
  261. data/lib/compass/commands/unpack_extension.rb +120 -120
  262. data/lib/compass/commands/update_project.rb +139 -139
  263. data/lib/compass/commands/validate_project.rb +77 -77
  264. data/lib/compass/commands/watch_project.rb +170 -170
  265. data/lib/compass/commands/write_configuration.rb +125 -125
  266. data/lib/compass/compiler.rb +200 -200
  267. data/lib/compass/configuration.rb +91 -91
  268. data/lib/compass/configuration/adapters.rb +77 -77
  269. data/lib/compass/configuration/comments.rb +59 -59
  270. data/lib/compass/configuration/data.rb +193 -193
  271. data/lib/compass/configuration/defaults.rb +187 -187
  272. data/lib/compass/configuration/file_data.rb +21 -21
  273. data/lib/compass/configuration/helpers.rb +160 -160
  274. data/lib/compass/configuration/inheritance.rb +304 -304
  275. data/lib/compass/configuration/paths.rb +19 -19
  276. data/lib/compass/configuration/serialization.rb +88 -88
  277. data/lib/compass/dependencies.rb +12 -12
  278. data/lib/compass/errors.rb +11 -11
  279. data/lib/compass/exec.rb +23 -23
  280. data/lib/compass/exec/command_option_parser.rb +23 -23
  281. data/lib/compass/exec/global_options_parser.rb +63 -63
  282. data/lib/compass/exec/helpers.rb +21 -21
  283. data/lib/compass/exec/project_options_parser.rb +66 -66
  284. data/lib/compass/exec/sub_command_ui.rb +51 -51
  285. data/lib/compass/exec/switch_ui.rb +179 -179
  286. data/lib/compass/frameworks.rb +133 -133
  287. data/lib/compass/grid_builder.rb +102 -102
  288. data/lib/compass/installers.rb +3 -3
  289. data/lib/compass/installers/bare_installer.rb +58 -58
  290. data/lib/compass/installers/base.rb +187 -187
  291. data/lib/compass/installers/manifest.rb +161 -161
  292. data/lib/compass/installers/manifest_installer.rb +61 -61
  293. data/lib/compass/installers/template_context.rb +43 -43
  294. data/lib/compass/logger.rb +103 -103
  295. data/lib/compass/quick_cache.rb +15 -15
  296. data/lib/compass/rails.rb +2 -2
  297. data/lib/compass/sass_extensions.rb +10 -10
  298. data/lib/compass/sass_extensions/functions.rb +34 -34
  299. data/lib/compass/sass_extensions/functions/colors.rb +67 -67
  300. data/lib/compass/sass_extensions/functions/constants.rb +74 -74
  301. data/lib/compass/sass_extensions/functions/cross_browser_support.rb +70 -70
  302. data/lib/compass/sass_extensions/functions/display.rb +27 -27
  303. data/lib/compass/sass_extensions/functions/enumerate.rb +6 -6
  304. data/lib/compass/sass_extensions/functions/env.rb +5 -5
  305. data/lib/compass/sass_extensions/functions/font_files.rb +41 -41
  306. data/lib/compass/sass_extensions/functions/gradient_support.rb +540 -540
  307. data/lib/compass/sass_extensions/functions/image_size.rb +113 -113
  308. data/lib/compass/sass_extensions/functions/inline_image.rb +64 -64
  309. data/lib/compass/sass_extensions/functions/lists.rb +101 -101
  310. data/lib/compass/sass_extensions/functions/math.rb +63 -63
  311. data/lib/compass/sass_extensions/functions/selectors.rb +63 -63
  312. data/lib/compass/sass_extensions/functions/sprites.rb +218 -218
  313. data/lib/compass/sass_extensions/functions/urls.rb +266 -266
  314. data/lib/compass/sass_extensions/monkey_patches.rb +3 -3
  315. data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +95 -95
  316. data/lib/compass/sass_extensions/monkey_patches/traversal.rb +23 -23
  317. data/lib/compass/sass_extensions/sprites.rb +19 -19
  318. data/lib/compass/sass_extensions/sprites/engines.rb +25 -25
  319. data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rb +30 -30
  320. data/lib/compass/sass_extensions/sprites/image.rb +151 -151
  321. data/lib/compass/sass_extensions/sprites/image_methods.rb +31 -31
  322. data/lib/compass/sass_extensions/sprites/image_row.rb +46 -46
  323. data/lib/compass/sass_extensions/sprites/layout_methods.rb +158 -158
  324. data/lib/compass/sass_extensions/sprites/row_fitter.rb +91 -91
  325. data/lib/compass/sass_extensions/sprites/sprite_map.rb +86 -86
  326. data/lib/compass/sass_extensions/sprites/sprite_methods.rb +141 -141
  327. data/lib/compass/sprite_importer.rb +116 -116
  328. data/lib/compass/sprite_importer/binding.rb +10 -10
  329. data/lib/compass/sprite_importer/content.erb +80 -80
  330. data/lib/compass/stats.rb +99 -99
  331. data/lib/compass/test_case.rb +38 -38
  332. data/lib/compass/util.rb +29 -29
  333. data/lib/compass/validator.rb +16 -16
  334. data/lib/compass/version.rb +60 -60
  335. data/test/fixtures/extensions/only_stylesheets/compass_init.rb +1 -1
  336. data/test/fixtures/extensions/only_stylesheets/scss/only_stylesheets/foo.scss +3 -3
  337. data/test/fixtures/fonts/bgrove.base64.txt +1 -1
  338. data/test/fixtures/fonts/bgrove.ttf +0 -0
  339. data/test/fixtures/sprites/public/images/ko/starbg26x27.png +0 -0
  340. data/test/fixtures/stylesheets/blueprint/config.rb +14 -14
  341. data/test/fixtures/stylesheets/blueprint/css/ie.css +76 -76
  342. data/test/fixtures/stylesheets/blueprint/css/print.css +56 -56
  343. data/test/fixtures/stylesheets/blueprint/css/screen.css +815 -815
  344. data/test/fixtures/stylesheets/blueprint/css/single-imports/buttons.css +56 -56
  345. data/test/fixtures/stylesheets/blueprint/css/single-imports/colors.css +80 -80
  346. data/test/fixtures/stylesheets/blueprint/css/single-imports/debug.css +11 -11
  347. data/test/fixtures/stylesheets/blueprint/css/single-imports/fancy-type.css +30 -30
  348. data/test/fixtures/stylesheets/blueprint/css/single-imports/form.css +42 -42
  349. data/test/fixtures/stylesheets/blueprint/css/single-imports/grid.css +435 -435
  350. data/test/fixtures/stylesheets/blueprint/css/single-imports/ie.css +76 -76
  351. data/test/fixtures/stylesheets/blueprint/css/single-imports/interaction.css +46 -46
  352. data/test/fixtures/stylesheets/blueprint/css/single-imports/link-icons.css +40 -40
  353. data/test/fixtures/stylesheets/blueprint/css/single-imports/liquid.css +651 -651
  354. data/test/fixtures/stylesheets/blueprint/css/single-imports/print.css +60 -60
  355. data/test/fixtures/stylesheets/blueprint/css/single-imports/reset-utilities.css +75 -75
  356. data/test/fixtures/stylesheets/blueprint/css/single-imports/reset.css +42 -42
  357. data/test/fixtures/stylesheets/blueprint/css/single-imports/rtl.css +437 -437
  358. data/test/fixtures/stylesheets/blueprint/css/single-imports/scaffolding.css +45 -45
  359. data/test/fixtures/stylesheets/blueprint/css/single-imports/typography.css +146 -146
  360. data/test/fixtures/stylesheets/blueprint/css/single-imports/utilities.css +35 -35
  361. data/test/fixtures/stylesheets/blueprint/sass/ie.sass +3 -3
  362. data/test/fixtures/stylesheets/blueprint/sass/print.sass +3 -3
  363. data/test/fixtures/stylesheets/blueprint/sass/screen.sass +18 -18
  364. data/test/fixtures/stylesheets/blueprint/sass/single-imports/buttons.scss +3 -3
  365. data/test/fixtures/stylesheets/blueprint/sass/single-imports/colors.scss +34 -34
  366. data/test/fixtures/stylesheets/blueprint/sass/single-imports/debug.scss +3 -3
  367. data/test/fixtures/stylesheets/blueprint/sass/single-imports/fancy-type.scss +3 -3
  368. data/test/fixtures/stylesheets/blueprint/sass/single-imports/form.scss +4 -4
  369. data/test/fixtures/stylesheets/blueprint/sass/single-imports/grid.scss +2 -2
  370. data/test/fixtures/stylesheets/blueprint/sass/single-imports/ie.scss +2 -2
  371. data/test/fixtures/stylesheets/blueprint/sass/single-imports/interaction.scss +3 -3
  372. data/test/fixtures/stylesheets/blueprint/sass/single-imports/link-icons.scss +12 -12
  373. data/test/fixtures/stylesheets/blueprint/sass/single-imports/liquid.scss +2 -2
  374. data/test/fixtures/stylesheets/blueprint/sass/single-imports/print.scss +4 -4
  375. data/test/fixtures/stylesheets/blueprint/sass/single-imports/reset-utilities.scss +4 -4
  376. data/test/fixtures/stylesheets/blueprint/sass/single-imports/reset.scss +1 -1
  377. data/test/fixtures/stylesheets/blueprint/sass/single-imports/rtl.scss +2 -2
  378. data/test/fixtures/stylesheets/blueprint/sass/single-imports/scaffolding.scss +5 -5
  379. data/test/fixtures/stylesheets/blueprint/sass/single-imports/typography.scss +3 -3
  380. data/test/fixtures/stylesheets/blueprint/sass/single-imports/utilities.scss +3 -3
  381. data/test/fixtures/stylesheets/busted_image_urls/config.rb +29 -29
  382. data/test/fixtures/stylesheets/busted_image_urls/css/screen.css +9 -9
  383. data/test/fixtures/stylesheets/busted_image_urls/sass/screen.sass +13 -13
  384. data/test/fixtures/stylesheets/compass/config.rb +16 -16
  385. data/test/fixtures/stylesheets/compass/css/background-clip.css +10 -10
  386. data/test/fixtures/stylesheets/compass/css/border_radius.css +14 -14
  387. data/test/fixtures/stylesheets/compass/css/box-sizeing.css +9 -9
  388. data/test/fixtures/stylesheets/compass/css/box.css +103 -103
  389. data/test/fixtures/stylesheets/compass/css/box_shadow.css +14 -14
  390. data/test/fixtures/stylesheets/compass/css/columns.css +161 -161
  391. data/test/fixtures/stylesheets/compass/css/filters.css +29 -29
  392. data/test/fixtures/stylesheets/compass/css/fonts.css +4 -4
  393. data/test/fixtures/stylesheets/compass/css/force-wrap.css +9 -9
  394. data/test/fixtures/stylesheets/compass/css/gradients.css +202 -202
  395. data/test/fixtures/stylesheets/compass/css/grid_background.css +71 -71
  396. data/test/fixtures/stylesheets/compass/css/hyphenation.css +16 -16
  397. data/test/fixtures/stylesheets/compass/css/image_size.css +15 -15
  398. data/test/fixtures/stylesheets/compass/css/images.css +8 -8
  399. data/test/fixtures/stylesheets/compass/css/layout.css +16 -16
  400. data/test/fixtures/stylesheets/compass/css/legacy_clearfix.css +26 -26
  401. data/test/fixtures/stylesheets/compass/css/lists.css +151 -151
  402. data/test/fixtures/stylesheets/compass/css/opacity.css +3 -3
  403. data/test/fixtures/stylesheets/compass/css/pie.css +26 -26
  404. data/test/fixtures/stylesheets/compass/css/print.css +11 -11
  405. data/test/fixtures/stylesheets/compass/css/regions.css +7 -7
  406. data/test/fixtures/stylesheets/compass/css/replacement.css +59 -59
  407. data/test/fixtures/stylesheets/compass/css/reset.css +59 -59
  408. data/test/fixtures/stylesheets/compass/css/sprites.css +1262 -1262
  409. data/test/fixtures/stylesheets/compass/css/stretching.css +66 -66
  410. data/test/fixtures/stylesheets/compass/css/text_shadow.css +29 -29
  411. data/test/fixtures/stylesheets/compass/css/transform.css +441 -441
  412. data/test/fixtures/stylesheets/compass/css/transition.css +128 -128
  413. data/test/fixtures/stylesheets/compass/css/user-interface.css +4 -4
  414. data/test/fixtures/stylesheets/compass/css/utilities.css +56 -56
  415. data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +45 -45
  416. data/test/fixtures/stylesheets/compass/sass/background-clip.scss +7 -7
  417. data/test/fixtures/stylesheets/compass/sass/border_radius.scss +5 -5
  418. data/test/fixtures/stylesheets/compass/sass/box-sizeing.scss +7 -7
  419. data/test/fixtures/stylesheets/compass/sass/box.sass +49 -49
  420. data/test/fixtures/stylesheets/compass/sass/box_shadow.scss +5 -5
  421. data/test/fixtures/stylesheets/compass/sass/columns.scss +28 -28
  422. data/test/fixtures/stylesheets/compass/sass/filters.scss +24 -24
  423. data/test/fixtures/stylesheets/compass/sass/fonts.sass +2 -2
  424. data/test/fixtures/stylesheets/compass/sass/force-wrap.scss +3 -3
  425. data/test/fixtures/stylesheets/compass/sass/gradients.sass +96 -96
  426. data/test/fixtures/stylesheets/compass/sass/grid_background.scss +33 -33
  427. data/test/fixtures/stylesheets/compass/sass/hyphenation.scss +10 -10
  428. data/test/fixtures/stylesheets/compass/sass/image_size.sass +15 -15
  429. data/test/fixtures/stylesheets/compass/sass/images.scss +8 -8
  430. data/test/fixtures/stylesheets/compass/sass/layout.sass +3 -3
  431. data/test/fixtures/stylesheets/compass/sass/legacy_clearfix.scss +14 -14
  432. data/test/fixtures/stylesheets/compass/sass/lists.scss +11 -11
  433. data/test/fixtures/stylesheets/compass/sass/opacity.scss +5 -5
  434. data/test/fixtures/stylesheets/compass/sass/pie.scss +47 -47
  435. data/test/fixtures/stylesheets/compass/sass/print.sass +5 -5
  436. data/test/fixtures/stylesheets/compass/sass/regions.scss +3 -3
  437. data/test/fixtures/stylesheets/compass/sass/replacement.scss +22 -22
  438. data/test/fixtures/stylesheets/compass/sass/reset.sass +12 -12
  439. data/test/fixtures/stylesheets/compass/sass/sprites.scss +13 -13
  440. data/test/fixtures/stylesheets/compass/sass/stretching.sass +33 -33
  441. data/test/fixtures/stylesheets/compass/sass/text_shadow.scss +11 -11
  442. data/test/fixtures/stylesheets/compass/sass/transform.scss +87 -87
  443. data/test/fixtures/stylesheets/compass/sass/transition.scss +24 -24
  444. data/test/fixtures/stylesheets/compass/sass/user-interface.scss +4 -4
  445. data/test/fixtures/stylesheets/compass/sass/utilities.scss +20 -20
  446. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm.scss +15 -15
  447. data/test/fixtures/stylesheets/envtest/config.rb +9 -9
  448. data/test/fixtures/stylesheets/envtest/css/env.css +2 -2
  449. data/test/fixtures/stylesheets/envtest/sass/env.scss +3 -3
  450. data/test/fixtures/stylesheets/error/config.rb +10 -10
  451. data/test/fixtures/stylesheets/error/sass/screen.sass +2 -2
  452. data/test/fixtures/stylesheets/image_urls/config.rb +19 -19
  453. data/test/fixtures/stylesheets/image_urls/css/screen.css +5 -5
  454. data/test/fixtures/stylesheets/image_urls/sass/screen.sass +8 -8
  455. data/test/fixtures/stylesheets/relative/config.rb +10 -10
  456. data/test/fixtures/stylesheets/relative/css/ie.css +1 -1
  457. data/test/fixtures/stylesheets/relative/css/print.css +1 -1
  458. data/test/fixtures/stylesheets/relative/css/screen.css +1 -1
  459. data/test/fixtures/stylesheets/relative/sass/ie.sass +5 -5
  460. data/test/fixtures/stylesheets/relative/sass/print.sass +3 -3
  461. data/test/fixtures/stylesheets/relative/sass/screen.sass +2 -2
  462. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/config.rb +25 -25
  463. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/sass/ie.scss +5 -5
  464. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/sass/print.scss +3 -3
  465. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/sass/screen.scss +6 -6
  466. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/stylesheets/ie.css +5 -5
  467. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/stylesheets/print.css +3 -3
  468. data/test/fixtures/stylesheets/uses_only_stylesheets_ext/stylesheets/screen.css +68 -68
  469. data/test/fixtures/stylesheets/valid/config.rb +9 -9
  470. data/test/fixtures/stylesheets/valid/sass/simple.sass +1 -1
  471. data/test/helpers/command_line.rb +114 -114
  472. data/test/helpers/diff.rb +48 -48
  473. data/test/helpers/io.rb +36 -36
  474. data/test/helpers/rails.rb +55 -55
  475. data/test/helpers/test_case.rb +62 -62
  476. data/test/integrations/compass_test.rb +224 -224
  477. data/test/integrations/sprites_test.rb +843 -843
  478. data/test/test_helper.rb +73 -73
  479. data/test/units/actions_test.rb +23 -23
  480. data/test/units/command_line_test.rb +60 -60
  481. data/test/units/compass_module_test.rb +36 -36
  482. data/test/units/compass_png_test.rb +45 -45
  483. data/test/units/compiler_test.rb +10 -10
  484. data/test/units/configuration_test.rb +440 -440
  485. data/test/units/regressions_test.rb +35 -35
  486. data/test/units/sass_extensions_test.rb +198 -198
  487. data/test/units/sprites/engine_test.rb +47 -47
  488. data/test/units/sprites/image_row_test.rb +57 -57
  489. data/test/units/sprites/image_test.rb +99 -99
  490. data/test/units/sprites/importer_test.rb +90 -90
  491. data/test/units/sprites/layout_test.rb +154 -154
  492. data/test/units/sprites/row_fitter_test.rb +65 -65
  493. data/test/units/sprites/sprite_command_test.rb +54 -54
  494. data/test/units/sprites/sprite_map_test.rb +130 -130
  495. metadata +1304 -1310
@@ -1,49 +1,49 @@
1
- require 'diff/lcs'
2
- require 'diff/lcs/hunk'
3
- module Compass
4
- module Diff
5
- #stole this from rspec who stole this from the gem
6
- def diff_as_string(data_new, data_old)
7
- data_old = data_old.split(/\n/).map! { |e| e.chomp }
8
- data_new = data_new.split(/\n/).map! { |e| e.chomp }
9
- output = ""
10
- diffs = ::Diff::LCS.diff(data_old, data_new)
11
- return output if diffs.empty?
12
- oldhunk = hunk = nil
13
- file_length_difference = 0
14
- diffs.each do |piece|
15
- begin
16
- hunk = ::Diff::LCS::Hunk.new(
17
- data_old, data_new, piece, context_lines, file_length_difference
18
- )
19
- file_length_difference = hunk.file_length_difference
20
- next unless oldhunk
21
- # Hunks may overlap, which is why we need to be careful when our
22
- # diff includes lines of context. Otherwise, we might print
23
- # redundant lines.
24
- if (context_lines > 0) and hunk.overlaps?(oldhunk)
25
- hunk.unshift(oldhunk)
26
- else
27
- output << oldhunk.diff(format)
28
- end
29
- ensure
30
- oldhunk = hunk
31
- output << "\n"
32
- end
33
- end
34
- #Handle the last remaining hunk
35
- output << oldhunk.diff(format) << "\n"
36
- end
37
-
38
- protected
39
-
40
- def format
41
- :unified
42
- end
43
-
44
- def context_lines
45
- 3
46
- end
47
-
48
- end
1
+ require 'diff/lcs'
2
+ require 'diff/lcs/hunk'
3
+ module Compass
4
+ module Diff
5
+ #stole this from rspec who stole this from the gem
6
+ def diff_as_string(data_new, data_old)
7
+ data_old = data_old.split(/\n/).map! { |e| e.chomp }
8
+ data_new = data_new.split(/\n/).map! { |e| e.chomp }
9
+ output = ""
10
+ diffs = ::Diff::LCS.diff(data_old, data_new)
11
+ return output if diffs.empty?
12
+ oldhunk = hunk = nil
13
+ file_length_difference = 0
14
+ diffs.each do |piece|
15
+ begin
16
+ hunk = ::Diff::LCS::Hunk.new(
17
+ data_old, data_new, piece, context_lines, file_length_difference
18
+ )
19
+ file_length_difference = hunk.file_length_difference
20
+ next unless oldhunk
21
+ # Hunks may overlap, which is why we need to be careful when our
22
+ # diff includes lines of context. Otherwise, we might print
23
+ # redundant lines.
24
+ if (context_lines > 0) and hunk.overlaps?(oldhunk)
25
+ hunk.unshift(oldhunk)
26
+ else
27
+ output << oldhunk.diff(format)
28
+ end
29
+ ensure
30
+ oldhunk = hunk
31
+ output << "\n"
32
+ end
33
+ end
34
+ #Handle the last remaining hunk
35
+ output << oldhunk.diff(format) << "\n"
36
+ end
37
+
38
+ protected
39
+
40
+ def format
41
+ :unified
42
+ end
43
+
44
+ def context_lines
45
+ 3
46
+ end
47
+
48
+ end
49
49
  end
@@ -1,36 +1,36 @@
1
- module Compass
2
- module IoHelper
3
- def capture_output
4
- real_stdout, $stdout = $stdout, StringIO.new
5
- yield
6
- $stdout.string
7
- ensure
8
- $stdout = real_stdout
9
- end
10
-
11
- def capture_warning
12
- real_stderr, $stderr = $stderr, StringIO.new
13
- yield
14
- $stderr.string
15
- ensure
16
- $stderr = real_stderr
17
- end
18
-
19
- def capture_pipe(io, options = {})
20
- options[:wait] = 0.25
21
- options[:timeout] = 1.0
22
- output = ""
23
- eof_at = nil
24
- while !eof_at || (Time.now - eof_at < options[:wait])
25
- if io.eof?
26
- eof_at ||= Time.now
27
- sleep 0.1
28
- else
29
- eof_at = nil
30
- timeout(options[:timeout]) { output << io.readpartial(1024) }
31
- end
32
- end
33
- output
34
- end
35
- end
36
- end
1
+ module Compass
2
+ module IoHelper
3
+ def capture_output
4
+ real_stdout, $stdout = $stdout, StringIO.new
5
+ yield
6
+ $stdout.string
7
+ ensure
8
+ $stdout = real_stdout
9
+ end
10
+
11
+ def capture_warning
12
+ real_stderr, $stderr = $stderr, StringIO.new
13
+ yield
14
+ $stderr.string
15
+ ensure
16
+ $stderr = real_stderr
17
+ end
18
+
19
+ def capture_pipe(io, options = {})
20
+ options[:wait] = 0.25
21
+ options[:timeout] = 1.0
22
+ output = ""
23
+ eof_at = nil
24
+ while !eof_at || (Time.now - eof_at < options[:wait])
25
+ if io.eof?
26
+ eof_at ||= Time.now
27
+ sleep 0.1
28
+ else
29
+ eof_at = nil
30
+ timeout(options[:timeout]) { output << io.readpartial(1024) }
31
+ end
32
+ end
33
+ output
34
+ end
35
+ end
36
+ end
@@ -1,55 +1,55 @@
1
- module Compass
2
- module RailsHelper
3
- def generate_rails_app_directories(name)
4
- Dir.mkdir name
5
- Dir.mkdir File.join(name, "config")
6
- Dir.mkdir File.join(name, "config", "initializers")
7
- Dir.mkdir File.join(name, "tmp")
8
- end
9
-
10
- # Generate a rails application without polluting our current set of requires
11
- # with the rails libraries. This will allow testing against multiple versions of rails
12
- # by manipulating the load path.
13
- def generate_rails_app(name, dir = nil)
14
- if pid = fork
15
- Process.wait(pid)
16
- if $?.exitstatus == 2
17
- raise LoadError, "Couldn't load rails"
18
- elsif $?.exitstatus != 0
19
- raise "Failed to generate rails application."
20
- end
21
- else
22
- begin
23
- require 'action_pack/version'
24
- if ActionPack::VERSION::MAJOR >= 3
25
- require 'rails/generators'
26
- require 'rails/generators/rails/app/app_generator'
27
- require 'mocha'
28
- dir ||= File.join(File.expand_path('../../', __FILE__))
29
- args = [File.join(dir, name), '-q', '-f', '--skip-bundle', '--skip-gemfile']
30
-
31
- #stub this so you can generate more apps
32
- Rails::Generators::AppGenerator.any_instance.stubs(:valid_const?).returns(true)
33
- Rails::Generators::AppGenerator.start(args, {:destination_root => dir})
34
-
35
- else
36
- require 'rails/version'
37
- require 'rails_generator'
38
- require 'rails_generator/scripts/generate'
39
- Rails::Generator::Base.use_application_sources!
40
- capture_output do
41
- Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new $stdout
42
- Rails::Generator::Scripts::Generate.new.run([name], :generator => 'app')
43
- end
44
- end
45
- rescue LoadError
46
- Kernel.exit!(2)
47
- rescue => e
48
- $stderr.puts e
49
- Kernel.exit!(1)
50
- end
51
- Kernel.exit!(0)
52
- end
53
- end
54
- end
55
- end
1
+ module Compass
2
+ module RailsHelper
3
+ def generate_rails_app_directories(name)
4
+ Dir.mkdir name
5
+ Dir.mkdir File.join(name, "config")
6
+ Dir.mkdir File.join(name, "config", "initializers")
7
+ Dir.mkdir File.join(name, "tmp")
8
+ end
9
+
10
+ # Generate a rails application without polluting our current set of requires
11
+ # with the rails libraries. This will allow testing against multiple versions of rails
12
+ # by manipulating the load path.
13
+ def generate_rails_app(name, dir = nil)
14
+ if pid = fork
15
+ Process.wait(pid)
16
+ if $?.exitstatus == 2
17
+ raise LoadError, "Couldn't load rails"
18
+ elsif $?.exitstatus != 0
19
+ raise "Failed to generate rails application."
20
+ end
21
+ else
22
+ begin
23
+ require 'action_pack/version'
24
+ if ActionPack::VERSION::MAJOR >= 3
25
+ require 'rails/generators'
26
+ require 'rails/generators/rails/app/app_generator'
27
+ require 'mocha'
28
+ dir ||= File.join(File.expand_path('../../', __FILE__))
29
+ args = [File.join(dir, name), '-q', '-f', '--skip-bundle', '--skip-gemfile']
30
+
31
+ #stub this so you can generate more apps
32
+ Rails::Generators::AppGenerator.any_instance.stubs(:valid_const?).returns(true)
33
+ Rails::Generators::AppGenerator.start(args, {:destination_root => dir})
34
+
35
+ else
36
+ require 'rails/version'
37
+ require 'rails_generator'
38
+ require 'rails_generator/scripts/generate'
39
+ Rails::Generator::Base.use_application_sources!
40
+ capture_output do
41
+ Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new $stdout
42
+ Rails::Generator::Scripts::Generate.new.run([name], :generator => 'app')
43
+ end
44
+ end
45
+ rescue LoadError
46
+ Kernel.exit!(2)
47
+ rescue => e
48
+ $stderr.puts e
49
+ Kernel.exit!(1)
50
+ end
51
+ Kernel.exit!(0)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,62 +1,62 @@
1
- module Compass
2
- module TestCaseHelper
3
- def absolutize(path)
4
- if Compass::Util.blank?(path)
5
- File.expand_path('../../', __FILE__)
6
- elsif path[0] == ?/
7
- File.join(File.expand_path('../', __FILE__), path)
8
- else
9
- File.join(File.expand_path('../../', __FILE__), path)
10
- end
11
- end
12
-
13
- # compile a Sass string in the context of a project in the current working directory.
14
- def compile_for_project(contents, options = {})
15
- Compass.add_project_configuration
16
- options[:syntax] ||= :scss
17
- Sass::Engine.new(contents, Compass.configuration.to_sass_engine_options.merge(options)).render
18
- end
19
-
20
- def assert_correct(before, after)
21
- if before == after
22
- assert(true)
23
- else
24
- assert false, diff_as_string(before.inspect, after.inspect)
25
- end
26
- end
27
-
28
- module ClassMethods
29
-
30
- def let(method, &block)
31
- define_method method, &block
32
- end
33
-
34
- def it(name, &block)
35
- test(name, &block)
36
- end
37
-
38
- def test(name, &block)
39
- define_method "test_#{underscore(name)}".to_sym, &block
40
- end
41
-
42
- def setup(&block)
43
- define_method :setup do
44
- yield
45
- end
46
- end
47
-
48
- def after(&block)
49
- define_method :teardown do
50
- yield
51
- end
52
- end
53
-
54
- private
55
-
56
- def underscore(string)
57
- string.gsub(' ', '_')
58
- end
59
-
60
- end
61
- end
62
- end
1
+ module Compass
2
+ module TestCaseHelper
3
+ def absolutize(path)
4
+ if Compass::Util.blank?(path)
5
+ File.expand_path('../../', __FILE__)
6
+ elsif path[0] == ?/
7
+ File.join(File.expand_path('../', __FILE__), path)
8
+ else
9
+ File.join(File.expand_path('../../', __FILE__), path)
10
+ end
11
+ end
12
+
13
+ # compile a Sass string in the context of a project in the current working directory.
14
+ def compile_for_project(contents, options = {})
15
+ Compass.add_project_configuration
16
+ options[:syntax] ||= :scss
17
+ Sass::Engine.new(contents, Compass.configuration.to_sass_engine_options.merge(options)).render
18
+ end
19
+
20
+ def assert_correct(before, after)
21
+ if before == after
22
+ assert(true)
23
+ else
24
+ assert false, diff_as_string(before.inspect, after.inspect)
25
+ end
26
+ end
27
+
28
+ module ClassMethods
29
+
30
+ def let(method, &block)
31
+ define_method method, &block
32
+ end
33
+
34
+ def it(name, &block)
35
+ test(name, &block)
36
+ end
37
+
38
+ def test(name, &block)
39
+ define_method "test_#{underscore(name)}".to_sym, &block
40
+ end
41
+
42
+ def setup(&block)
43
+ define_method :setup do
44
+ yield
45
+ end
46
+ end
47
+
48
+ def after(&block)
49
+ define_method :teardown do
50
+ yield
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def underscore(string)
57
+ string.gsub(' ', '_')
58
+ end
59
+
60
+ end
61
+ end
62
+ end
@@ -1,224 +1,224 @@
1
- require 'test_helper'
2
- require 'fileutils'
3
- require 'compass'
4
- require 'compass/logger'
5
- require 'sass/plugin'
6
-
7
- class CompassTest < Test::Unit::TestCase
8
-
9
- def setup
10
- Compass.reset_configuration!
11
- end
12
-
13
- def teardown
14
- [:blueprint, :empty, :compass, :image_urls, :relative].each do |project_name|
15
- ::FileUtils.rm_rf tempfile_path(project_name)
16
- end
17
- end
18
-
19
- def test_on_stylesheet_saved_callback
20
- saved = false
21
- path = nil
22
- config = nil
23
- before_compile = Proc.new do |config|
24
- config.on_stylesheet_saved {|filepath| path = filepath; saved = true }
25
- end
26
- within_project(:blueprint, before_compile)
27
- assert saved, "Stylesheet callback didn't get called"
28
- assert path.is_a?(String), "Path is not a string. Got: #{path.class.name}"
29
- end
30
-
31
- # no project with errors exists to test aginst - leep of FAITH!
32
- # *chriseppstein flogs himself*
33
- def test_on_stylesheet_error_callback
34
- error = false
35
- file = nil
36
- before_compile = Proc.new do |config|
37
- config.on_stylesheet_error {|filename, message| file = filename; error = true }
38
- end
39
- within_project(:error, before_compile) rescue nil;
40
- assert error, "Project did not throw a compile error"
41
- assert file.is_a?(String), "Filename was not a string"
42
- end
43
-
44
- def test_empty_project
45
- # With no sass files, we should have no css files.
46
- within_project(:empty) do |proj|
47
- return unless proj.css_path && File.exists?(proj.css_path)
48
- Dir.new(proj.css_path).each do |f|
49
- fail "This file should not have been generated: #{f}" unless f == "." || f == ".."
50
- end
51
- end
52
- end
53
-
54
- def test_blueprint
55
- within_project(:blueprint) do |proj|
56
- each_css_file(proj.css_path) do |css_file|
57
- assert_no_errors css_file, :blueprint
58
- end
59
- each_sass_file do |sass_file|
60
- assert_renders_correctly sass_file, :ignore_charset => true
61
- end
62
- end
63
- end
64
-
65
- def test_compass
66
- within_project('compass') do |proj|
67
- each_css_file(proj.css_path) do |css_file|
68
- assert_no_errors css_file, 'compass'
69
- end
70
- each_sass_file do |sass_file|
71
- assert_renders_correctly sass_file, :ignore_charset => true
72
- end
73
- end
74
- end
75
-
76
- def test_env_in_development
77
- within_project('envtest', lambda {|c| c.environment = :development }) do |proj|
78
- each_css_file(proj.css_path) do |css_file|
79
- assert_no_errors css_file, 'envtest'
80
- end
81
- each_sass_file do |sass_file|
82
- assert_renders_correctly sass_file, :ignore_charset => true, :environment => "development"
83
- end
84
- end
85
- end
86
-
87
- def test_env_in_production
88
- within_project('envtest', lambda {|c| c.environment = :production }) do |proj|
89
- each_css_file(proj.css_path) do |css_file|
90
- assert_no_errors css_file, 'envtest'
91
- end
92
- each_sass_file do |sass_file|
93
- assert_renders_correctly sass_file, :ignore_charset => true, :environment => "production"
94
- end
95
- end
96
- end
97
-
98
- def test_busted_image_urls
99
- within_project('busted_image_urls') do |proj|
100
- each_css_file(proj.css_path) do |css_file|
101
- assert_no_errors css_file, 'busted_image_urls'
102
- end
103
- each_sass_file do |sass_file|
104
- assert_renders_correctly sass_file
105
- end
106
- end
107
- end
108
-
109
- def test_image_urls
110
- within_project('image_urls') do |proj|
111
- each_css_file(proj.css_path) do |css_file|
112
- assert_no_errors css_file, 'image_urls'
113
- end
114
- each_sass_file do |sass_file|
115
- assert_renders_correctly sass_file
116
- end
117
- end
118
- end
119
-
120
- def test_relative
121
- within_project('relative') do |proj|
122
- each_css_file(proj.css_path) do |css_file|
123
- assert_no_errors css_file, 'relative'
124
- end
125
- each_sass_file do |sass_file|
126
- assert_renders_correctly sass_file
127
- end
128
- end
129
- end
130
-
131
- private
132
- def assert_no_errors(css_file, project_name)
133
- file = css_file[(tempfile_path(project_name).size+1)..-1]
134
- msg = "Syntax Error found in #{file}. Results saved into #{save_path(project_name)}/#{file}"
135
- assert_equal 0, open(css_file).readlines.grep(/Sass::SyntaxError/).size, msg
136
- end
137
-
138
- def assert_renders_correctly(*arguments)
139
- options = arguments.last.is_a?(Hash) ? arguments.pop : {}
140
- for name in arguments
141
- actual_result_file = "#{tempfile_path(@current_project)}/#{name}.css"
142
- expected_result_file = "#{result_path(@current_project)}/#{name}.css"
143
- actual_lines = File.read(actual_result_file)
144
- actual_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
145
- actual_lines = actual_lines.split("\n").reject{|l| l=~/\A\Z/}
146
- expected_lines = ERB.new(File.read(expected_result_file)).result(binding)
147
- expected_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
148
- expected_lines = expected_lines.split("\n").reject{|l| l=~/\A\Z/}
149
- expected_lines.zip(actual_lines).each_with_index do |pair, line|
150
- if pair.first == pair.last
151
- assert(true)
152
- else
153
- assert false, "Error in #{result_path(@current_project)}/#{name}.css:#{line + 1}\n"+diff_as_string(pair.first.inspect, pair.last.inspect)
154
- end
155
- end
156
- if expected_lines.size < actual_lines.size
157
- assert(false, "#{actual_lines.size - expected_lines.size} Trailing lines found in #{actual_result_file}.css: #{actual_lines[expected_lines.size..-1].join('\n')}")
158
- end
159
- end
160
- end
161
-
162
- def within_project(project_name, config_block = nil)
163
- @current_project = project_name
164
- Compass.add_configuration(configuration_file(project_name)) if File.exists?(configuration_file(project_name))
165
- Compass.configuration.project_path = project_path(project_name)
166
- Compass.configuration.environment = :production
167
- args = Compass.configuration.to_compiler_arguments(:logger => Compass::NullLogger.new)
168
-
169
- if config_block
170
- config_block.call(Compass.configuration)
171
- end
172
-
173
- if Compass.configuration.sass_path && File.exists?(Compass.configuration.sass_path)
174
- compiler = Compass::Compiler.new *args
175
- compiler.clean!
176
- compiler.run
177
- end
178
- yield Compass.configuration if block_given?
179
- rescue
180
- save_output(project_name)
181
- raise
182
- end
183
-
184
- def each_css_file(dir, &block)
185
- Dir.glob("#{dir}/**/*.css").each(&block)
186
- end
187
-
188
- def each_sass_file(sass_dir = nil)
189
- sass_dir ||= template_path(@current_project)
190
- Dir.glob("#{sass_dir}/**/*.s[ac]ss").each do |sass_file|
191
- yield sass_file[(sass_dir.length+1)..-6]
192
- end
193
- end
194
-
195
- def save_output(dir)
196
- FileUtils.rm_rf(save_path(dir))
197
- FileUtils.cp_r(tempfile_path(dir), save_path(dir)) if File.exists?(tempfile_path(dir))
198
- end
199
-
200
- def project_path(project_name)
201
- absolutize("fixtures/stylesheets/#{project_name}")
202
- end
203
-
204
- def configuration_file(project_name)
205
- File.join(project_path(project_name), "config.rb")
206
- end
207
-
208
- def tempfile_path(project_name)
209
- File.join(project_path(project_name), "tmp")
210
- end
211
-
212
- def template_path(project_name)
213
- File.join(project_path(project_name), "sass")
214
- end
215
-
216
- def result_path(project_name)
217
- File.join(project_path(project_name), "css")
218
- end
219
-
220
- def save_path(project_name)
221
- File.join(project_path(project_name), "saved")
222
- end
223
-
224
- end
1
+ require 'test_helper'
2
+ require 'fileutils'
3
+ require 'compass'
4
+ require 'compass/logger'
5
+ require 'sass/plugin'
6
+
7
+ class CompassTest < Test::Unit::TestCase
8
+
9
+ def setup
10
+ Compass.reset_configuration!
11
+ end
12
+
13
+ def teardown
14
+ [:blueprint, :empty, :compass, :image_urls, :relative].each do |project_name|
15
+ ::FileUtils.rm_rf tempfile_path(project_name)
16
+ end
17
+ end
18
+
19
+ def test_on_stylesheet_saved_callback
20
+ saved = false
21
+ path = nil
22
+ config = nil
23
+ before_compile = Proc.new do |config|
24
+ config.on_stylesheet_saved {|filepath| path = filepath; saved = true }
25
+ end
26
+ within_project(:blueprint, before_compile)
27
+ assert saved, "Stylesheet callback didn't get called"
28
+ assert path.is_a?(String), "Path is not a string. Got: #{path.class.name}"
29
+ end
30
+
31
+ # no project with errors exists to test aginst - leep of FAITH!
32
+ # *chriseppstein flogs himself*
33
+ def test_on_stylesheet_error_callback
34
+ error = false
35
+ file = nil
36
+ before_compile = Proc.new do |config|
37
+ config.on_stylesheet_error {|filename, message| file = filename; error = true }
38
+ end
39
+ within_project(:error, before_compile) rescue nil;
40
+ assert error, "Project did not throw a compile error"
41
+ assert file.is_a?(String), "Filename was not a string"
42
+ end
43
+
44
+ def test_empty_project
45
+ # With no sass files, we should have no css files.
46
+ within_project(:empty) do |proj|
47
+ return unless proj.css_path && File.exists?(proj.css_path)
48
+ Dir.new(proj.css_path).each do |f|
49
+ fail "This file should not have been generated: #{f}" unless f == "." || f == ".."
50
+ end
51
+ end
52
+ end
53
+
54
+ def test_blueprint
55
+ within_project(:blueprint) do |proj|
56
+ each_css_file(proj.css_path) do |css_file|
57
+ assert_no_errors css_file, :blueprint
58
+ end
59
+ each_sass_file do |sass_file|
60
+ assert_renders_correctly sass_file, :ignore_charset => true
61
+ end
62
+ end
63
+ end
64
+
65
+ def test_compass
66
+ within_project('compass') do |proj|
67
+ each_css_file(proj.css_path) do |css_file|
68
+ assert_no_errors css_file, 'compass'
69
+ end
70
+ each_sass_file do |sass_file|
71
+ assert_renders_correctly sass_file, :ignore_charset => true
72
+ end
73
+ end
74
+ end
75
+
76
+ def test_env_in_development
77
+ within_project('envtest', lambda {|c| c.environment = :development }) do |proj|
78
+ each_css_file(proj.css_path) do |css_file|
79
+ assert_no_errors css_file, 'envtest'
80
+ end
81
+ each_sass_file do |sass_file|
82
+ assert_renders_correctly sass_file, :ignore_charset => true, :environment => "development"
83
+ end
84
+ end
85
+ end
86
+
87
+ def test_env_in_production
88
+ within_project('envtest', lambda {|c| c.environment = :production }) do |proj|
89
+ each_css_file(proj.css_path) do |css_file|
90
+ assert_no_errors css_file, 'envtest'
91
+ end
92
+ each_sass_file do |sass_file|
93
+ assert_renders_correctly sass_file, :ignore_charset => true, :environment => "production"
94
+ end
95
+ end
96
+ end
97
+
98
+ def test_busted_image_urls
99
+ within_project('busted_image_urls') do |proj|
100
+ each_css_file(proj.css_path) do |css_file|
101
+ assert_no_errors css_file, 'busted_image_urls'
102
+ end
103
+ each_sass_file do |sass_file|
104
+ assert_renders_correctly sass_file
105
+ end
106
+ end
107
+ end
108
+
109
+ def test_image_urls
110
+ within_project('image_urls') do |proj|
111
+ each_css_file(proj.css_path) do |css_file|
112
+ assert_no_errors css_file, 'image_urls'
113
+ end
114
+ each_sass_file do |sass_file|
115
+ assert_renders_correctly sass_file
116
+ end
117
+ end
118
+ end
119
+
120
+ def test_relative
121
+ within_project('relative') do |proj|
122
+ each_css_file(proj.css_path) do |css_file|
123
+ assert_no_errors css_file, 'relative'
124
+ end
125
+ each_sass_file do |sass_file|
126
+ assert_renders_correctly sass_file
127
+ end
128
+ end
129
+ end
130
+
131
+ private
132
+ def assert_no_errors(css_file, project_name)
133
+ file = css_file[(tempfile_path(project_name).size+1)..-1]
134
+ msg = "Syntax Error found in #{file}. Results saved into #{save_path(project_name)}/#{file}"
135
+ assert_equal 0, open(css_file).readlines.grep(/Sass::SyntaxError/).size, msg
136
+ end
137
+
138
+ def assert_renders_correctly(*arguments)
139
+ options = arguments.last.is_a?(Hash) ? arguments.pop : {}
140
+ for name in arguments
141
+ actual_result_file = "#{tempfile_path(@current_project)}/#{name}.css"
142
+ expected_result_file = "#{result_path(@current_project)}/#{name}.css"
143
+ actual_lines = File.read(actual_result_file)
144
+ actual_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
145
+ actual_lines = actual_lines.split("\n").reject{|l| l=~/\A\Z/}
146
+ expected_lines = ERB.new(File.read(expected_result_file)).result(binding)
147
+ expected_lines.gsub!(/^@charset[^;]+;/,'') if options[:ignore_charset]
148
+ expected_lines = expected_lines.split("\n").reject{|l| l=~/\A\Z/}
149
+ expected_lines.zip(actual_lines).each_with_index do |pair, line|
150
+ if pair.first == pair.last
151
+ assert(true)
152
+ else
153
+ assert false, "Error in #{result_path(@current_project)}/#{name}.css:#{line + 1}\n"+diff_as_string(pair.first.inspect, pair.last.inspect)
154
+ end
155
+ end
156
+ if expected_lines.size < actual_lines.size
157
+ assert(false, "#{actual_lines.size - expected_lines.size} Trailing lines found in #{actual_result_file}.css: #{actual_lines[expected_lines.size..-1].join('\n')}")
158
+ end
159
+ end
160
+ end
161
+
162
+ def within_project(project_name, config_block = nil)
163
+ @current_project = project_name
164
+ Compass.add_configuration(configuration_file(project_name)) if File.exists?(configuration_file(project_name))
165
+ Compass.configuration.project_path = project_path(project_name)
166
+ Compass.configuration.environment = :production
167
+ args = Compass.configuration.to_compiler_arguments(:logger => Compass::NullLogger.new)
168
+
169
+ if config_block
170
+ config_block.call(Compass.configuration)
171
+ end
172
+
173
+ if Compass.configuration.sass_path && File.exists?(Compass.configuration.sass_path)
174
+ compiler = Compass::Compiler.new *args
175
+ compiler.clean!
176
+ compiler.run
177
+ end
178
+ yield Compass.configuration if block_given?
179
+ rescue
180
+ save_output(project_name)
181
+ raise
182
+ end
183
+
184
+ def each_css_file(dir, &block)
185
+ Dir.glob("#{dir}/**/*.css").each(&block)
186
+ end
187
+
188
+ def each_sass_file(sass_dir = nil)
189
+ sass_dir ||= template_path(@current_project)
190
+ Dir.glob("#{sass_dir}/**/*.s[ac]ss").each do |sass_file|
191
+ yield sass_file[(sass_dir.length+1)..-6]
192
+ end
193
+ end
194
+
195
+ def save_output(dir)
196
+ FileUtils.rm_rf(save_path(dir))
197
+ FileUtils.cp_r(tempfile_path(dir), save_path(dir)) if File.exists?(tempfile_path(dir))
198
+ end
199
+
200
+ def project_path(project_name)
201
+ absolutize("fixtures/stylesheets/#{project_name}")
202
+ end
203
+
204
+ def configuration_file(project_name)
205
+ File.join(project_path(project_name), "config.rb")
206
+ end
207
+
208
+ def tempfile_path(project_name)
209
+ File.join(project_path(project_name), "tmp")
210
+ end
211
+
212
+ def template_path(project_name)
213
+ File.join(project_path(project_name), "sass")
214
+ end
215
+
216
+ def result_path(project_name)
217
+ File.join(project_path(project_name), "css")
218
+ end
219
+
220
+ def save_path(project_name)
221
+ File.join(project_path(project_name), "saved")
222
+ end
223
+
224
+ end