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,63 +1,63 @@
1
- module Compass::SassExtensions::Functions::Math
2
-
3
- def pi()
4
- Sass::Script::Number.new(Math::PI)
5
- end
6
- Sass::Script::Functions.declare :pi, []
7
-
8
- def sin(number)
9
- trig(:sin, number)
10
- end
11
- Sass::Script::Functions.declare :sin, [:number]
12
-
13
- def cos(number)
14
- trig(:cos, number)
15
- end
16
- Sass::Script::Functions.declare :cos, [:number]
17
-
18
- def tan(number)
19
- trig(:tan, number)
20
- end
21
- Sass::Script::Functions.declare :tan, [:number]
22
-
23
- def e()
24
- Sass::Script::Number.new(Math::E)
25
- end
26
- Sass::Script::Functions.declare :e, []
27
-
28
- def logarithm(number, base = e )
29
- assert_type number, :Number
30
- assert_type base, :Number
31
- raise Sass::SyntaxError, "base to logarithm must be unitless." unless base.unitless?
32
-
33
- result = Math.log(number.value, base.value) rescue Math.log(number.value) / Math.log(base.value)
34
- Sass::Script::Number.new(result, number.numerator_units, number.denominator_units)
35
- end
36
- Sass::Script::Functions.declare :logarithm, [:number]
37
- Sass::Script::Functions.declare :logarithm, [:number, :base]
38
-
39
- def sqrt(number)
40
- numeric_transformation(number) { |n| Math.sqrt(n) }
41
- end
42
- Sass::Script::Functions.declare :sqrt, [:number]
43
-
44
- alias square_root sqrt
45
- Sass::Script::Functions.declare :square_root, [:number]
46
-
47
- def pow(number, exponent)
48
- assert_type number, :Number
49
- assert_type exponent, :Number
50
- raise Sass::SyntaxError, "exponent to pow must be unitless." unless exponent.unitless?
51
- Sass::Script::Number.new(number.value**exponent.value, number.numerator_units, number.denominator_units)
52
- end
53
- Sass::Script::Functions.declare :pow, [:number, :exponent]
54
-
55
- private
56
- def trig(operation, number)
57
- if number.numerator_units == ["deg"] && number.denominator_units == []
58
- Sass::Script::Number.new(Math.send(operation, Math::PI * number.value / 180))
59
- else
60
- Sass::Script::Number.new(Math.send(operation, number.value), number.numerator_units, number.denominator_units)
61
- end
62
- end
63
- end
1
+ module Compass::SassExtensions::Functions::Math
2
+
3
+ def pi()
4
+ Sass::Script::Number.new(Math::PI)
5
+ end
6
+ Sass::Script::Functions.declare :pi, []
7
+
8
+ def sin(number)
9
+ trig(:sin, number)
10
+ end
11
+ Sass::Script::Functions.declare :sin, [:number]
12
+
13
+ def cos(number)
14
+ trig(:cos, number)
15
+ end
16
+ Sass::Script::Functions.declare :cos, [:number]
17
+
18
+ def tan(number)
19
+ trig(:tan, number)
20
+ end
21
+ Sass::Script::Functions.declare :tan, [:number]
22
+
23
+ def e()
24
+ Sass::Script::Number.new(Math::E)
25
+ end
26
+ Sass::Script::Functions.declare :e, []
27
+
28
+ def logarithm(number, base = e )
29
+ assert_type number, :Number
30
+ assert_type base, :Number
31
+ raise Sass::SyntaxError, "base to logarithm must be unitless." unless base.unitless?
32
+
33
+ result = Math.log(number.value, base.value) rescue Math.log(number.value) / Math.log(base.value)
34
+ Sass::Script::Number.new(result, number.numerator_units, number.denominator_units)
35
+ end
36
+ Sass::Script::Functions.declare :logarithm, [:number]
37
+ Sass::Script::Functions.declare :logarithm, [:number, :base]
38
+
39
+ def sqrt(number)
40
+ numeric_transformation(number) { |n| Math.sqrt(n) }
41
+ end
42
+ Sass::Script::Functions.declare :sqrt, [:number]
43
+
44
+ alias square_root sqrt
45
+ Sass::Script::Functions.declare :square_root, [:number]
46
+
47
+ def pow(number, exponent)
48
+ assert_type number, :Number
49
+ assert_type exponent, :Number
50
+ raise Sass::SyntaxError, "exponent to pow must be unitless." unless exponent.unitless?
51
+ Sass::Script::Number.new(number.value**exponent.value, number.numerator_units, number.denominator_units)
52
+ end
53
+ Sass::Script::Functions.declare :pow, [:number, :exponent]
54
+
55
+ private
56
+ def trig(operation, number)
57
+ if number.numerator_units == ["deg"] && number.denominator_units == []
58
+ Sass::Script::Number.new(Math.send(operation, Math::PI * number.value / 180))
59
+ else
60
+ Sass::Script::Number.new(Math.send(operation, number.value), number.numerator_units, number.denominator_units)
61
+ end
62
+ end
63
+ end
@@ -1,64 +1,64 @@
1
- module Compass::SassExtensions::Functions::Selectors
2
- COMMA_SEPARATOR = /\s*,\s*/
3
-
4
- # Permute multiple selectors each of which may be comma delimited, the end result is
5
- # a new selector that is the equivalent of nesting each under the previous selector.
6
- # To illustrate, the following mixins are equivalent:
7
- # =mixin-a(!selector1, !selector2, !selector3)
8
- # #{!selector1}
9
- # #{selector2}
10
- # #{selector3}
11
- # width: 2px
12
- # =mixin-b(!selector1, !selector2)
13
- # #{nest(!selector, !selector2, !selector3)}
14
- # width: 2px
15
- def nest(*arguments)
16
- nested = arguments.map{|a| a.value}.inject do |memo,arg|
17
- ancestors = memo.split(COMMA_SEPARATOR)
18
- descendants = arg.split(COMMA_SEPARATOR)
19
- ancestors.map{|a| descendants.map{|d| "#{a} #{d}"}.join(", ")}.join(", ")
20
- end
21
- Sass::Script::String.new(nested)
22
- end
23
-
24
- # Permute two selectors, the first may be comma delimited.
25
- # The end result is a new selector that is the equivalent of nesting the second
26
- # selector under the first one in a sass file and preceding it with an &.
27
- # To illustrate, the following mixins are equivalent:
28
- # =mixin-a(!selector, !to_append)
29
- # #{!selector}
30
- # &#{!to_append}
31
- # width: 2px
32
- # =mixin-b(!selector, !to_append)
33
- # #{append_selector(!selector, !to_append)}
34
- # width: 2px
35
- def append_selector(selector, to_append)
36
- ancestors = selector.value.split(COMMA_SEPARATOR)
37
- descendants = to_append.value.split(COMMA_SEPARATOR)
38
- nested = ancestors.map{|a| descendants.map{|d| "#{a}#{d}"}.join(", ")}.join(", ")
39
- Sass::Script::String.new(nested)
40
- end
41
-
42
- # Return the header selectors for the levels indicated
43
- # Defaults to all headers h1 through h6
44
- # For example:
45
- # headers(all) => h1, h2, h3, h4, h5, h6
46
- # headers(4) => h1, h2, h3, h4
47
- # headers(2,4) => h2, h3, h4
48
- def headers(from = nil, to = nil)
49
- if from && !to
50
- if from.is_a?(Sass::Script::String) && from.value == "all"
51
- from = Sass::Script::Number.new(1)
52
- to = Sass::Script::Number.new(6)
53
- else
54
- to = from
55
- from = Sass::Script::Number.new(1)
56
- end
57
- else
58
- from ||= Sass::Script::Number.new(1)
59
- to ||= Sass::Script::Number.new(6)
60
- end
61
- Sass::Script::String.new((from.value..to.value).map{|n| "h#{n}"}.join(", "))
62
- end
63
- alias headings headers
1
+ module Compass::SassExtensions::Functions::Selectors
2
+ COMMA_SEPARATOR = /\s*,\s*/
3
+
4
+ # Permute multiple selectors each of which may be comma delimited, the end result is
5
+ # a new selector that is the equivalent of nesting each under the previous selector.
6
+ # To illustrate, the following mixins are equivalent:
7
+ # =mixin-a(!selector1, !selector2, !selector3)
8
+ # #{!selector1}
9
+ # #{selector2}
10
+ # #{selector3}
11
+ # width: 2px
12
+ # =mixin-b(!selector1, !selector2)
13
+ # #{nest(!selector, !selector2, !selector3)}
14
+ # width: 2px
15
+ def nest(*arguments)
16
+ nested = arguments.map{|a| a.value}.inject do |memo,arg|
17
+ ancestors = memo.split(COMMA_SEPARATOR)
18
+ descendants = arg.split(COMMA_SEPARATOR)
19
+ ancestors.map{|a| descendants.map{|d| "#{a} #{d}"}.join(", ")}.join(", ")
20
+ end
21
+ Sass::Script::String.new(nested)
22
+ end
23
+
24
+ # Permute two selectors, the first may be comma delimited.
25
+ # The end result is a new selector that is the equivalent of nesting the second
26
+ # selector under the first one in a sass file and preceding it with an &.
27
+ # To illustrate, the following mixins are equivalent:
28
+ # =mixin-a(!selector, !to_append)
29
+ # #{!selector}
30
+ # &#{!to_append}
31
+ # width: 2px
32
+ # =mixin-b(!selector, !to_append)
33
+ # #{append_selector(!selector, !to_append)}
34
+ # width: 2px
35
+ def append_selector(selector, to_append)
36
+ ancestors = selector.value.split(COMMA_SEPARATOR)
37
+ descendants = to_append.value.split(COMMA_SEPARATOR)
38
+ nested = ancestors.map{|a| descendants.map{|d| "#{a}#{d}"}.join(", ")}.join(", ")
39
+ Sass::Script::String.new(nested)
40
+ end
41
+
42
+ # Return the header selectors for the levels indicated
43
+ # Defaults to all headers h1 through h6
44
+ # For example:
45
+ # headers(all) => h1, h2, h3, h4, h5, h6
46
+ # headers(4) => h1, h2, h3, h4
47
+ # headers(2,4) => h2, h3, h4
48
+ def headers(from = nil, to = nil)
49
+ if from && !to
50
+ if from.is_a?(Sass::Script::String) && from.value == "all"
51
+ from = Sass::Script::Number.new(1)
52
+ to = Sass::Script::Number.new(6)
53
+ else
54
+ to = from
55
+ from = Sass::Script::Number.new(1)
56
+ end
57
+ else
58
+ from ||= Sass::Script::Number.new(1)
59
+ to ||= Sass::Script::Number.new(6)
60
+ end
61
+ Sass::Script::String.new((from.value..to.value).map{|n| "h#{n}"}.join(", "))
62
+ end
63
+ alias headings headers
64
64
  end
@@ -1,218 +1,218 @@
1
- module Compass::SassExtensions::Functions::Sprites
2
- ZERO = Sass::Script::Number::new(0)
3
- VALID_SELECTORS = %w(hover active target)
4
- # Provides a consistent interface for getting a variable in ruby
5
- # from a keyword argument hash that accounts for underscores/dash equivalence
6
- # and allows the caller to pass a symbol instead of a string.
7
- module VariableReader
8
- def get_var(variable_name)
9
- self[variable_name.to_s.gsub(/-/,"_")]
10
- end
11
- end
12
-
13
- #Returns a list of all sprite names
14
- def sprite_names(map)
15
- Sass::Script::List.new(map.sprite_names.map { |f| Sass::Script::String.new(f) }, ' ')
16
- end
17
- Sass::Script::Functions.declare :sprite_names, [:map]
18
-
19
- # Returns the system path of the sprite file
20
- def sprite_path(map)
21
- Sass::Script::String.new(map.name_and_hash)
22
- end
23
- Sass::Script::Functions.declare :sprite_path, [:map]
24
-
25
- # Returns the sprite file as an inline image
26
- # @include "icon/*.png";
27
- # #{$icon-sprite-base-class} {
28
- # background-image: inline-sprite($icon-sprites);
29
- # }
30
- def inline_sprite(map)
31
- verify_map(map, "sprite-url")
32
- map.generate
33
- inline_image(sprite_path(map))
34
- end
35
- Sass::Script::Functions.declare :inline_sprite, [:map]
36
-
37
- # Creates a Compass::SassExtensions::Sprites::SpriteMap object. A sprite map, when used in a property is the same
38
- # as calling sprite-url. So the following background properties are equivalent:
39
- #
40
- # $icons: sprite-map("icons/*.png");
41
- # background: sprite-url($icons) no-repeat;
42
- # background: $icons no-repeat;
43
- #
44
- # The sprite map object will generate the sprite map image, if necessary,
45
- # the first time it is converted to a url. Simply constructing it has no side-effects.
46
- def sprite_map(glob, kwargs = {})
47
- kwargs.extend VariableReader
48
- Compass::SassExtensions::Sprites::SpriteMap.from_uri(glob, self, kwargs)
49
- end
50
- Sass::Script::Functions.declare :sprite_map, [:glob], :var_kwargs => true
51
-
52
- # Returns the image and background position for use in a single shorthand property:
53
- #
54
- # $icons: sprite-map("icons/*.png"); // contains icons/new.png among others.
55
- # background: sprite($icons, new) no-repeat;
56
- #
57
- # Becomes:
58
- #
59
- # background: url('/images/icons.png?12345678') 0 -24px no-repeat;
60
- def sprite(map, sprite, offset_x = ZERO, offset_y = ZERO)
61
- sprite = convert_sprite_name(sprite)
62
- verify_map(map)
63
- unless sprite.is_a?(Sass::Script::String)
64
- raise Sass::SyntaxError, %Q(The second argument to sprite() must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
65
- end
66
- url = sprite_url(map)
67
- position = sprite_position(map, sprite, offset_x, offset_y)
68
- Sass::Script::List.new([url] + position.value, :space)
69
- end
70
- Sass::Script::Functions.declare :sprite, [:map, :sprite]
71
- Sass::Script::Functions.declare :sprite, [:map, :sprite, :offset_x]
72
- Sass::Script::Functions.declare :sprite, [:map, :sprite, :offset_x, :offset_y]
73
-
74
- # Returns the name of a sprite map
75
- # The name is derived from the folder than contains the sprites.
76
- def sprite_map_name(map)
77
- verify_map(map, "sprite-map-name")
78
- Sass::Script::String.new(map.name)
79
- end
80
- Sass::Script::Functions.declare :sprite_name, [:sprite]
81
-
82
- # Returns the path to the original image file for the sprite with the given name
83
- def sprite_file(map, sprite)
84
- sprite = convert_sprite_name(sprite)
85
- verify_map(map, "sprite")
86
- verify_sprite(sprite)
87
- if image = map.image_for(sprite.value)
88
- Sass::Script::String.new(image.file)
89
- else
90
- missing_image!(map, sprite)
91
- end
92
- end
93
- Sass::Script::Functions.declare :sprite_file, [:map, :sprite]
94
-
95
- # Returns boolean if sprite has a parent
96
- def sprite_does_not_have_parent(map, sprite)
97
- sprite = convert_sprite_name(sprite)
98
- verify_map map
99
- verify_sprite sprite
100
- Sass::Script::Bool.new map.image_for(sprite.value).parent.nil?
101
- end
102
-
103
- Sass::Script::Functions.declare :sprite_does_not_have_parent, [:map, :sprite]
104
-
105
- # Returns boolean if sprite has the selector
106
- def sprite_has_selector(map, sprite, selector)
107
- sprite = convert_sprite_name(sprite)
108
- verify_map map
109
- verify_sprite sprite
110
- unless VALID_SELECTORS.include?(selector.value)
111
- raise Sass::SyntaxError, "Invalid Selctor did you mean one of: #{VALID_SELECTORS.join(', ')}"
112
- end
113
- Sass::Script::Bool.new map.send(:"has_#{selector.value}?", sprite.value)
114
- end
115
-
116
- Sass::Script::Functions.declare :sprite_has_selector, [:map, :sprite, :selector]
117
-
118
-
119
- # Returns a url to the sprite image.
120
- def sprite_url(map)
121
- verify_map(map, "sprite-url")
122
- map.generate
123
- generated_image_url(Sass::Script::String.new("#{map.path}-s#{map.uniqueness_hash}.png"))
124
- end
125
- Sass::Script::Functions.declare :sprite_url, [:map]
126
-
127
- # Returns the position for the original image in the sprite.
128
- # This is suitable for use as a value to background-position:
129
- #
130
- # $icons: sprite-map("icons/*.png");
131
- # background-position: sprite-position($icons, new);
132
- #
133
- # Might generate something like:
134
- #
135
- # background-position: 0 -34px;
136
- #
137
- # You can adjust the background relative to this position by passing values for
138
- # `$offset-x` and `$offset-y`:
139
- #
140
- # $icons: sprite-map("icons/*.png");
141
- # background-position: sprite-position($icons, new, 3px, -2px);
142
- #
143
- # Would change the above output to:
144
- #
145
- # background-position: 3px -36px;
146
- def sprite_position(map, sprite = nil, offset_x = ZERO, offset_y = ZERO)
147
- assert_type offset_x, :Number
148
- assert_type offset_y, :Number
149
- sprite = convert_sprite_name(sprite)
150
- verify_map(map, "sprite-position")
151
- unless sprite && sprite.is_a?(Sass::Script::String)
152
- raise Sass::SyntaxError, %Q(The second argument to sprite-position must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
153
- end
154
- image = map.image_for(sprite.value)
155
- unless image
156
- missing_image!(map, sprite)
157
- end
158
- if offset_x.unit_str == "%"
159
- x = offset_x # CE: Shouldn't this be a percentage of the total width?
160
- else
161
- x = offset_x.value - image.left
162
- x = Sass::Script::Number.new(x, x == 0 ? [] : ["px"])
163
- end
164
- y = offset_y.value - image.top
165
- y = Sass::Script::Number.new(y, y == 0 ? [] : ["px"])
166
- Sass::Script::List.new([x, y],:space)
167
- end
168
- Sass::Script::Functions.declare :sprite_position, [:map]
169
- Sass::Script::Functions.declare :sprite_position, [:map, :sprite]
170
- Sass::Script::Functions.declare :sprite_position, [:map, :sprite, :offset_x]
171
- Sass::Script::Functions.declare :sprite_position, [:map, :sprite, :offset_x, :offset_y]
172
-
173
- def sprite_image(*args)
174
- raise Sass::SyntaxError, %Q(The sprite-image() function has been replaced by sprite(). See http://compass-style.org/help/tutorials/spriting/ for more information.)
175
- end
176
-
177
- protected
178
-
179
- def reversed_color_names
180
- if Sass::Script::Color.const_defined?(:HTML4_COLORS_REVERSE)
181
- Sass::Script::Color::HTML4_COLORS_REVERSE
182
- else
183
- Sass::Script::Color::COLOR_NAMES_REVERSE
184
- end
185
- end
186
-
187
- def convert_sprite_name(sprite)
188
- case sprite
189
- when Sass::Script::Color
190
- Sass::Script::String.new(reversed_color_names[sprite.rgb])
191
- when Sass::Script::Bool
192
- Sass::Script::String.new(sprite.to_s)
193
- else
194
- sprite
195
- end
196
- end
197
-
198
- def verify_map(map, error = "sprite")
199
- unless map.is_a?(Compass::SassExtensions::Sprites::SpriteMap)
200
- missing_sprite!(error)
201
- end
202
- end
203
-
204
- def verify_sprite(sprite)
205
- unless sprite.is_a?(Sass::Script::String)
206
- raise Sass::SyntaxError, %Q(The second argument to sprite() must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
207
- end
208
- end
209
-
210
- def missing_image!(map, sprite)
211
- raise Sass::SyntaxError, "No sprite called #{sprite} found in sprite map #{map.path}/#{map.name}. Did you mean one of: #{map.sprite_names.join(", ")}"
212
- end
213
-
214
- def missing_sprite!(function_name)
215
- raise Sass::SyntaxError, %Q(The first argument to #{function_name}() must be a sprite map. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
216
- end
217
-
218
- end
1
+ module Compass::SassExtensions::Functions::Sprites
2
+ ZERO = Sass::Script::Number::new(0)
3
+ VALID_SELECTORS = %w(hover active target)
4
+ # Provides a consistent interface for getting a variable in ruby
5
+ # from a keyword argument hash that accounts for underscores/dash equivalence
6
+ # and allows the caller to pass a symbol instead of a string.
7
+ module VariableReader
8
+ def get_var(variable_name)
9
+ self[variable_name.to_s.gsub(/-/,"_")]
10
+ end
11
+ end
12
+
13
+ #Returns a list of all sprite names
14
+ def sprite_names(map)
15
+ Sass::Script::List.new(map.sprite_names.map { |f| Sass::Script::String.new(f) }, ' ')
16
+ end
17
+ Sass::Script::Functions.declare :sprite_names, [:map]
18
+
19
+ # Returns the system path of the sprite file
20
+ def sprite_path(map)
21
+ Sass::Script::String.new(map.name_and_hash)
22
+ end
23
+ Sass::Script::Functions.declare :sprite_path, [:map]
24
+
25
+ # Returns the sprite file as an inline image
26
+ # @include "icon/*.png";
27
+ # #{$icon-sprite-base-class} {
28
+ # background-image: inline-sprite($icon-sprites);
29
+ # }
30
+ def inline_sprite(map)
31
+ verify_map(map, "sprite-url")
32
+ map.generate
33
+ inline_image(sprite_path(map))
34
+ end
35
+ Sass::Script::Functions.declare :inline_sprite, [:map]
36
+
37
+ # Creates a Compass::SassExtensions::Sprites::SpriteMap object. A sprite map, when used in a property is the same
38
+ # as calling sprite-url. So the following background properties are equivalent:
39
+ #
40
+ # $icons: sprite-map("icons/*.png");
41
+ # background: sprite-url($icons) no-repeat;
42
+ # background: $icons no-repeat;
43
+ #
44
+ # The sprite map object will generate the sprite map image, if necessary,
45
+ # the first time it is converted to a url. Simply constructing it has no side-effects.
46
+ def sprite_map(glob, kwargs = {})
47
+ kwargs.extend VariableReader
48
+ Compass::SassExtensions::Sprites::SpriteMap.from_uri(glob, self, kwargs)
49
+ end
50
+ Sass::Script::Functions.declare :sprite_map, [:glob], :var_kwargs => true
51
+
52
+ # Returns the image and background position for use in a single shorthand property:
53
+ #
54
+ # $icons: sprite-map("icons/*.png"); // contains icons/new.png among others.
55
+ # background: sprite($icons, new) no-repeat;
56
+ #
57
+ # Becomes:
58
+ #
59
+ # background: url('/images/icons.png?12345678') 0 -24px no-repeat;
60
+ def sprite(map, sprite, offset_x = ZERO, offset_y = ZERO)
61
+ sprite = convert_sprite_name(sprite)
62
+ verify_map(map)
63
+ unless sprite.is_a?(Sass::Script::String)
64
+ raise Sass::SyntaxError, %Q(The second argument to sprite() must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
65
+ end
66
+ url = sprite_url(map)
67
+ position = sprite_position(map, sprite, offset_x, offset_y)
68
+ Sass::Script::List.new([url] + position.value, :space)
69
+ end
70
+ Sass::Script::Functions.declare :sprite, [:map, :sprite]
71
+ Sass::Script::Functions.declare :sprite, [:map, :sprite, :offset_x]
72
+ Sass::Script::Functions.declare :sprite, [:map, :sprite, :offset_x, :offset_y]
73
+
74
+ # Returns the name of a sprite map
75
+ # The name is derived from the folder than contains the sprites.
76
+ def sprite_map_name(map)
77
+ verify_map(map, "sprite-map-name")
78
+ Sass::Script::String.new(map.name)
79
+ end
80
+ Sass::Script::Functions.declare :sprite_name, [:sprite]
81
+
82
+ # Returns the path to the original image file for the sprite with the given name
83
+ def sprite_file(map, sprite)
84
+ sprite = convert_sprite_name(sprite)
85
+ verify_map(map, "sprite")
86
+ verify_sprite(sprite)
87
+ if image = map.image_for(sprite.value)
88
+ Sass::Script::String.new(image.file)
89
+ else
90
+ missing_image!(map, sprite)
91
+ end
92
+ end
93
+ Sass::Script::Functions.declare :sprite_file, [:map, :sprite]
94
+
95
+ # Returns boolean if sprite has a parent
96
+ def sprite_does_not_have_parent(map, sprite)
97
+ sprite = convert_sprite_name(sprite)
98
+ verify_map map
99
+ verify_sprite sprite
100
+ Sass::Script::Bool.new map.image_for(sprite.value).parent.nil?
101
+ end
102
+
103
+ Sass::Script::Functions.declare :sprite_does_not_have_parent, [:map, :sprite]
104
+
105
+ # Returns boolean if sprite has the selector
106
+ def sprite_has_selector(map, sprite, selector)
107
+ sprite = convert_sprite_name(sprite)
108
+ verify_map map
109
+ verify_sprite sprite
110
+ unless VALID_SELECTORS.include?(selector.value)
111
+ raise Sass::SyntaxError, "Invalid Selctor did you mean one of: #{VALID_SELECTORS.join(', ')}"
112
+ end
113
+ Sass::Script::Bool.new map.send(:"has_#{selector.value}?", sprite.value)
114
+ end
115
+
116
+ Sass::Script::Functions.declare :sprite_has_selector, [:map, :sprite, :selector]
117
+
118
+
119
+ # Returns a url to the sprite image.
120
+ def sprite_url(map)
121
+ verify_map(map, "sprite-url")
122
+ map.generate
123
+ generated_image_url(Sass::Script::String.new("#{map.path}-s#{map.uniqueness_hash}.png"))
124
+ end
125
+ Sass::Script::Functions.declare :sprite_url, [:map]
126
+
127
+ # Returns the position for the original image in the sprite.
128
+ # This is suitable for use as a value to background-position:
129
+ #
130
+ # $icons: sprite-map("icons/*.png");
131
+ # background-position: sprite-position($icons, new);
132
+ #
133
+ # Might generate something like:
134
+ #
135
+ # background-position: 0 -34px;
136
+ #
137
+ # You can adjust the background relative to this position by passing values for
138
+ # `$offset-x` and `$offset-y`:
139
+ #
140
+ # $icons: sprite-map("icons/*.png");
141
+ # background-position: sprite-position($icons, new, 3px, -2px);
142
+ #
143
+ # Would change the above output to:
144
+ #
145
+ # background-position: 3px -36px;
146
+ def sprite_position(map, sprite = nil, offset_x = ZERO, offset_y = ZERO)
147
+ assert_type offset_x, :Number
148
+ assert_type offset_y, :Number
149
+ sprite = convert_sprite_name(sprite)
150
+ verify_map(map, "sprite-position")
151
+ unless sprite && sprite.is_a?(Sass::Script::String)
152
+ raise Sass::SyntaxError, %Q(The second argument to sprite-position must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
153
+ end
154
+ image = map.image_for(sprite.value)
155
+ unless image
156
+ missing_image!(map, sprite)
157
+ end
158
+ if offset_x.unit_str == "%"
159
+ x = offset_x # CE: Shouldn't this be a percentage of the total width?
160
+ else
161
+ x = offset_x.value - image.left
162
+ x = Sass::Script::Number.new(x, x == 0 ? [] : ["px"])
163
+ end
164
+ y = offset_y.value - image.top
165
+ y = Sass::Script::Number.new(y, y == 0 ? [] : ["px"])
166
+ Sass::Script::List.new([x, y],:space)
167
+ end
168
+ Sass::Script::Functions.declare :sprite_position, [:map]
169
+ Sass::Script::Functions.declare :sprite_position, [:map, :sprite]
170
+ Sass::Script::Functions.declare :sprite_position, [:map, :sprite, :offset_x]
171
+ Sass::Script::Functions.declare :sprite_position, [:map, :sprite, :offset_x, :offset_y]
172
+
173
+ def sprite_image(*args)
174
+ raise Sass::SyntaxError, %Q(The sprite-image() function has been replaced by sprite(). See http://compass-style.org/help/tutorials/spriting/ for more information.)
175
+ end
176
+
177
+ protected
178
+
179
+ def reversed_color_names
180
+ if Sass::Script::Color.const_defined?(:HTML4_COLORS_REVERSE)
181
+ Sass::Script::Color::HTML4_COLORS_REVERSE
182
+ else
183
+ Sass::Script::Color::COLOR_NAMES_REVERSE
184
+ end
185
+ end
186
+
187
+ def convert_sprite_name(sprite)
188
+ case sprite
189
+ when Sass::Script::Color
190
+ Sass::Script::String.new(reversed_color_names[sprite.rgb])
191
+ when Sass::Script::Bool
192
+ Sass::Script::String.new(sprite.to_s)
193
+ else
194
+ sprite
195
+ end
196
+ end
197
+
198
+ def verify_map(map, error = "sprite")
199
+ unless map.is_a?(Compass::SassExtensions::Sprites::SpriteMap)
200
+ missing_sprite!(error)
201
+ end
202
+ end
203
+
204
+ def verify_sprite(sprite)
205
+ unless sprite.is_a?(Sass::Script::String)
206
+ raise Sass::SyntaxError, %Q(The second argument to sprite() must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
207
+ end
208
+ end
209
+
210
+ def missing_image!(map, sprite)
211
+ raise Sass::SyntaxError, "No sprite called #{sprite} found in sprite map #{map.path}/#{map.name}. Did you mean one of: #{map.sprite_names.join(", ")}"
212
+ end
213
+
214
+ def missing_sprite!(function_name)
215
+ raise Sass::SyntaxError, %Q(The first argument to #{function_name}() must be a sprite map. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
216
+ end
217
+
218
+ end