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,133 +1,133 @@
1
- module Compass
2
- module Frameworks
3
- extend self
4
-
5
- ALL = []
6
- DEFAULT_FRAMEWORKS_PATH = File.join(Compass.base_directory, 'frameworks')
7
-
8
- class Framework
9
- attr_accessor :name
10
- attr_accessor :path
11
- attr_accessor :templates_directory, :stylesheets_directory
12
- def initialize(name, *arguments)
13
- options = arguments.last.is_a?(Hash) ? arguments.pop : {}
14
- self.path = path = options[:path] || arguments.shift
15
- @name = name
16
- @templates_directory = options[:templates_directory]
17
- @templates_directory ||= File.join(path, 'templates') if path
18
- @stylesheets_directory = options[:stylesheets_directory]
19
- @stylesheets_directory ||= File.join(path, 'stylesheets') if path
20
- end
21
- def template_directories
22
- if templates_directory
23
- Dir.glob(File.join(templates_directory, "*")).map{|f| File.basename(f)}
24
- else
25
- []
26
- end
27
- end
28
- def manifest_file(pattern)
29
- File.join(templates_directory, pattern.to_s, "manifest.rb")
30
- end
31
- def manifest(pattern, options = {})
32
- options[:pattern_name] ||= pattern
33
- Compass::Installers::Manifest.new(manifest_file(pattern), options)
34
- end
35
- end
36
-
37
- def detect_registration
38
- @registered = nil
39
- yield
40
- @registered
41
- ensure
42
- @registered = nil
43
- end
44
-
45
- def register(name, *arguments)
46
- @registered = Framework.new(name, *arguments)
47
- if idx = ALL.index(self[name])
48
- ALL[idx] = @registered
49
- else
50
- ALL << @registered
51
- end
52
- end
53
-
54
- def [](name)
55
- ALL.detect{|f| f.name.to_s == name.to_s}
56
- end
57
-
58
- def discover(frameworks_directory)
59
- frameworks_directory = DEFAULT_FRAMEWORKS_PATH if frameworks_directory == :defaults
60
- frameworks_directory = Dir.new(frameworks_directory) unless frameworks_directory.is_a?(Dir)
61
- dirs = frameworks_directory.entries.reject{|e| e =~ /^\./}.sort_by{|n| n =~ /^_/ ? n[1..-1] : n}
62
- dirs.each do |framework|
63
- register_directory File.join(frameworks_directory.path, framework)
64
- end
65
- end
66
-
67
- def register_directory(directory)
68
- loaders = [
69
- File.join(directory, "compass_init.rb"),
70
- File.join(directory, 'lib', File.basename(directory)+".rb"),
71
- File.join(directory, File.basename(directory)+".rb")
72
- ]
73
- loader = loaders.detect{|l| File.exists?(l)}
74
- registered_framework = detect_registration do
75
- require loader if loader
76
- end
77
- unless registered_framework
78
- register File.basename(directory), directory
79
- end
80
- end
81
-
82
- def template_exists?(template)
83
- framework_name, template = template.split(%r{/}, 2)
84
- template ||= "project"
85
- if (framework = self[framework_name]) && framework.templates_directory
86
- return File.directory?(File.join(framework.templates_directory, template))
87
- end
88
- false
89
- end
90
-
91
- def template_usage(template)
92
- framework_name, template = template.split(%r{/}, 2)
93
- framework = self[framework_name]
94
- template ||= "project"
95
- usage_file = File.join(framework.templates_directory, template, "USAGE.markdown")
96
- if File.exists?(usage_file)
97
- File.read(usage_file)
98
- elsif help = framework.manifest(template).help
99
- help
100
- else
101
- <<-END.gsub(/^ {8}/, '')
102
- No Usage!
103
- END
104
- end
105
- end
106
-
107
- def pretty_print(skip_patterns = false)
108
- result = ""
109
- max = Compass::Frameworks::ALL.inject(0) do |gm, framework|
110
- fm = framework.template_directories.inject(0) do |lm,pattern|
111
- [lm, 7 + framework.name.size + pattern.size].max
112
- end
113
- [gm, fm].max
114
- end
115
- Compass::Frameworks::ALL.each do |framework|
116
- next if framework.name =~ /^_/
117
- result << " * #{framework.name}\n"
118
- unless skip_patterns
119
- framework.template_directories.each do |pattern|
120
- result << " - #{framework.name}/#{pattern}".ljust(max)
121
- if description = framework.manifest(pattern).description
122
- result << " - #{description}"
123
- end
124
- result << "\n"
125
- end
126
- end
127
- end
128
- result
129
- end
130
- end
131
- end
132
-
133
- Compass::Frameworks.discover(:defaults)
1
+ module Compass
2
+ module Frameworks
3
+ extend self
4
+
5
+ ALL = []
6
+ DEFAULT_FRAMEWORKS_PATH = File.join(Compass.base_directory, 'frameworks')
7
+
8
+ class Framework
9
+ attr_accessor :name
10
+ attr_accessor :path
11
+ attr_accessor :templates_directory, :stylesheets_directory
12
+ def initialize(name, *arguments)
13
+ options = arguments.last.is_a?(Hash) ? arguments.pop : {}
14
+ self.path = path = options[:path] || arguments.shift
15
+ @name = name
16
+ @templates_directory = options[:templates_directory]
17
+ @templates_directory ||= File.join(path, 'templates') if path
18
+ @stylesheets_directory = options[:stylesheets_directory]
19
+ @stylesheets_directory ||= File.join(path, 'stylesheets') if path
20
+ end
21
+ def template_directories
22
+ if templates_directory
23
+ Dir.glob(File.join(templates_directory, "*")).map{|f| File.basename(f)}
24
+ else
25
+ []
26
+ end
27
+ end
28
+ def manifest_file(pattern)
29
+ File.join(templates_directory, pattern.to_s, "manifest.rb")
30
+ end
31
+ def manifest(pattern, options = {})
32
+ options[:pattern_name] ||= pattern
33
+ Compass::Installers::Manifest.new(manifest_file(pattern), options)
34
+ end
35
+ end
36
+
37
+ def detect_registration
38
+ @registered = nil
39
+ yield
40
+ @registered
41
+ ensure
42
+ @registered = nil
43
+ end
44
+
45
+ def register(name, *arguments)
46
+ @registered = Framework.new(name, *arguments)
47
+ if idx = ALL.index(self[name])
48
+ ALL[idx] = @registered
49
+ else
50
+ ALL << @registered
51
+ end
52
+ end
53
+
54
+ def [](name)
55
+ ALL.detect{|f| f.name.to_s == name.to_s}
56
+ end
57
+
58
+ def discover(frameworks_directory)
59
+ frameworks_directory = DEFAULT_FRAMEWORKS_PATH if frameworks_directory == :defaults
60
+ frameworks_directory = Dir.new(frameworks_directory) unless frameworks_directory.is_a?(Dir)
61
+ dirs = frameworks_directory.entries.reject{|e| e =~ /^\./}.sort_by{|n| n =~ /^_/ ? n[1..-1] : n}
62
+ dirs.each do |framework|
63
+ register_directory File.join(frameworks_directory.path, framework)
64
+ end
65
+ end
66
+
67
+ def register_directory(directory)
68
+ loaders = [
69
+ File.join(directory, "compass_init.rb"),
70
+ File.join(directory, 'lib', File.basename(directory)+".rb"),
71
+ File.join(directory, File.basename(directory)+".rb")
72
+ ]
73
+ loader = loaders.detect{|l| File.exists?(l)}
74
+ registered_framework = detect_registration do
75
+ require loader if loader
76
+ end
77
+ unless registered_framework
78
+ register File.basename(directory), directory
79
+ end
80
+ end
81
+
82
+ def template_exists?(template)
83
+ framework_name, template = template.split(%r{/}, 2)
84
+ template ||= "project"
85
+ if (framework = self[framework_name]) && framework.templates_directory
86
+ return File.directory?(File.join(framework.templates_directory, template))
87
+ end
88
+ false
89
+ end
90
+
91
+ def template_usage(template)
92
+ framework_name, template = template.split(%r{/}, 2)
93
+ framework = self[framework_name]
94
+ template ||= "project"
95
+ usage_file = File.join(framework.templates_directory, template, "USAGE.markdown")
96
+ if File.exists?(usage_file)
97
+ File.read(usage_file)
98
+ elsif help = framework.manifest(template).help
99
+ help
100
+ else
101
+ <<-END.gsub(/^ {8}/, '')
102
+ No Usage!
103
+ END
104
+ end
105
+ end
106
+
107
+ def pretty_print(skip_patterns = false)
108
+ result = ""
109
+ max = Compass::Frameworks::ALL.inject(0) do |gm, framework|
110
+ fm = framework.template_directories.inject(0) do |lm,pattern|
111
+ [lm, 7 + framework.name.size + pattern.size].max
112
+ end
113
+ [gm, fm].max
114
+ end
115
+ Compass::Frameworks::ALL.each do |framework|
116
+ next if framework.name =~ /^_/
117
+ result << " * #{framework.name}\n"
118
+ unless skip_patterns
119
+ framework.template_directories.each do |pattern|
120
+ result << " - #{framework.name}/#{pattern}".ljust(max)
121
+ if description = framework.manifest(pattern).description
122
+ result << " - #{description}"
123
+ end
124
+ result << "\n"
125
+ end
126
+ end
127
+ end
128
+ result
129
+ end
130
+ end
131
+ end
132
+
133
+ Compass::Frameworks.discover(:defaults)
@@ -1,102 +1,102 @@
1
- require 'zlib'
2
-
3
- module Compass
4
-
5
- # A simple class to represent and create a PNG-File
6
- # No drawing features given
7
- # Just subclass and write [R,G,B]-Byte-Values into the <tt>@data</tt> matrix
8
- # Build for compactness, so not much error checking!
9
- #
10
- # Code based on seattlerb's png, see http://seattlerb.rubyforge.org/png/
11
- class PNG
12
- CRC_TABLE = (0..255).map do |n|
13
- (0...8).inject(n){|x,i| x = ((x & 1) == 1) ? 0xedb88320 ^ (x >> 1) : x >> 1}
14
- end
15
-
16
- class << self
17
- def crc(chunkdata='')
18
- chunkdata.unpack('C*').inject(0xffffffff){|crc, byte| CRC_TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8) } ^ 0xffffffff
19
- end
20
-
21
- def chunk(type, data="")
22
- [data.size, type, data, crc(type + data)].pack("Na*a*N")
23
- end
24
- end
25
-
26
- # Initiates a new PNG-Object
27
- # * <tt>width</tt>: Width of the image in pixels
28
- # * <tt>height</tt>: Height of the image in pixels
29
- # * <tt>background</tt>: Background-color represented as [R,G,B]-Byte-Array
30
- def initialize(width, height, background = [255,255,255])
31
- @height = height
32
- @width = width
33
- @data = Array.new(@height) { |x| Array.new(@width, background) }
34
- end
35
-
36
- BITS = 8
37
- RGB = 2 # Color Types ( RGBA = 6)
38
- NONE = 0 # Filter
39
-
40
- # binary representation of the PNG, write to file with binary mode
41
- def to_blob
42
- blob = []
43
- blob << [137, 80, 78, 71, 13, 10, 26, 10].pack("C*")
44
- blob << PNG.chunk('IHDR', [@width, @height, BITS, RGB, NONE, NONE, NONE].pack("N2C5"))
45
- blob << PNG.chunk('IDAT', Zlib::Deflate.deflate(self.png_join))
46
- blob << PNG.chunk('IEND', '')
47
- blob.join
48
- end
49
-
50
- def png_join
51
- @data.map { |row| "\0" + row.map { |p| "%c%c%c" % p}.join }.join
52
- end
53
- end
54
-
55
- class GridBuilder < PNG
56
- include Actions
57
-
58
- attr_reader :column_width, :gutter_width, :filename, :able_to_generate, :options
59
-
60
- # ==== Options
61
- # * <tt>options</tt>
62
- # * <tt>:column_width</tt> -- Width (in pixels) of current grid column
63
- # * <tt>:gutter_width</tt> -- Width (in pixels) of current grid gutter
64
- # * <tt>:height</tt> -- Height (in pixels) of a row
65
- # * <tt>:filename</tt> -- Output path of grid.png file
66
- def initialize(options={})
67
- @column_width = options[:column_width] || 0
68
- gutter_width = options[:gutter_width] || 0
69
-
70
- height = options[:height] || 20
71
- width = @column_width + gutter_width
72
- width = 10 if width == 0
73
-
74
- @filename = options[:filename]
75
- @options = options
76
-
77
- super(width, height, [0xe9,0xe9,0xe9])
78
- end
79
-
80
- def working_path
81
- options[:working_path]
82
- end
83
-
84
- # generates (overwriting if necessary) grid.png image to be tiled in background
85
- def generate!
86
- (0...@height-1).each do |line|
87
- @data[line] = Array.new(@width){|x| x < @column_width ? [0xe8, 0xef, 0xfb] : [0xff,0xff,0xff] }
88
- end
89
-
90
- if File.exists?(filename)
91
- if options[:force]
92
- overwrite = true
93
- else
94
- msg = "#{filename} already exists. Overwrite with --force."
95
- raise Compass::FilesystemConflict.new(msg)
96
- end
97
- end
98
- directory File.dirname(filename)
99
- write_file(filename, self.to_blob, options, true)
100
- end
101
- end
102
- end
1
+ require 'zlib'
2
+
3
+ module Compass
4
+
5
+ # A simple class to represent and create a PNG-File
6
+ # No drawing features given
7
+ # Just subclass and write [R,G,B]-Byte-Values into the <tt>@data</tt> matrix
8
+ # Build for compactness, so not much error checking!
9
+ #
10
+ # Code based on seattlerb's png, see http://seattlerb.rubyforge.org/png/
11
+ class PNG
12
+ CRC_TABLE = (0..255).map do |n|
13
+ (0...8).inject(n){|x,i| x = ((x & 1) == 1) ? 0xedb88320 ^ (x >> 1) : x >> 1}
14
+ end
15
+
16
+ class << self
17
+ def crc(chunkdata='')
18
+ chunkdata.unpack('C*').inject(0xffffffff){|crc, byte| CRC_TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8) } ^ 0xffffffff
19
+ end
20
+
21
+ def chunk(type, data="")
22
+ [data.size, type, data, crc(type + data)].pack("Na*a*N")
23
+ end
24
+ end
25
+
26
+ # Initiates a new PNG-Object
27
+ # * <tt>width</tt>: Width of the image in pixels
28
+ # * <tt>height</tt>: Height of the image in pixels
29
+ # * <tt>background</tt>: Background-color represented as [R,G,B]-Byte-Array
30
+ def initialize(width, height, background = [255,255,255])
31
+ @height = height
32
+ @width = width
33
+ @data = Array.new(@height) { |x| Array.new(@width, background) }
34
+ end
35
+
36
+ BITS = 8
37
+ RGB = 2 # Color Types ( RGBA = 6)
38
+ NONE = 0 # Filter
39
+
40
+ # binary representation of the PNG, write to file with binary mode
41
+ def to_blob
42
+ blob = []
43
+ blob << [137, 80, 78, 71, 13, 10, 26, 10].pack("C*")
44
+ blob << PNG.chunk('IHDR', [@width, @height, BITS, RGB, NONE, NONE, NONE].pack("N2C5"))
45
+ blob << PNG.chunk('IDAT', Zlib::Deflate.deflate(self.png_join))
46
+ blob << PNG.chunk('IEND', '')
47
+ blob.join
48
+ end
49
+
50
+ def png_join
51
+ @data.map { |row| "\0" + row.map { |p| "%c%c%c" % p}.join }.join
52
+ end
53
+ end
54
+
55
+ class GridBuilder < PNG
56
+ include Actions
57
+
58
+ attr_reader :column_width, :gutter_width, :filename, :able_to_generate, :options
59
+
60
+ # ==== Options
61
+ # * <tt>options</tt>
62
+ # * <tt>:column_width</tt> -- Width (in pixels) of current grid column
63
+ # * <tt>:gutter_width</tt> -- Width (in pixels) of current grid gutter
64
+ # * <tt>:height</tt> -- Height (in pixels) of a row
65
+ # * <tt>:filename</tt> -- Output path of grid.png file
66
+ def initialize(options={})
67
+ @column_width = options[:column_width] || 0
68
+ gutter_width = options[:gutter_width] || 0
69
+
70
+ height = options[:height] || 20
71
+ width = @column_width + gutter_width
72
+ width = 10 if width == 0
73
+
74
+ @filename = options[:filename]
75
+ @options = options
76
+
77
+ super(width, height, [0xe9,0xe9,0xe9])
78
+ end
79
+
80
+ def working_path
81
+ options[:working_path]
82
+ end
83
+
84
+ # generates (overwriting if necessary) grid.png image to be tiled in background
85
+ def generate!
86
+ (0...@height-1).each do |line|
87
+ @data[line] = Array.new(@width){|x| x < @column_width ? [0xe8, 0xef, 0xfb] : [0xff,0xff,0xff] }
88
+ end
89
+
90
+ if File.exists?(filename)
91
+ if options[:force]
92
+ overwrite = true
93
+ else
94
+ msg = "#{filename} already exists. Overwrite with --force."
95
+ raise Compass::FilesystemConflict.new(msg)
96
+ end
97
+ end
98
+ directory File.dirname(filename)
99
+ write_file(filename, self.to_blob, options, true)
100
+ end
101
+ end
102
+ end