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,21 +1,21 @@
1
- module Compass
2
- module Configuration
3
- class FileData < Data
4
- def self.new_from_file(config_file, defaults = nil)
5
- data = new(config_file)
6
- data.with_defaults(defaults) do
7
- data._parse(config_file)
8
- end
9
- data
10
- end
11
-
12
- def self.new_from_string(contents, filename, defaults = nil)
13
- data = new(filename)
14
- data.with_defaults(defaults) do
15
- data.parse_string(contents, filename)
16
- end
17
- data
18
- end
19
- end
20
- end
21
- end
1
+ module Compass
2
+ module Configuration
3
+ class FileData < Data
4
+ def self.new_from_file(config_file, defaults = nil)
5
+ data = new(config_file)
6
+ data.with_defaults(defaults) do
7
+ data._parse(config_file)
8
+ end
9
+ data
10
+ end
11
+
12
+ def self.new_from_string(contents, filename, defaults = nil)
13
+ data = new(filename)
14
+ data.with_defaults(defaults) do
15
+ data.parse_string(contents, filename)
16
+ end
17
+ data
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,160 +1,160 @@
1
- module Compass
2
- module Configuration
3
- @callbacks_loaded = false
4
- # The helpers are available as methods on the Compass module. E.g. Compass.configuration
5
- module Helpers
6
- def configuration
7
- @configuration ||= default_configuration
8
- if block_given?
9
- yield @configuration
10
- end
11
- @configuration
12
- end
13
-
14
- def default_configuration
15
- Data.new('defaults').extend(Defaults).extend(Comments)
16
- end
17
-
18
- def add_configuration(config, filename = nil)
19
- return if config.nil?
20
-
21
-
22
- data = configuration_for(config, filename)
23
-
24
- # puts "New configuration: #{data.name}"
25
- # puts caller.join("\n")
26
- data.inherit_from!(configuration)
27
- data.on_top!
28
- @configuration = data
29
- end
30
-
31
- def configuration_for(config, filename = nil, defaults = nil)
32
- if config.nil?
33
- nil
34
- elsif config.is_a?(Compass::Configuration::Data)
35
- config
36
- elsif config.respond_to?(:read)
37
- filename ||= config.to_s if config.is_a?(Pathname)
38
- Compass::Configuration::FileData.new_from_string(config.read, filename, defaults)
39
- elsif config.is_a?(Hash)
40
- Compass::Configuration::Data.new(filename, config)
41
- elsif config.is_a?(String)
42
- Compass::Configuration::FileData.new_from_file(config, defaults)
43
- elsif config.is_a?(Symbol)
44
- Compass::AppIntegration.lookup(config).configuration
45
- else
46
- raise "I don't know what to do with: #{config.inspect}"
47
- end
48
- end
49
-
50
- # Support for testing.
51
- def reset_configuration!
52
- @configuration = nil
53
- end
54
-
55
- def sass_plugin_configuration
56
- configuration.to_sass_plugin_options
57
- end
58
-
59
- def configure_sass_plugin!
60
- require 'sass/plugin'
61
- config = sass_plugin_configuration
62
- locations = config.delete(:template_location)
63
- Sass::Plugin.options.merge!(config)
64
- locations.each do |sass_dir, css_dir|
65
- unless Sass::Plugin.engine_options[:load_paths].include?(sass_dir)
66
- Sass::Plugin.add_template_location sass_dir, css_dir
67
- end
68
- end
69
- unless @callbacks_loaded
70
- on_saved = Proc.new do |sass_file, css_file|
71
- Compass.configuration.run_stylesheet_saved(css_file)
72
- end
73
- if Sass::Plugin.respond_to?(:on_updated_stylesheet)
74
- Sass::Plugin.on_updated_stylesheet(&on_saved)
75
- else
76
- Sass::Plugin.on_updating_stylesheet(&on_saved)
77
- end
78
-
79
- Sass::Plugin.on_compilation_error do |e, filename, css|
80
- Compass.configuration.run_stylesheet_error(filename, e.message)
81
- end
82
-
83
- @callbacks_loaded = true
84
- end
85
- end
86
-
87
- def sass_engine_options
88
- configuration.to_sass_engine_options
89
- end
90
-
91
- # Read the configuration file for this project
92
- def add_project_configuration(*args)
93
- options = args.last.is_a?(Hash) ? args.pop : {}
94
- configuration_file_path = args.shift || detect_configuration_file
95
-
96
- raise ArgumentError, "Too many arguments" if args.any?
97
- if AppIntegration.default? && data = configuration_for(configuration_file_path, nil, configuration_for(options[:defaults]))
98
- if data.raw_project_type
99
- add_configuration(data.raw_project_type.to_sym)
100
- elsif options[:project_type]
101
- add_configuration(options[:project_type])
102
- else
103
- add_configuration(:stand_alone)
104
- end
105
- add_configuration(data)
106
- else
107
- add_configuration(options[:project_type] || configuration.project_type_without_default || (yield if block_given?) || :stand_alone)
108
- end
109
- end
110
-
111
- def discover_extensions!
112
- Compass.shared_extension_paths.each do |extensions_path|
113
- if File.directory?(extensions_path)
114
- Compass::Frameworks.discover(extensions_path)
115
- end
116
- end
117
- if File.directory?(configuration.extensions_path)
118
- Compass::Frameworks.discover(configuration.extensions_path)
119
- end
120
- end
121
-
122
- # Returns a full path to the relative path to the project directory
123
- def projectize(path, project_path = nil)
124
- project_path ||= configuration.project_path
125
- File.join(project_path, *path.split('/'))
126
- end
127
-
128
- def deprojectize(path, project_path = nil)
129
- project_path ||= configuration.project_path
130
- if path[0..(project_path.size - 1)] == project_path
131
- path[(project_path.size + 1)..-1]
132
- else
133
- path
134
- end
135
- end
136
-
137
- # TODO: Deprecate the src/config.rb location.
138
- KNOWN_CONFIG_LOCATIONS = ['config/compass.rb', ".compass/config.rb", "config/compass.config", "config.rb", "src/config.rb"]
139
-
140
- # Finds the configuration file, if it exists in a known location.
141
- def detect_configuration_file(project_path = nil)
142
- possible_files = KNOWN_CONFIG_LOCATIONS.map{|f| projectize(f, project_path) }
143
- possible_files.detect{|f| File.exists?(f)}
144
- end
145
-
146
- def handle_configuration_change!
147
- if (compiler = Compass.compiler).new_config?
148
- compiler.clean!
149
- end
150
- end
151
-
152
- def compiler
153
- Compass::Compiler.new(*Compass.configuration.to_compiler_arguments)
154
- end
155
- end
156
- end
157
-
158
- extend Configuration::Helpers
159
-
160
- end
1
+ module Compass
2
+ module Configuration
3
+ @callbacks_loaded = false
4
+ # The helpers are available as methods on the Compass module. E.g. Compass.configuration
5
+ module Helpers
6
+ def configuration
7
+ @configuration ||= default_configuration
8
+ if block_given?
9
+ yield @configuration
10
+ end
11
+ @configuration
12
+ end
13
+
14
+ def default_configuration
15
+ Data.new('defaults').extend(Defaults).extend(Comments)
16
+ end
17
+
18
+ def add_configuration(config, filename = nil)
19
+ return if config.nil?
20
+
21
+
22
+ data = configuration_for(config, filename)
23
+
24
+ # puts "New configuration: #{data.name}"
25
+ # puts caller.join("\n")
26
+ data.inherit_from!(configuration)
27
+ data.on_top!
28
+ @configuration = data
29
+ end
30
+
31
+ def configuration_for(config, filename = nil, defaults = nil)
32
+ if config.nil?
33
+ nil
34
+ elsif config.is_a?(Compass::Configuration::Data)
35
+ config
36
+ elsif config.respond_to?(:read)
37
+ filename ||= config.to_s if config.is_a?(Pathname)
38
+ Compass::Configuration::FileData.new_from_string(config.read, filename, defaults)
39
+ elsif config.is_a?(Hash)
40
+ Compass::Configuration::Data.new(filename, config)
41
+ elsif config.is_a?(String)
42
+ Compass::Configuration::FileData.new_from_file(config, defaults)
43
+ elsif config.is_a?(Symbol)
44
+ Compass::AppIntegration.lookup(config).configuration
45
+ else
46
+ raise "I don't know what to do with: #{config.inspect}"
47
+ end
48
+ end
49
+
50
+ # Support for testing.
51
+ def reset_configuration!
52
+ @configuration = nil
53
+ end
54
+
55
+ def sass_plugin_configuration
56
+ configuration.to_sass_plugin_options
57
+ end
58
+
59
+ def configure_sass_plugin!
60
+ require 'sass/plugin'
61
+ config = sass_plugin_configuration
62
+ locations = config.delete(:template_location)
63
+ Sass::Plugin.options.merge!(config)
64
+ locations.each do |sass_dir, css_dir|
65
+ unless Sass::Plugin.engine_options[:load_paths].include?(sass_dir)
66
+ Sass::Plugin.add_template_location sass_dir, css_dir
67
+ end
68
+ end
69
+ unless @callbacks_loaded
70
+ on_saved = Proc.new do |sass_file, css_file|
71
+ Compass.configuration.run_stylesheet_saved(css_file)
72
+ end
73
+ if Sass::Plugin.respond_to?(:on_updated_stylesheet)
74
+ Sass::Plugin.on_updated_stylesheet(&on_saved)
75
+ else
76
+ Sass::Plugin.on_updating_stylesheet(&on_saved)
77
+ end
78
+
79
+ Sass::Plugin.on_compilation_error do |e, filename, css|
80
+ Compass.configuration.run_stylesheet_error(filename, e.message)
81
+ end
82
+
83
+ @callbacks_loaded = true
84
+ end
85
+ end
86
+
87
+ def sass_engine_options
88
+ configuration.to_sass_engine_options
89
+ end
90
+
91
+ # Read the configuration file for this project
92
+ def add_project_configuration(*args)
93
+ options = args.last.is_a?(Hash) ? args.pop : {}
94
+ configuration_file_path = args.shift || detect_configuration_file
95
+
96
+ raise ArgumentError, "Too many arguments" if args.any?
97
+ if AppIntegration.default? && data = configuration_for(configuration_file_path, nil, configuration_for(options[:defaults]))
98
+ if data.raw_project_type
99
+ add_configuration(data.raw_project_type.to_sym)
100
+ elsif options[:project_type]
101
+ add_configuration(options[:project_type])
102
+ else
103
+ add_configuration(:stand_alone)
104
+ end
105
+ add_configuration(data)
106
+ else
107
+ add_configuration(options[:project_type] || configuration.project_type_without_default || (yield if block_given?) || :stand_alone)
108
+ end
109
+ end
110
+
111
+ def discover_extensions!
112
+ Compass.shared_extension_paths.each do |extensions_path|
113
+ if File.directory?(extensions_path)
114
+ Compass::Frameworks.discover(extensions_path)
115
+ end
116
+ end
117
+ if File.directory?(configuration.extensions_path)
118
+ Compass::Frameworks.discover(configuration.extensions_path)
119
+ end
120
+ end
121
+
122
+ # Returns a full path to the relative path to the project directory
123
+ def projectize(path, project_path = nil)
124
+ project_path ||= configuration.project_path
125
+ File.join(project_path, *path.split('/'))
126
+ end
127
+
128
+ def deprojectize(path, project_path = nil)
129
+ project_path ||= configuration.project_path
130
+ if path[0..(project_path.size - 1)] == project_path
131
+ path[(project_path.size + 1)..-1]
132
+ else
133
+ path
134
+ end
135
+ end
136
+
137
+ # TODO: Deprecate the src/config.rb location.
138
+ KNOWN_CONFIG_LOCATIONS = ['config/compass.rb', ".compass/config.rb", "config/compass.config", "config.rb", "src/config.rb"]
139
+
140
+ # Finds the configuration file, if it exists in a known location.
141
+ def detect_configuration_file(project_path = nil)
142
+ possible_files = KNOWN_CONFIG_LOCATIONS.map{|f| projectize(f, project_path) }
143
+ possible_files.detect{|f| File.exists?(f)}
144
+ end
145
+
146
+ def handle_configuration_change!
147
+ if (compiler = Compass.compiler).new_config?
148
+ compiler.clean!
149
+ end
150
+ end
151
+
152
+ def compiler
153
+ Compass::Compiler.new(*Compass.configuration.to_compiler_arguments)
154
+ end
155
+ end
156
+ end
157
+
158
+ extend Configuration::Helpers
159
+
160
+ end
@@ -1,304 +1,304 @@
1
- module Compass
2
- module Configuration
3
- # The inheritance module makes it easy for configuration data to inherit from
4
- # other instances of configuration data. This makes it easier for external code to layer
5
- # bits of configuration from various sources.
6
- module Inheritance
7
-
8
- def self.included(base)
9
- # inherited_data stores configuration data that this configuration object will
10
- # inherit if not provided explicitly.
11
- base.send :attr_accessor, :inherited_data, :set_attributes, :top_level
12
-
13
- base.send(:include, InstanceMethods)
14
- base.extend(ClassMethods)
15
- end
16
-
17
- module ClassMethods
18
- def inherited_writer(*attributes)
19
- attributes.each do |attribute|
20
- line = __LINE__ + 1
21
- class_eval %Q{
22
- def #{attribute}=(value) # def css_dir=(value)
23
- @set_attributes ||= {} # @set_attributes ||= {}
24
- @set_attributes[#{attribute.inspect}] = true # @set_attributes[:css_dir] = true
25
- @#{attribute} = value # @css_dir = value
26
- end # end
27
-
28
- def unset_#{attribute}! # def unset_css_dir!
29
- unset!(#{attribute.inspect}) # unset!(:css_dir)
30
- end # end
31
-
32
- def #{attribute}_set? # def css_dir_set?
33
- set?(#{attribute.inspect}) # set?(:css_dir)
34
- end # end
35
- }, __FILE__, line
36
- end
37
- end
38
-
39
- # Defines the default reader to be an inherited_reader that will look at the inherited_data for its
40
- # value when not set. The inherited reader calls to a raw reader that acts like a normal attribute
41
- # reader but prefixes the attribute name with "raw_".
42
- def inherited_reader(*attributes)
43
- attributes.each do |attribute|
44
- line = __LINE__ + 1
45
- class_eval %Q{
46
- def raw_#{attribute} # def raw_css_dir
47
- @#{attribute} # @css_dir
48
- end # end
49
- def #{attribute}_without_default # def css_dir_without_default
50
- read_without_default(#{attribute.inspect}) # read_without_default(:css_dir)
51
- end # end
52
- def #{attribute} # def css_dir
53
- read(#{attribute.inspect}) # read(:css_dir)
54
- end # end
55
- }, __FILE__, line
56
- end
57
- end
58
-
59
- def inherited_accessor(*attributes)
60
- inherited_reader(*attributes)
61
- inherited_writer(*attributes)
62
- end
63
-
64
- class ArrayProxy
65
- def initialize(data, attr)
66
- @data, @attr = data, attr
67
- end
68
- def to_ary
69
- @data.send(:"read_inherited_#{@attr}_array")
70
- end
71
- def to_a
72
- to_ary
73
- end
74
- def <<(v)
75
- @data.send(:"add_to_#{@attr}", v)
76
- end
77
- def >>(v)
78
- @data.send(:"remove_from_#{@attr}", v)
79
- end
80
- def serialize_to_config(prop)
81
- if v = @data.raw(prop)
82
- "#{prop} = #{v.inspect}"
83
- else
84
- s = ""
85
- if added = @data.instance_variable_get("@added_to_#{@attr}")
86
- added.each do |a|
87
- s << "#{prop} << #{a.inspect}\n"
88
- end
89
- end
90
- if removed = @data.instance_variable_get("@removed_from_#{@attr}")
91
- removed.each do |r|
92
- s << "#{prop} >> #{r.inspect}\n"
93
- end
94
- end
95
- if s[-1..-1] == "\n"
96
- s[0..-2]
97
- else
98
- s
99
- end
100
- end
101
- end
102
- def method_missing(m, *args, &block)
103
- a = to_ary
104
- if a.respond_to?(m)
105
- a.send(m,*args, &block)
106
- else
107
- super
108
- end
109
- end
110
- end
111
-
112
- def inherited_array(*attributes)
113
- inherited_reader(*attributes)
114
- inherited_writer(*attributes)
115
- attributes.each do |attr|
116
- line = __LINE__ + 1
117
- class_eval %Q{
118
- def #{attr} # def sprite_load_paths
119
- ArrayProxy.new(self, #{attr.inspect}) # ArrayProxy.new(self, :sprite_load_paths)
120
- end # end
121
- def #{attr}=(value) # def sprite_load_paths=(value)
122
- @set_attributes ||= {} # @set_attributes ||= {}
123
- @set_attributes[#{attr.inspect}] = true # @set_attributes[:sprite_load_paths] = true
124
- @#{attr} = Array(value) # @sprite_load_paths = Array(value)
125
- @added_to_#{attr} = [] # @added_to_sprite_load_paths = []
126
- @removed_from_#{attr} = [] # @removed_from_sprite_load_paths = []
127
- end # end
128
- def read_inherited_#{attr}_array # def read_inherited_sprite_load_paths_array
129
- if #{attr}_set? # if sprite_load_paths_set?
130
- @#{attr} # Array(@#{attr})
131
- else # else
132
- value = if inherited_data # value = Array(read(:sprite_load_paths))
133
- Array(inherited_data.#{attr})
134
- else
135
- Array(read(#{attr.inspect}))
136
- end
137
- value -= Array(@removed_from_#{attr}) # value -= Array(@removed_from_sprite_load_paths)
138
- Array(@added_to_#{attr}) + value # Array(@added_to_sprite_load_paths) + value
139
- end # end
140
- end # end
141
- def add_to_#{attr}(v) # def add_to_sprite_load_paths(v)
142
- if #{attr}_set? # if sprite_load_paths_set?
143
- raw_#{attr} << v # raw_sprite_load_paths << v
144
- else # else
145
- (@added_to_#{attr} ||= []) << v # (@added_to_sprite_load_paths ||= []) << v
146
- end # end
147
- end # end
148
- def remove_from_#{attr}(v) # def remove_from_sprite_load_paths(v)
149
- if #{attr}_set? # if sprite_load_paths_set?
150
- raw_#{attr}.reject!{|e| e == v} # raw_sprite_load_path.reject!{|e| e == v}s
151
- else # else
152
- (@removed_from_#{attr} ||= []) << v # (@removed_from_sprite_load_paths ||= []) << v
153
- end # end
154
- end # end
155
- }, __FILE__, line
156
- end
157
- end
158
-
159
- def chained_method(method)
160
- line = __LINE__ + 1
161
- class_eval %Q{
162
- alias_method :_chained_#{method}, method
163
- def #{method}(*args, &block)
164
- _chained_#{method}(*args, &block)
165
- if inherited_data
166
- inherited_data.#{method}(*args, &block)
167
- end
168
- end
169
- }, __FILE__, line
170
- end
171
-
172
-
173
- end
174
-
175
- module InstanceMethods
176
-
177
- def on_top!
178
- self.set_top_level(self)
179
- end
180
-
181
- def set_top_level(new_top)
182
- self.top_level = new_top
183
- if self.inherited_data.respond_to?(:set_top_level)
184
- self.inherited_data.set_top_level(new_top)
185
- end
186
- end
187
-
188
-
189
- def inherit_from!(data)
190
- if self.inherited_data
191
- self.inherited_data.inherit_from!(data)
192
- else
193
- self.inherited_data = data
194
- end
195
- self
196
- end
197
-
198
- def reset_inheritance!
199
- self.inherited_data = nil
200
- end
201
-
202
- def with_defaults(data)
203
- inherit_from!(data)
204
- yield
205
- reset_inheritance!
206
- end
207
-
208
- def unset!(attribute)
209
- @set_attributes ||= {}
210
- send("#{attribute}=", nil)
211
- @set_attributes.delete(attribute)
212
- nil
213
- end
214
-
215
- def set?(attribute)
216
- @set_attributes ||= {}
217
- @set_attributes[attribute]
218
- end
219
-
220
- def any_attributes_set?
221
- @set_attributes && @set_attributes.size > 0
222
- end
223
-
224
- def default_for(attribute)
225
- method = "default_#{attribute}".to_sym
226
- if respond_to?(method)
227
- send(method)
228
- end
229
- end
230
-
231
- # Read an explicitly set value that is either inherited or set on this instance
232
- def read_without_default(attribute)
233
- if set?(attribute)
234
- send("raw_#{attribute}")
235
- elsif inherited_data.nil?
236
- nil
237
- elsif inherited_data.respond_to?("#{attribute}_without_default")
238
- inherited_data.send("#{attribute}_without_default")
239
- elsif inherited_data.respond_to?(attribute)
240
- inherited_data.send(attribute)
241
- end
242
- end
243
-
244
- # Reads the raw value that was set on this object.
245
- # you generally should call raw_<attribute>() instead.
246
- def raw(attribute)
247
- instance_variable_get("@#{attribute}")
248
- end
249
-
250
- # Read a value that is either inherited or set on this instance, if we get to the bottom-most configuration instance,
251
- # we ask for the default starting at the top level.
252
- def read(attribute)
253
- if !(v = send("#{attribute}_without_default")).nil?
254
- v
255
- else
256
- top_level.default_for(attribute)
257
- end
258
- end
259
-
260
- def method_missing(meth, *args, &block)
261
- if inherited_data
262
- inherited_data.send(meth, *args, &block)
263
- else
264
- raise NoMethodError, meth.to_s
265
- end
266
- end
267
-
268
- def respond_to?(meth)
269
- if super
270
- true
271
- elsif inherited_data
272
- inherited_data.respond_to?(meth)
273
- else
274
- false
275
- end
276
- end
277
-
278
- def chain
279
- instances = [self]
280
- instances << instances.last.inherited_data while instances.last.inherited_data
281
- instances
282
- end
283
-
284
- def debug
285
- normalized_attrs = {}
286
- ATTRIBUTES.each do |prop|
287
- values = []
288
- chain.each do |instance|
289
- values << {
290
- :raw => (instance.send("raw_#{prop}") rescue nil),
291
- :value => (instance.send("#{prop}_without_default") rescue nil),
292
- :default => (instance.send("default_#{prop}") rescue nil),
293
- :resolved => instance.send(prop)
294
- }
295
- end
296
- normalized_attrs[prop] = values
297
- end
298
- normalized_attrs
299
- end
300
-
301
- end
302
- end
303
- end
304
- end
1
+ module Compass
2
+ module Configuration
3
+ # The inheritance module makes it easy for configuration data to inherit from
4
+ # other instances of configuration data. This makes it easier for external code to layer
5
+ # bits of configuration from various sources.
6
+ module Inheritance
7
+
8
+ def self.included(base)
9
+ # inherited_data stores configuration data that this configuration object will
10
+ # inherit if not provided explicitly.
11
+ base.send :attr_accessor, :inherited_data, :set_attributes, :top_level
12
+
13
+ base.send(:include, InstanceMethods)
14
+ base.extend(ClassMethods)
15
+ end
16
+
17
+ module ClassMethods
18
+ def inherited_writer(*attributes)
19
+ attributes.each do |attribute|
20
+ line = __LINE__ + 1
21
+ class_eval %Q{
22
+ def #{attribute}=(value) # def css_dir=(value)
23
+ @set_attributes ||= {} # @set_attributes ||= {}
24
+ @set_attributes[#{attribute.inspect}] = true # @set_attributes[:css_dir] = true
25
+ @#{attribute} = value # @css_dir = value
26
+ end # end
27
+
28
+ def unset_#{attribute}! # def unset_css_dir!
29
+ unset!(#{attribute.inspect}) # unset!(:css_dir)
30
+ end # end
31
+
32
+ def #{attribute}_set? # def css_dir_set?
33
+ set?(#{attribute.inspect}) # set?(:css_dir)
34
+ end # end
35
+ }, __FILE__, line
36
+ end
37
+ end
38
+
39
+ # Defines the default reader to be an inherited_reader that will look at the inherited_data for its
40
+ # value when not set. The inherited reader calls to a raw reader that acts like a normal attribute
41
+ # reader but prefixes the attribute name with "raw_".
42
+ def inherited_reader(*attributes)
43
+ attributes.each do |attribute|
44
+ line = __LINE__ + 1
45
+ class_eval %Q{
46
+ def raw_#{attribute} # def raw_css_dir
47
+ @#{attribute} # @css_dir
48
+ end # end
49
+ def #{attribute}_without_default # def css_dir_without_default
50
+ read_without_default(#{attribute.inspect}) # read_without_default(:css_dir)
51
+ end # end
52
+ def #{attribute} # def css_dir
53
+ read(#{attribute.inspect}) # read(:css_dir)
54
+ end # end
55
+ }, __FILE__, line
56
+ end
57
+ end
58
+
59
+ def inherited_accessor(*attributes)
60
+ inherited_reader(*attributes)
61
+ inherited_writer(*attributes)
62
+ end
63
+
64
+ class ArrayProxy
65
+ def initialize(data, attr)
66
+ @data, @attr = data, attr
67
+ end
68
+ def to_ary
69
+ @data.send(:"read_inherited_#{@attr}_array")
70
+ end
71
+ def to_a
72
+ to_ary
73
+ end
74
+ def <<(v)
75
+ @data.send(:"add_to_#{@attr}", v)
76
+ end
77
+ def >>(v)
78
+ @data.send(:"remove_from_#{@attr}", v)
79
+ end
80
+ def serialize_to_config(prop)
81
+ if v = @data.raw(prop)
82
+ "#{prop} = #{v.inspect}"
83
+ else
84
+ s = ""
85
+ if added = @data.instance_variable_get("@added_to_#{@attr}")
86
+ added.each do |a|
87
+ s << "#{prop} << #{a.inspect}\n"
88
+ end
89
+ end
90
+ if removed = @data.instance_variable_get("@removed_from_#{@attr}")
91
+ removed.each do |r|
92
+ s << "#{prop} >> #{r.inspect}\n"
93
+ end
94
+ end
95
+ if s[-1..-1] == "\n"
96
+ s[0..-2]
97
+ else
98
+ s
99
+ end
100
+ end
101
+ end
102
+ def method_missing(m, *args, &block)
103
+ a = to_ary
104
+ if a.respond_to?(m)
105
+ a.send(m,*args, &block)
106
+ else
107
+ super
108
+ end
109
+ end
110
+ end
111
+
112
+ def inherited_array(*attributes)
113
+ inherited_reader(*attributes)
114
+ inherited_writer(*attributes)
115
+ attributes.each do |attr|
116
+ line = __LINE__ + 1
117
+ class_eval %Q{
118
+ def #{attr} # def sprite_load_paths
119
+ ArrayProxy.new(self, #{attr.inspect}) # ArrayProxy.new(self, :sprite_load_paths)
120
+ end # end
121
+ def #{attr}=(value) # def sprite_load_paths=(value)
122
+ @set_attributes ||= {} # @set_attributes ||= {}
123
+ @set_attributes[#{attr.inspect}] = true # @set_attributes[:sprite_load_paths] = true
124
+ @#{attr} = Array(value) # @sprite_load_paths = Array(value)
125
+ @added_to_#{attr} = [] # @added_to_sprite_load_paths = []
126
+ @removed_from_#{attr} = [] # @removed_from_sprite_load_paths = []
127
+ end # end
128
+ def read_inherited_#{attr}_array # def read_inherited_sprite_load_paths_array
129
+ if #{attr}_set? # if sprite_load_paths_set?
130
+ @#{attr} # Array(@#{attr})
131
+ else # else
132
+ value = if inherited_data # value = Array(read(:sprite_load_paths))
133
+ Array(inherited_data.#{attr})
134
+ else
135
+ Array(read(#{attr.inspect}))
136
+ end
137
+ value -= Array(@removed_from_#{attr}) # value -= Array(@removed_from_sprite_load_paths)
138
+ Array(@added_to_#{attr}) + value # Array(@added_to_sprite_load_paths) + value
139
+ end # end
140
+ end # end
141
+ def add_to_#{attr}(v) # def add_to_sprite_load_paths(v)
142
+ if #{attr}_set? # if sprite_load_paths_set?
143
+ raw_#{attr} << v # raw_sprite_load_paths << v
144
+ else # else
145
+ (@added_to_#{attr} ||= []) << v # (@added_to_sprite_load_paths ||= []) << v
146
+ end # end
147
+ end # end
148
+ def remove_from_#{attr}(v) # def remove_from_sprite_load_paths(v)
149
+ if #{attr}_set? # if sprite_load_paths_set?
150
+ raw_#{attr}.reject!{|e| e == v} # raw_sprite_load_path.reject!{|e| e == v}s
151
+ else # else
152
+ (@removed_from_#{attr} ||= []) << v # (@removed_from_sprite_load_paths ||= []) << v
153
+ end # end
154
+ end # end
155
+ }, __FILE__, line
156
+ end
157
+ end
158
+
159
+ def chained_method(method)
160
+ line = __LINE__ + 1
161
+ class_eval %Q{
162
+ alias_method :_chained_#{method}, method
163
+ def #{method}(*args, &block)
164
+ _chained_#{method}(*args, &block)
165
+ if inherited_data
166
+ inherited_data.#{method}(*args, &block)
167
+ end
168
+ end
169
+ }, __FILE__, line
170
+ end
171
+
172
+
173
+ end
174
+
175
+ module InstanceMethods
176
+
177
+ def on_top!
178
+ self.set_top_level(self)
179
+ end
180
+
181
+ def set_top_level(new_top)
182
+ self.top_level = new_top
183
+ if self.inherited_data.respond_to?(:set_top_level)
184
+ self.inherited_data.set_top_level(new_top)
185
+ end
186
+ end
187
+
188
+
189
+ def inherit_from!(data)
190
+ if self.inherited_data
191
+ self.inherited_data.inherit_from!(data)
192
+ else
193
+ self.inherited_data = data
194
+ end
195
+ self
196
+ end
197
+
198
+ def reset_inheritance!
199
+ self.inherited_data = nil
200
+ end
201
+
202
+ def with_defaults(data)
203
+ inherit_from!(data)
204
+ yield
205
+ reset_inheritance!
206
+ end
207
+
208
+ def unset!(attribute)
209
+ @set_attributes ||= {}
210
+ send("#{attribute}=", nil)
211
+ @set_attributes.delete(attribute)
212
+ nil
213
+ end
214
+
215
+ def set?(attribute)
216
+ @set_attributes ||= {}
217
+ @set_attributes[attribute]
218
+ end
219
+
220
+ def any_attributes_set?
221
+ @set_attributes && @set_attributes.size > 0
222
+ end
223
+
224
+ def default_for(attribute)
225
+ method = "default_#{attribute}".to_sym
226
+ if respond_to?(method)
227
+ send(method)
228
+ end
229
+ end
230
+
231
+ # Read an explicitly set value that is either inherited or set on this instance
232
+ def read_without_default(attribute)
233
+ if set?(attribute)
234
+ send("raw_#{attribute}")
235
+ elsif inherited_data.nil?
236
+ nil
237
+ elsif inherited_data.respond_to?("#{attribute}_without_default")
238
+ inherited_data.send("#{attribute}_without_default")
239
+ elsif inherited_data.respond_to?(attribute)
240
+ inherited_data.send(attribute)
241
+ end
242
+ end
243
+
244
+ # Reads the raw value that was set on this object.
245
+ # you generally should call raw_<attribute>() instead.
246
+ def raw(attribute)
247
+ instance_variable_get("@#{attribute}")
248
+ end
249
+
250
+ # Read a value that is either inherited or set on this instance, if we get to the bottom-most configuration instance,
251
+ # we ask for the default starting at the top level.
252
+ def read(attribute)
253
+ if !(v = send("#{attribute}_without_default")).nil?
254
+ v
255
+ else
256
+ top_level.default_for(attribute)
257
+ end
258
+ end
259
+
260
+ def method_missing(meth, *args, &block)
261
+ if inherited_data
262
+ inherited_data.send(meth, *args, &block)
263
+ else
264
+ raise NoMethodError, meth.to_s
265
+ end
266
+ end
267
+
268
+ def respond_to?(meth)
269
+ if super
270
+ true
271
+ elsif inherited_data
272
+ inherited_data.respond_to?(meth)
273
+ else
274
+ false
275
+ end
276
+ end
277
+
278
+ def chain
279
+ instances = [self]
280
+ instances << instances.last.inherited_data while instances.last.inherited_data
281
+ instances
282
+ end
283
+
284
+ def debug
285
+ normalized_attrs = {}
286
+ ATTRIBUTES.each do |prop|
287
+ values = []
288
+ chain.each do |instance|
289
+ values << {
290
+ :raw => (instance.send("raw_#{prop}") rescue nil),
291
+ :value => (instance.send("#{prop}_without_default") rescue nil),
292
+ :default => (instance.send("default_#{prop}") rescue nil),
293
+ :resolved => instance.send(prop)
294
+ }
295
+ end
296
+ normalized_attrs[prop] = values
297
+ end
298
+ normalized_attrs
299
+ end
300
+
301
+ end
302
+ end
303
+ end
304
+ end