compass 0.13.alpha.12 → 1.0.0.alpha.13

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 (538) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +61 -89
  3. data/VERSION +1 -0
  4. data/features/command_line.feature +1 -1
  5. data/features/step_definitions/command_line_steps.rb +0 -2
  6. data/lib/compass.rb +21 -2
  7. data/lib/compass/commands.rb +2 -0
  8. data/lib/compass/commands/print_version.rb +1 -12
  9. data/lib/compass/compiler.rb +1 -0
  10. data/lib/compass/configuration/adapters.rb +3 -0
  11. data/lib/compass/configuration/comments.rb +4 -1
  12. data/lib/compass/configuration/helpers.rb +1 -58
  13. data/lib/compass/configuration/serialization.rb +3 -0
  14. data/lib/compass/errors.rb +1 -3
  15. data/lib/compass/frameworks.rb +26 -4
  16. data/lib/compass/sass_extensions.rb +0 -1
  17. data/lib/compass/sass_extensions/functions.rb +2 -26
  18. data/lib/compass/sass_extensions/functions/sprites.rb +23 -23
  19. data/lib/compass/sass_extensions/sprites/image.rb +24 -29
  20. data/lib/compass/sprite_importer/content.erb +1 -1
  21. data/lib/compass/util.rb +1 -1
  22. data/lib/compass/version.rb +18 -35
  23. data/test/fixtures/stylesheets/compass/css/fonts.css +2 -2
  24. data/test/fixtures/stylesheets/envtest/tmp/env.css +2 -2
  25. data/test/fixtures/stylesheets/valid/css/another_simple.css +4 -0
  26. data/test/fixtures/stylesheets/valid/css/simple.css +4 -0
  27. data/test/integrations/sprites_test.rb +86 -79
  28. data/test/test_helper.rb +7 -5
  29. data/test/units/caniuse_test.rb +4 -4
  30. data/test/units/command_line_test.rb +5 -4
  31. data/test/units/configuration_test.rb +35 -2
  32. data/test/units/sass_extensions_test.rb +2 -2
  33. data/test/units/sass_extenstions/gradients_test.rb +3 -3
  34. data/test/units/sprites/sprite_map_test.rb +5 -2
  35. metadata +21 -506
  36. data/README.markdown +0 -30
  37. data/VERSION.yml +0 -6
  38. data/data/caniuse.json +0 -1
  39. data/data/caniuse_extras/css-placeholder.json +0 -171
  40. data/examples/README.markdown +0 -4
  41. data/examples/blueprint_default/config.rb +0 -7
  42. data/examples/blueprint_default/images/grid.png +0 -0
  43. data/examples/blueprint_default/index.html.haml +0 -85
  44. data/examples/blueprint_default/parts/elements.html.haml +0 -282
  45. data/examples/blueprint_default/parts/forms.html.haml +0 -200
  46. data/examples/blueprint_default/parts/grid.html.haml +0 -274
  47. data/examples/blueprint_default/parts/test-small.jpg +0 -0
  48. data/examples/blueprint_default/parts/test.jpg +0 -0
  49. data/examples/blueprint_default/parts/valid.png +0 -0
  50. data/examples/blueprint_default/src/ie.scss +0 -3
  51. data/examples/blueprint_default/src/images/grid.png +0 -0
  52. data/examples/blueprint_default/src/print.scss +0 -3
  53. data/examples/blueprint_default/src/screen.scss +0 -9
  54. data/examples/blueprint_plugins/config.rb +0 -8
  55. data/examples/blueprint_plugins/images/buttons/cross.png +0 -0
  56. data/examples/blueprint_plugins/images/buttons/key.png +0 -0
  57. data/examples/blueprint_plugins/images/buttons/tick.png +0 -0
  58. data/examples/blueprint_plugins/images/grid.png +0 -0
  59. data/examples/blueprint_plugins/images/link_icons/doc.png +0 -0
  60. data/examples/blueprint_plugins/images/link_icons/email.png +0 -0
  61. data/examples/blueprint_plugins/images/link_icons/external.png +0 -0
  62. data/examples/blueprint_plugins/images/link_icons/feed.png +0 -0
  63. data/examples/blueprint_plugins/images/link_icons/im.png +0 -0
  64. data/examples/blueprint_plugins/images/link_icons/pdf.png +0 -0
  65. data/examples/blueprint_plugins/images/link_icons/visited.png +0 -0
  66. data/examples/blueprint_plugins/images/link_icons/xls.png +0 -0
  67. data/examples/blueprint_plugins/images/test-small.jpg +0 -0
  68. data/examples/blueprint_plugins/images/test.jpg +0 -0
  69. data/examples/blueprint_plugins/images/valid.png +0 -0
  70. data/examples/blueprint_plugins/index.html.haml +0 -96
  71. data/examples/blueprint_plugins/plugins/buttons.html.haml +0 -67
  72. data/examples/blueprint_plugins/plugins/fancy_type.html.haml +0 -100
  73. data/examples/blueprint_plugins/plugins/link_icons.html.haml +0 -61
  74. data/examples/blueprint_plugins/plugins/rtl.html.haml +0 -100
  75. data/examples/blueprint_plugins/src/buttons.scss +0 -47
  76. data/examples/blueprint_plugins/src/ie.scss +0 -3
  77. data/examples/blueprint_plugins/src/images/grid.png +0 -0
  78. data/examples/blueprint_plugins/src/link_icons.scss +0 -13
  79. data/examples/blueprint_plugins/src/print.scss +0 -3
  80. data/examples/blueprint_plugins/src/rtl_screen.scss +0 -15
  81. data/examples/blueprint_plugins/src/screen.scss +0 -12
  82. data/examples/blueprint_scoped/images/grid.png +0 -0
  83. data/examples/blueprint_scoped/src/ie.scss +0 -4
  84. data/examples/blueprint_scoped/src/print.scss +0 -4
  85. data/examples/blueprint_scoped/src/screen.scss +0 -5
  86. data/examples/blueprint_scoped_form/images/grid.png +0 -0
  87. data/examples/blueprint_scoped_form/src/ie.scss +0 -3
  88. data/examples/blueprint_scoped_form/src/print.scss +0 -3
  89. data/examples/blueprint_scoped_form/src/screen.scss +0 -15
  90. data/examples/blueprint_semantic/config.rb +0 -7
  91. data/examples/blueprint_semantic/images/grid.png +0 -0
  92. data/examples/blueprint_semantic/index.html.haml +0 -86
  93. data/examples/blueprint_semantic/parts/fancy_type.html.haml +0 -100
  94. data/examples/blueprint_semantic/parts/liquid.html.haml +0 -100
  95. data/examples/blueprint_semantic/parts/test-small.jpg +0 -0
  96. data/examples/blueprint_semantic/parts/test.jpg +0 -0
  97. data/examples/blueprint_semantic/parts/valid.png +0 -0
  98. data/examples/blueprint_semantic/src/ie.scss +0 -3
  99. data/examples/blueprint_semantic/src/images/grid.png +0 -0
  100. data/examples/blueprint_semantic/src/liquid.scss +0 -69
  101. data/examples/blueprint_semantic/src/print.scss +0 -3
  102. data/examples/blueprint_semantic/src/screen.scss +0 -69
  103. data/examples/compass/bootstrap.rb +0 -4
  104. data/examples/compass/clean.rb +0 -2
  105. data/examples/compass/compass.html.haml +0 -39
  106. data/examples/compass/config.rb +0 -8
  107. data/examples/compass/headers.txt +0 -7
  108. data/examples/compass/images/blue_arrow.gif +0 -0
  109. data/examples/compass/images/border2.png +0 -0
  110. data/examples/compass/images/emblem/favorite.png +0 -0
  111. data/examples/compass/images/emblem/important.png +0 -0
  112. data/examples/compass/images/emblem/photos.png +0 -0
  113. data/examples/compass/images/emblem/readonly.png +0 -0
  114. data/examples/compass/images/emblem/symbolic-link.png +0 -0
  115. data/examples/compass/images/emblem/system.png +0 -0
  116. data/examples/compass/images/emblem/unreadable.png +0 -0
  117. data/examples/compass/images/flag/ad.png +0 -0
  118. data/examples/compass/images/flag/ae.png +0 -0
  119. data/examples/compass/images/flag/af.png +0 -0
  120. data/examples/compass/images/flag/ag.png +0 -0
  121. data/examples/compass/images/flag/ai.png +0 -0
  122. data/examples/compass/images/flag/al.png +0 -0
  123. data/examples/compass/images/flag/am.png +0 -0
  124. data/examples/compass/images/flag/an.png +0 -0
  125. data/examples/compass/images/flag/ao.png +0 -0
  126. data/examples/compass/images/flag/ar.png +0 -0
  127. data/examples/compass/images/flag/as.png +0 -0
  128. data/examples/compass/images/flag/at.png +0 -0
  129. data/examples/compass/images/flag/au.png +0 -0
  130. data/examples/compass/images/flag/aw.png +0 -0
  131. data/examples/compass/images/flag/ax.png +0 -0
  132. data/examples/compass/images/flag/az.png +0 -0
  133. data/examples/compass/images/flag/ba.png +0 -0
  134. data/examples/compass/images/flag/bb.png +0 -0
  135. data/examples/compass/images/flag/bd.png +0 -0
  136. data/examples/compass/images/flag/be.png +0 -0
  137. data/examples/compass/images/flag/bf.png +0 -0
  138. data/examples/compass/images/flag/bg.png +0 -0
  139. data/examples/compass/images/flag/bh.png +0 -0
  140. data/examples/compass/images/flag/bi.png +0 -0
  141. data/examples/compass/images/flag/bj.png +0 -0
  142. data/examples/compass/images/flag/bm.png +0 -0
  143. data/examples/compass/images/flag/bn.png +0 -0
  144. data/examples/compass/images/flag/bo.png +0 -0
  145. data/examples/compass/images/flag/br.png +0 -0
  146. data/examples/compass/images/flag/bs.png +0 -0
  147. data/examples/compass/images/flag/bt.png +0 -0
  148. data/examples/compass/images/flag/bv.png +0 -0
  149. data/examples/compass/images/flag/bw.png +0 -0
  150. data/examples/compass/images/flag/by.png +0 -0
  151. data/examples/compass/images/flag/bz.png +0 -0
  152. data/examples/compass/images/flag/ca.png +0 -0
  153. data/examples/compass/images/flag/catalonia.png +0 -0
  154. data/examples/compass/images/flag/cc.png +0 -0
  155. data/examples/compass/images/flag/cd.png +0 -0
  156. data/examples/compass/images/flag/cf.png +0 -0
  157. data/examples/compass/images/flag/cg.png +0 -0
  158. data/examples/compass/images/flag/ch.png +0 -0
  159. data/examples/compass/images/flag/ci.png +0 -0
  160. data/examples/compass/images/flag/ck.png +0 -0
  161. data/examples/compass/images/flag/cl.png +0 -0
  162. data/examples/compass/images/flag/cm.png +0 -0
  163. data/examples/compass/images/flag/cn.png +0 -0
  164. data/examples/compass/images/flag/co.png +0 -0
  165. data/examples/compass/images/flag/cr.png +0 -0
  166. data/examples/compass/images/flag/cs.png +0 -0
  167. data/examples/compass/images/flag/cu.png +0 -0
  168. data/examples/compass/images/flag/cv.png +0 -0
  169. data/examples/compass/images/flag/cx.png +0 -0
  170. data/examples/compass/images/flag/cy.png +0 -0
  171. data/examples/compass/images/flag/cz.png +0 -0
  172. data/examples/compass/images/flag/de.png +0 -0
  173. data/examples/compass/images/flag/dj.png +0 -0
  174. data/examples/compass/images/flag/dk.png +0 -0
  175. data/examples/compass/images/flag/dm.png +0 -0
  176. data/examples/compass/images/flag/do.png +0 -0
  177. data/examples/compass/images/flag/dz.png +0 -0
  178. data/examples/compass/images/flag/ec.png +0 -0
  179. data/examples/compass/images/flag/ee.png +0 -0
  180. data/examples/compass/images/flag/eg.png +0 -0
  181. data/examples/compass/images/flag/eh.png +0 -0
  182. data/examples/compass/images/flag/england.png +0 -0
  183. data/examples/compass/images/flag/er.png +0 -0
  184. data/examples/compass/images/flag/es.png +0 -0
  185. data/examples/compass/images/flag/et.png +0 -0
  186. data/examples/compass/images/flag/europeanunion.png +0 -0
  187. data/examples/compass/images/flag/fam.png +0 -0
  188. data/examples/compass/images/flag/fi.png +0 -0
  189. data/examples/compass/images/flag/fj.png +0 -0
  190. data/examples/compass/images/flag/fk.png +0 -0
  191. data/examples/compass/images/flag/fm.png +0 -0
  192. data/examples/compass/images/flag/fo.png +0 -0
  193. data/examples/compass/images/flag/fr.png +0 -0
  194. data/examples/compass/images/flag/ga.png +0 -0
  195. data/examples/compass/images/flag/gb.png +0 -0
  196. data/examples/compass/images/flag/gd.png +0 -0
  197. data/examples/compass/images/flag/ge.png +0 -0
  198. data/examples/compass/images/flag/gf.png +0 -0
  199. data/examples/compass/images/flag/gh.png +0 -0
  200. data/examples/compass/images/flag/gi.png +0 -0
  201. data/examples/compass/images/flag/gl.png +0 -0
  202. data/examples/compass/images/flag/gm.png +0 -0
  203. data/examples/compass/images/flag/gn.png +0 -0
  204. data/examples/compass/images/flag/gp.png +0 -0
  205. data/examples/compass/images/flag/gq.png +0 -0
  206. data/examples/compass/images/flag/gr.png +0 -0
  207. data/examples/compass/images/flag/gs.png +0 -0
  208. data/examples/compass/images/flag/gt.png +0 -0
  209. data/examples/compass/images/flag/gu.png +0 -0
  210. data/examples/compass/images/flag/gw.png +0 -0
  211. data/examples/compass/images/flag/gy.png +0 -0
  212. data/examples/compass/images/flag/hk.png +0 -0
  213. data/examples/compass/images/flag/hm.png +0 -0
  214. data/examples/compass/images/flag/hn.png +0 -0
  215. data/examples/compass/images/flag/hr.png +0 -0
  216. data/examples/compass/images/flag/ht.png +0 -0
  217. data/examples/compass/images/flag/hu.png +0 -0
  218. data/examples/compass/images/flag/id-2.png +0 -0
  219. data/examples/compass/images/flag/ie.png +0 -0
  220. data/examples/compass/images/flag/il.png +0 -0
  221. data/examples/compass/images/flag/in.png +0 -0
  222. data/examples/compass/images/flag/io.png +0 -0
  223. data/examples/compass/images/flag/iq.png +0 -0
  224. data/examples/compass/images/flag/ir.png +0 -0
  225. data/examples/compass/images/flag/is.png +0 -0
  226. data/examples/compass/images/flag/it.png +0 -0
  227. data/examples/compass/images/flag/jm.png +0 -0
  228. data/examples/compass/images/flag/jo.png +0 -0
  229. data/examples/compass/images/flag/jp.png +0 -0
  230. data/examples/compass/images/flag/ke.png +0 -0
  231. data/examples/compass/images/flag/kg.png +0 -0
  232. data/examples/compass/images/flag/kh.png +0 -0
  233. data/examples/compass/images/flag/ki.png +0 -0
  234. data/examples/compass/images/flag/km.png +0 -0
  235. data/examples/compass/images/flag/kn.png +0 -0
  236. data/examples/compass/images/flag/kp.png +0 -0
  237. data/examples/compass/images/flag/kr.png +0 -0
  238. data/examples/compass/images/flag/kw.png +0 -0
  239. data/examples/compass/images/flag/ky.png +0 -0
  240. data/examples/compass/images/flag/kz.png +0 -0
  241. data/examples/compass/images/flag/la.png +0 -0
  242. data/examples/compass/images/flag/lb.png +0 -0
  243. data/examples/compass/images/flag/lc.png +0 -0
  244. data/examples/compass/images/flag/li.png +0 -0
  245. data/examples/compass/images/flag/lk.png +0 -0
  246. data/examples/compass/images/flag/lr.png +0 -0
  247. data/examples/compass/images/flag/ls.png +0 -0
  248. data/examples/compass/images/flag/lt.png +0 -0
  249. data/examples/compass/images/flag/lu.png +0 -0
  250. data/examples/compass/images/flag/lv.png +0 -0
  251. data/examples/compass/images/flag/ly.png +0 -0
  252. data/examples/compass/images/flag/ma.png +0 -0
  253. data/examples/compass/images/flag/mc.png +0 -0
  254. data/examples/compass/images/flag/md.png +0 -0
  255. data/examples/compass/images/flag/me.png +0 -0
  256. data/examples/compass/images/flag/mg.png +0 -0
  257. data/examples/compass/images/flag/mh.png +0 -0
  258. data/examples/compass/images/flag/mk.png +0 -0
  259. data/examples/compass/images/flag/ml.png +0 -0
  260. data/examples/compass/images/flag/mm.png +0 -0
  261. data/examples/compass/images/flag/mn.png +0 -0
  262. data/examples/compass/images/flag/mo.png +0 -0
  263. data/examples/compass/images/flag/mp.png +0 -0
  264. data/examples/compass/images/flag/mq.png +0 -0
  265. data/examples/compass/images/flag/mr.png +0 -0
  266. data/examples/compass/images/flag/ms.png +0 -0
  267. data/examples/compass/images/flag/mt.png +0 -0
  268. data/examples/compass/images/flag/mu.png +0 -0
  269. data/examples/compass/images/flag/mv.png +0 -0
  270. data/examples/compass/images/flag/mw.png +0 -0
  271. data/examples/compass/images/flag/mx.png +0 -0
  272. data/examples/compass/images/flag/my.png +0 -0
  273. data/examples/compass/images/flag/mz.png +0 -0
  274. data/examples/compass/images/flag/na.png +0 -0
  275. data/examples/compass/images/flag/nc.png +0 -0
  276. data/examples/compass/images/flag/ne.png +0 -0
  277. data/examples/compass/images/flag/nf.png +0 -0
  278. data/examples/compass/images/flag/ng.png +0 -0
  279. data/examples/compass/images/flag/ni.png +0 -0
  280. data/examples/compass/images/flag/nl.png +0 -0
  281. data/examples/compass/images/flag/no.png +0 -0
  282. data/examples/compass/images/flag/np.png +0 -0
  283. data/examples/compass/images/flag/nr.png +0 -0
  284. data/examples/compass/images/flag/nu.png +0 -0
  285. data/examples/compass/images/flag/nz.png +0 -0
  286. data/examples/compass/images/flag/om.png +0 -0
  287. data/examples/compass/images/flag/pa.png +0 -0
  288. data/examples/compass/images/flag/pe.png +0 -0
  289. data/examples/compass/images/flag/pf.png +0 -0
  290. data/examples/compass/images/flag/pg.png +0 -0
  291. data/examples/compass/images/flag/ph.png +0 -0
  292. data/examples/compass/images/flag/pk.png +0 -0
  293. data/examples/compass/images/flag/pl.png +0 -0
  294. data/examples/compass/images/flag/pm.png +0 -0
  295. data/examples/compass/images/flag/pn.png +0 -0
  296. data/examples/compass/images/flag/pr.png +0 -0
  297. data/examples/compass/images/flag/ps.png +0 -0
  298. data/examples/compass/images/flag/pt.png +0 -0
  299. data/examples/compass/images/flag/pw.png +0 -0
  300. data/examples/compass/images/flag/py.png +0 -0
  301. data/examples/compass/images/flag/qa.png +0 -0
  302. data/examples/compass/images/flag/re.png +0 -0
  303. data/examples/compass/images/flag/ro.png +0 -0
  304. data/examples/compass/images/flag/rs.png +0 -0
  305. data/examples/compass/images/flag/ru.png +0 -0
  306. data/examples/compass/images/flag/rw.png +0 -0
  307. data/examples/compass/images/flag/sa.png +0 -0
  308. data/examples/compass/images/flag/sb.png +0 -0
  309. data/examples/compass/images/flag/sc.png +0 -0
  310. data/examples/compass/images/flag/scotland.png +0 -0
  311. data/examples/compass/images/flag/sd.png +0 -0
  312. data/examples/compass/images/flag/se.png +0 -0
  313. data/examples/compass/images/flag/sg.png +0 -0
  314. data/examples/compass/images/flag/sh.png +0 -0
  315. data/examples/compass/images/flag/si.png +0 -0
  316. data/examples/compass/images/flag/sj.png +0 -0
  317. data/examples/compass/images/flag/sk.png +0 -0
  318. data/examples/compass/images/flag/sl.png +0 -0
  319. data/examples/compass/images/flag/sm.png +0 -0
  320. data/examples/compass/images/flag/sn.png +0 -0
  321. data/examples/compass/images/flag/so.png +0 -0
  322. data/examples/compass/images/flag/sr.png +0 -0
  323. data/examples/compass/images/flag/st.png +0 -0
  324. data/examples/compass/images/flag/sv.png +0 -0
  325. data/examples/compass/images/flag/sy.png +0 -0
  326. data/examples/compass/images/flag/sz.png +0 -0
  327. data/examples/compass/images/flag/tc.png +0 -0
  328. data/examples/compass/images/flag/td.png +0 -0
  329. data/examples/compass/images/flag/tf.png +0 -0
  330. data/examples/compass/images/flag/tg.png +0 -0
  331. data/examples/compass/images/flag/th.png +0 -0
  332. data/examples/compass/images/flag/tj.png +0 -0
  333. data/examples/compass/images/flag/tk.png +0 -0
  334. data/examples/compass/images/flag/tl.png +0 -0
  335. data/examples/compass/images/flag/tm.png +0 -0
  336. data/examples/compass/images/flag/tn.png +0 -0
  337. data/examples/compass/images/flag/to.png +0 -0
  338. data/examples/compass/images/flag/tr.png +0 -0
  339. data/examples/compass/images/flag/tt.png +0 -0
  340. data/examples/compass/images/flag/tv.png +0 -0
  341. data/examples/compass/images/flag/tw.png +0 -0
  342. data/examples/compass/images/flag/tz.png +0 -0
  343. data/examples/compass/images/flag/ua.png +0 -0
  344. data/examples/compass/images/flag/ug.png +0 -0
  345. data/examples/compass/images/flag/um.png +0 -0
  346. data/examples/compass/images/flag/us.png +0 -0
  347. data/examples/compass/images/flag/uy.png +0 -0
  348. data/examples/compass/images/flag/uz.png +0 -0
  349. data/examples/compass/images/flag/va.png +0 -0
  350. data/examples/compass/images/flag/vc.png +0 -0
  351. data/examples/compass/images/flag/ve.png +0 -0
  352. data/examples/compass/images/flag/vg.png +0 -0
  353. data/examples/compass/images/flag/vi.png +0 -0
  354. data/examples/compass/images/flag/vn.png +0 -0
  355. data/examples/compass/images/flag/vu.png +0 -0
  356. data/examples/compass/images/flag/wales.png +0 -0
  357. data/examples/compass/images/flag/wf.png +0 -0
  358. data/examples/compass/images/flag/ws.png +0 -0
  359. data/examples/compass/images/flag/ye.png +0 -0
  360. data/examples/compass/images/flag/yt.png +0 -0
  361. data/examples/compass/images/flag/za.png +0 -0
  362. data/examples/compass/images/flag/zm.png +0 -0
  363. data/examples/compass/images/flag/zw.png +0 -0
  364. data/examples/compass/images/icon-chrome.png +0 -0
  365. data/examples/compass/images/icon-firefox.png +0 -0
  366. data/examples/compass/images/icon-ie.png +0 -0
  367. data/examples/compass/images/icon-opera.png +0 -0
  368. data/examples/compass/images/icon-safari.png +0 -0
  369. data/examples/compass/pie.html.haml +0 -73
  370. data/examples/compass/sprites.html.haml +0 -37
  371. data/examples/compass/src/bp_layout.scss +0 -18
  372. data/examples/compass/src/compass.scss +0 -46
  373. data/examples/compass/src/images/blue_arrow.gif +0 -0
  374. data/examples/compass/src/sprites.scss +0 -25
  375. data/examples/compass/src/sticky_footer.scss +0 -11
  376. data/examples/compass/src/utilities.scss +0 -108
  377. data/examples/compass/sticky_footer.html.haml +0 -14
  378. data/examples/compass/utilities.html.haml +0 -189
  379. data/examples/css3/bootstrap.rb +0 -3
  380. data/examples/css3/clean.rb +0 -2
  381. data/examples/css3/config.rb +0 -6
  382. data/examples/css3/extensions/fancy-fonts/templates/project/fancy-fonts.sass +0 -10
  383. data/examples/css3/extensions/fancy-fonts/templates/project/manifest.rb +0 -6
  384. data/examples/css3/gradients.html.haml +0 -68
  385. data/examples/css3/images/button_bg.png +0 -0
  386. data/examples/css3/images/example.png +0 -0
  387. data/examples/css3/index.html.haml +0 -57
  388. data/examples/css3/src/_base.scss +0 -13
  389. data/examples/css3/src/fancy-fonts.scss +0 -13
  390. data/examples/css3/src/gradients.scss +0 -86
  391. data/examples/css3/src/main.scss +0 -108
  392. data/examples/downloader.rb +0 -58
  393. data/examples/ninesixty/bootstrap.rb +0 -4
  394. data/examples/ninesixty/clean.rb +0 -2
  395. data/examples/ninesixty/config.rb +0 -10
  396. data/examples/ninesixty/src/grid.scss +0 -15
  397. data/examples/ninesixty/src/text.scss +0 -8
  398. data/examples/susy/bootstrap.rb +0 -3
  399. data/examples/susy/clean.rb +0 -2
  400. data/examples/susy/config.rb +0 -10
  401. data/examples/susy/src/_base.scss +0 -61
  402. data/examples/susy/src/_defaults.scss +0 -140
  403. data/examples/susy/src/screen.scss +0 -100
  404. data/examples/yui/bootstrap.rb +0 -3
  405. data/examples/yui/clean.rb +0 -2
  406. data/examples/yui/config.rb +0 -1
  407. data/examples/yui/divisions.html.haml +0 -179
  408. data/examples/yui/index.html.haml +0 -19
  409. data/examples/yui/src/screen.scss +0 -13
  410. data/examples/yui/sub_divisions.html.haml +0 -169
  411. data/examples/yui/templates.html.haml +0 -54
  412. data/examples/yui/test.jpg +0 -0
  413. data/examples/yui/typography.html.haml +0 -132
  414. data/frameworks/compass/stylesheets/_compass.scss +0 -3
  415. data/frameworks/compass/stylesheets/_lemonade.scss +0 -38
  416. data/frameworks/compass/stylesheets/compass/_css3.scss +0 -21
  417. data/frameworks/compass/stylesheets/compass/_layout.scss +0 -3
  418. data/frameworks/compass/stylesheets/compass/_reset-legacy.scss +0 -3
  419. data/frameworks/compass/stylesheets/compass/_reset.scss +0 -3
  420. data/frameworks/compass/stylesheets/compass/_support.scss +0 -432
  421. data/frameworks/compass/stylesheets/compass/_typography.scss +0 -4
  422. data/frameworks/compass/stylesheets/compass/_utilities.scss +0 -9
  423. data/frameworks/compass/stylesheets/compass/css3/_animation.scss +0 -122
  424. data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +0 -17
  425. data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +0 -35
  426. data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +0 -37
  427. data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +0 -19
  428. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +0 -107
  429. data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +0 -88
  430. data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +0 -15
  431. data/frameworks/compass/stylesheets/compass/css3/_box.scss +0 -85
  432. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +0 -210
  433. data/frameworks/compass/stylesheets/compass/css3/_deprecated-support.scss +0 -272
  434. data/frameworks/compass/stylesheets/compass/css3/_filter.scss +0 -50
  435. data/frameworks/compass/stylesheets/compass/css3/_flexbox.scss +0 -156
  436. data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +0 -48
  437. data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +0 -71
  438. data/frameworks/compass/stylesheets/compass/css3/_images.scss +0 -139
  439. data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +0 -31
  440. data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +0 -23
  441. data/frameworks/compass/stylesheets/compass/css3/_pie.scss +0 -1
  442. data/frameworks/compass/stylesheets/compass/css3/_regions.scss +0 -27
  443. data/frameworks/compass/stylesheets/compass/css3/_selection.scss +0 -59
  444. data/frameworks/compass/stylesheets/compass/css3/_shared.scss +0 -5
  445. data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +0 -82
  446. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +0 -590
  447. data/frameworks/compass/stylesheets/compass/css3/_transition.scss +0 -171
  448. data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +0 -71
  449. data/frameworks/compass/stylesheets/compass/layout/_grid-background.scss +0 -178
  450. data/frameworks/compass/stylesheets/compass/layout/_sticky-footer.scss +0 -23
  451. data/frameworks/compass/stylesheets/compass/layout/_stretching.scss +0 -24
  452. data/frameworks/compass/stylesheets/compass/reset/_utilities-legacy.scss +0 -135
  453. data/frameworks/compass/stylesheets/compass/reset/_utilities.scss +0 -142
  454. data/frameworks/compass/stylesheets/compass/typography/_links.scss +0 -3
  455. data/frameworks/compass/stylesheets/compass/typography/_lists.scss +0 -4
  456. data/frameworks/compass/stylesheets/compass/typography/_text.scss +0 -4
  457. data/frameworks/compass/stylesheets/compass/typography/_units.scss +0 -152
  458. data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +0 -300
  459. data/frameworks/compass/stylesheets/compass/typography/links/_hover-link.scss +0 -5
  460. data/frameworks/compass/stylesheets/compass/typography/links/_link-colors.scss +0 -28
  461. data/frameworks/compass/stylesheets/compass/typography/links/_unstyled-link.scss +0 -7
  462. data/frameworks/compass/stylesheets/compass/typography/lists/_bullets.scss +0 -34
  463. data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +0 -63
  464. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-block-list.scss +0 -50
  465. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +0 -47
  466. data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +0 -25
  467. data/frameworks/compass/stylesheets/compass/typography/text/_force-wrap.scss +0 -12
  468. data/frameworks/compass/stylesheets/compass/typography/text/_nowrap.scss +0 -2
  469. data/frameworks/compass/stylesheets/compass/typography/text/_replacement.scss +0 -68
  470. data/frameworks/compass/stylesheets/compass/utilities/_color.scss +0 -1
  471. data/frameworks/compass/stylesheets/compass/utilities/_general.scss +0 -6
  472. data/frameworks/compass/stylesheets/compass/utilities/_links.scss +0 -5
  473. data/frameworks/compass/stylesheets/compass/utilities/_lists.scss +0 -6
  474. data/frameworks/compass/stylesheets/compass/utilities/_print.scss +0 -17
  475. data/frameworks/compass/stylesheets/compass/utilities/_sprites.scss +0 -2
  476. data/frameworks/compass/stylesheets/compass/utilities/_tables.scss +0 -3
  477. data/frameworks/compass/stylesheets/compass/utilities/_text.scss +0 -5
  478. data/frameworks/compass/stylesheets/compass/utilities/color/_brightness.scss +0 -12
  479. data/frameworks/compass/stylesheets/compass/utilities/color/_contrast.scss +0 -52
  480. data/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss +0 -44
  481. data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +0 -38
  482. data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +0 -65
  483. data/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +0 -16
  484. data/frameworks/compass/stylesheets/compass/utilities/general/_reset.scss +0 -2
  485. data/frameworks/compass/stylesheets/compass/utilities/general/_tabs.scss +0 -1
  486. data/frameworks/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +0 -18
  487. data/frameworks/compass/stylesheets/compass/utilities/links/_hover-link.scss +0 -3
  488. data/frameworks/compass/stylesheets/compass/utilities/links/_link-colors.scss +0 -3
  489. data/frameworks/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +0 -3
  490. data/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.scss +0 -3
  491. data/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +0 -3
  492. data/frameworks/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +0 -3
  493. data/frameworks/compass/stylesheets/compass/utilities/lists/_inline-list.scss +0 -3
  494. data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +0 -92
  495. data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +0 -81
  496. data/frameworks/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +0 -22
  497. data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +0 -38
  498. data/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +0 -9
  499. data/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.scss +0 -3
  500. data/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.scss +0 -3
  501. data/frameworks/compass/stylesheets/compass/utilities/text/_replacement.scss +0 -3
  502. data/frameworks/compass/templates/ellipsis/ellipsis.sass +0 -9
  503. data/frameworks/compass/templates/ellipsis/manifest.rb +0 -27
  504. data/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +0 -14
  505. data/frameworks/compass/templates/extension/manifest.rb +0 -26
  506. data/frameworks/compass/templates/extension/stylesheets/main.sass +0 -1
  507. data/frameworks/compass/templates/extension/templates/project/manifest.rb +0 -2
  508. data/frameworks/compass/templates/extension/templates/project/screen.sass +0 -2
  509. data/frameworks/compass/templates/project/USAGE.markdown +0 -32
  510. data/frameworks/compass/templates/project/ie.sass +0 -6
  511. data/frameworks/compass/templates/project/manifest.rb +0 -4
  512. data/frameworks/compass/templates/project/print.sass +0 -6
  513. data/frameworks/compass/templates/project/screen.sass +0 -7
  514. data/lib/compass/browser_support.rb +0 -62
  515. data/lib/compass/caniuse.rb +0 -283
  516. data/lib/compass/configuration.rb +0 -91
  517. data/lib/compass/configuration/data.rb +0 -193
  518. data/lib/compass/configuration/defaults.rb +0 -187
  519. data/lib/compass/configuration/inheritance.rb +0 -304
  520. data/lib/compass/configuration/paths.rb +0 -19
  521. data/lib/compass/exec/switch_ui.rb +0 -179
  522. data/lib/compass/sass_extensions/functions/colors.rb +0 -67
  523. data/lib/compass/sass_extensions/functions/constants.rb +0 -74
  524. data/lib/compass/sass_extensions/functions/cross_browser_support.rb +0 -269
  525. data/lib/compass/sass_extensions/functions/display.rb +0 -32
  526. data/lib/compass/sass_extensions/functions/enumerate.rb +0 -7
  527. data/lib/compass/sass_extensions/functions/env.rb +0 -59
  528. data/lib/compass/sass_extensions/functions/font_files.rb +0 -41
  529. data/lib/compass/sass_extensions/functions/gradient_support.rb +0 -611
  530. data/lib/compass/sass_extensions/functions/image_size.rb +0 -114
  531. data/lib/compass/sass_extensions/functions/inline_image.rb +0 -64
  532. data/lib/compass/sass_extensions/functions/lists.rb +0 -101
  533. data/lib/compass/sass_extensions/functions/math.rb +0 -93
  534. data/lib/compass/sass_extensions/functions/selectors.rb +0 -64
  535. data/lib/compass/sass_extensions/functions/urls.rb +0 -297
  536. data/lib/compass/sass_extensions/monkey_patches.rb +0 -3
  537. data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +0 -124
  538. data/lib/compass/sass_extensions/monkey_patches/traversal.rb +0 -23
@@ -1,114 +0,0 @@
1
- module Compass::SassExtensions::Functions::ImageSize
2
- # Returns the width of the image relative to the images directory
3
- def image_width(image_file)
4
- width, _ = image_dimensions(image_file)
5
- Sass::Script::Number.new(width,["px"])
6
- end
7
-
8
- # Returns the height of the image relative to the images directory
9
- def image_height(image_file)
10
- _, height = image_dimensions(image_file)
11
- Sass::Script::Number.new(height, ["px"])
12
- end
13
-
14
- class ImageProperties
15
- def initialize(file)
16
- @file = (file.respond_to?(:to_path) ? file.to_path : file)
17
- @file_type = File.extname(@file)[1..-1]
18
- end
19
-
20
- def size
21
- @dimensions ||= send(:"get_size_for_#{@file_type}")
22
- rescue NoMethodError
23
- raise Sass::SyntaxError, "Unrecognized file type: #{@file_type}"
24
- end
25
-
26
- private
27
- def get_size_for_png
28
- File.open(@file, "rb") {|io| io.read}[0x10..0x18].unpack('NN')
29
- end
30
-
31
- def get_size_for_gif
32
- File.open(@file, "rb") {|io| io.read}[6..10].unpack('SS')
33
- end
34
-
35
- def get_size_for_jpg
36
- get_size_for_jpeg
37
- end
38
-
39
- def get_size_for_jpeg
40
- jpeg = JPEG.new(@file)
41
- [jpeg.width, jpeg.height]
42
- end
43
- end
44
-
45
- private
46
-
47
- def image_dimensions(image_file)
48
- image_file = image_file.respond_to?(:value) ? image_file.value : image_file
49
- options[:compass] ||= {}
50
- options[:compass][:image_dimensions] ||= {}
51
- options[:compass][:image_dimensions][image_file] = ImageProperties.new(image_path_for_size(image_file)).size
52
- end
53
-
54
- def image_path_for_size(image_file)
55
- if File.exists?(image_file)
56
- return image_file
57
- end
58
- real_path(image_file)
59
- end
60
-
61
- def real_path(image_file)
62
- # Compute the real path to the image on the file stystem if the images_dir is set.
63
- if Compass.configuration.images_path
64
- File.join(Compass.configuration.images_path, image_file)
65
- else
66
- File.join(Compass.configuration.project_path, image_file)
67
- end
68
- end
69
-
70
- class JPEG
71
- attr_reader :width, :height, :bits
72
-
73
- def initialize(file)
74
- if file.kind_of? IO
75
- examine(file)
76
- else
77
- File.open(file, 'rb') { |io| examine(io) }
78
- end
79
- end
80
-
81
- private
82
- def examine(io)
83
- class << io
84
- unless method_defined?(:readbyte)
85
- def readbyte
86
- getc
87
- end
88
- end
89
- def readint; (readbyte << 8) + readbyte; end
90
- def readframe; read(readint - 2); end
91
- def readsof; [readint, readbyte, readint, readint, readbyte]; end
92
- def next
93
- c = readbyte while c != 0xFF
94
- c = readbyte while c == 0xFF
95
- c
96
- end
97
- end
98
-
99
- raise 'malformed JPEG!' unless io.readbyte == 0xFF && io.readbyte == 0xD8 # SOI
100
-
101
- while marker = io.next
102
- case marker
103
- when 0xC0..0xC3, 0xC5..0xC7, 0xC9..0xCB, 0xCD..0xCF # SOF markers
104
- length, @bits, @height, @width, components = io.readsof
105
- raise 'malformed JPEG' unless length == 8 + components * 3
106
- when 0xD9, 0xDA then break # EOI, SOS
107
- when 0xFE then @comment = io.readframe # COM
108
- when 0xE1 then io.readframe # APP1, contains EXIF tag
109
- else io.readframe # ignore frame
110
- end
111
- end
112
- end
113
- end
114
- end
@@ -1,64 +0,0 @@
1
- module Compass::SassExtensions::Functions::InlineImage
2
-
3
- def inline_image(path, mime_type = nil)
4
- path = path.value
5
- real_path = File.join(Compass.configuration.images_path, path)
6
- inline_image_string(data(real_path), compute_mime_type(path, mime_type))
7
- end
8
-
9
- def inline_font_files(*args)
10
- raise Sass::SyntaxError, "An even number of arguments must be passed to font_files()" unless args.size % 2 == 0
11
- files = []
12
- while args.size > 0
13
- path = args.shift.value
14
- real_path = File.join(Compass.configuration.fonts_path, path)
15
- url = inline_image_string(data(real_path), compute_mime_type(path))
16
- files << "#{url} format('#{args.shift}')"
17
- end
18
- Sass::Script::String.new(files.join(", "))
19
- end
20
-
21
- protected
22
- def inline_image_string(data, mime_type)
23
- data = [data].flatten.pack('m').gsub("\n","")
24
- url = "url('data:#{mime_type};base64,#{data}')"
25
- Sass::Script::String.new(url)
26
- end
27
-
28
- private
29
- def compute_mime_type(path, mime_type = nil)
30
- return mime_type if mime_type
31
- case path
32
- when /\.png$/i
33
- 'image/png'
34
- when /\.jpe?g$/i
35
- 'image/jpeg'
36
- when /\.gif$/i
37
- 'image/gif'
38
- when /\.svg$/i
39
- 'image/svg+xml'
40
- when /\.otf$/i
41
- 'font/opentype'
42
- when /\.eot$/i
43
- 'application/vnd.ms-fontobject'
44
- when /\.ttf$/i
45
- 'font/truetype'
46
- when /\.woff$/i
47
- 'application/x-font-woff'
48
- when /\.off$/i
49
- 'font/openfont'
50
- when /\.([a-zA-Z]+)$/
51
- "image/#{Regexp.last_match(1).downcase}"
52
- else
53
- raise Compass::Error, "A mime type could not be determined for #{path}, please specify one explicitly."
54
- end
55
- end
56
-
57
- def data(real_path)
58
- if File.readable?(real_path)
59
- File.open(real_path, "rb") {|io| io.read}
60
- else
61
- raise Compass::Error, "File not found or cannot be read: #{real_path}"
62
- end
63
- end
64
- end
@@ -1,101 +0,0 @@
1
- module Compass::SassExtensions::Functions::Lists
2
-
3
- # Returns true when the object is false, an empty string, or an empty list
4
- def blank(obj)
5
- case obj
6
- when Sass::Script::Bool
7
- Sass::Script::Bool.new !obj.to_bool
8
- when Sass::Script::String
9
- Sass::Script::Bool.new obj.value.strip.size == 0
10
- when Sass::Script::List
11
- Sass::Script::Bool.new obj.value.size == 0 || obj.value.all?{|el| blank(el).to_bool}
12
- else
13
- Sass::Script::Bool.new false
14
- end
15
- end
16
-
17
- # Returns a new list after removing any non-true values
18
- def compact(*args)
19
- sep = :comma
20
- if args.size == 1 && args.first.is_a?(Sass::Script::List)
21
- list = args.first
22
- args = list.value
23
- sep = list.separator
24
- end
25
- Sass::Script::List.new(args.reject{|a| !a.to_bool}, sep)
26
- end
27
-
28
- # Get the nth value from a list
29
- def _compass_nth(list, place)
30
- assert_type list, :List
31
- if place.value == "first"
32
- list.value.first
33
- elsif place.value == "last"
34
- list.value.last
35
- else
36
- list.value[place.value - 1]
37
- end
38
- end
39
-
40
- # Returns a list object from a value that was passed.
41
- # This can be used to unpack a space separated list that got turned
42
- # into a string by sass before it was passed to a mixin.
43
- def _compass_list(arg)
44
- if arg.is_a?(Sass::Script::List)
45
- Sass::Script::List.new(arg.value.dup, arg.separator)
46
- else
47
- Sass::Script::List.new([arg], :space)
48
- end
49
- end
50
-
51
- # If the argument is a list, it will return a new list that is space delimited
52
- # Otherwise it returns a new, single element, space-delimited list.
53
- def _compass_space_list(list)
54
- if list.is_a?(Sass::Script::List)
55
- Sass::Script::List.new(list.value.dup, :space)
56
- else
57
- Sass::Script::List.new([list], :space)
58
- end
59
- end
60
-
61
- # Returns the size of the list.
62
- def _compass_list_size(list)
63
- assert_list list
64
- Sass::Script::Number.new(list.value.size)
65
- end
66
-
67
- # slice a sublist from a list
68
- def _compass_slice(list, start_index, end_index = nil)
69
- end_index ||= Sass::Script::Number.new(-1)
70
- start_index = start_index.value
71
- end_index = end_index.value
72
- start_index -= 1 unless start_index < 0
73
- end_index -= 1 unless end_index < 0
74
- Sass::Script::List.new list.values[start_index..end_index], list.separator
75
- end
76
-
77
- # removes the given values from the list.
78
- def reject(list, *values)
79
- Sass::Script::List.new(list.value.reject{|v| values.any?{|o| v == o}}, list.separator)
80
- end
81
-
82
- # returns the first value of a space delimited list.
83
- def first_value_of(list)
84
- if list.is_a?(Sass::Script::String)
85
- Sass::Script::String.new(list.value.split(/\s+/).first)
86
- elsif defined?(Sass::Script::List) && list.is_a?(Sass::Script::List)
87
- list.value.first
88
- else
89
- list
90
- end
91
- end
92
-
93
- protected
94
-
95
- def assert_list(value)
96
- unless value.is_a?(Sass::Script::List)
97
- raise ArgumentError.new("#{value.inspect} is not a list")
98
- end
99
- end
100
-
101
- end
@@ -1,93 +0,0 @@
1
- module Compass::SassExtensions::Functions::Math
2
-
3
- extend Compass::SassExtensions::Functions::SassDeclarationHelper
4
-
5
- PI = Sass::Script::Number.new(Math::PI)
6
- def pi()
7
- PI
8
- end
9
- register_sass_function :pi, []
10
-
11
- def random(*args)
12
- value = if args.length == 1
13
- rand(args.pop.value)
14
- else
15
- range = (args.first.value..args.last.value).to_a
16
- range[rand(range.length)]
17
- end
18
- Sass::Script::Number.new(value)
19
- end
20
- register_sass_function :random, [:limit]
21
- register_sass_function :random, [:start, :limit]
22
-
23
- def sin(number)
24
- trig(:sin, number)
25
- end
26
- register_sass_function :sin, [:number]
27
-
28
- def asin(number)
29
- trig(:asin, number)
30
- end
31
- register_sass_function :asin, [:number]
32
-
33
- def cos(number)
34
- trig(:cos, number)
35
- end
36
- register_sass_function :cos, [:number]
37
-
38
- def acos(number)
39
- trig(:acos, number)
40
- end
41
- register_sass_function :acos, [:number]
42
-
43
- def tan(number)
44
- trig(:tan, number)
45
- end
46
- register_sass_function :tan, [:number]
47
-
48
- def atan(number)
49
- trig(:atan, number)
50
- end
51
- register_sass_function :atan, [:number]
52
-
53
- def e
54
- Sass::Script::Number.new(Math::E)
55
- end
56
- register_sass_function :e, []
57
-
58
- def logarithm(number, base = e )
59
- assert_type number, :Number
60
- assert_type base, :Number
61
- raise Sass::SyntaxError, "base to logarithm must be unitless." unless base.unitless?
62
-
63
- result = Math.log(number.value, base.value) rescue Math.log(number.value) / Math.log(base.value)
64
- Sass::Script::Number.new(result, number.numerator_units, number.denominator_units)
65
- end
66
- register_sass_function :logarithm, [:number]
67
- register_sass_function :logarithm, [:number, :base]
68
-
69
- def sqrt(number)
70
- numeric_transformation(number) { |n| Math.sqrt(n) }
71
- end
72
- register_sass_function :sqrt, [:number]
73
-
74
- alias square_root sqrt
75
- register_sass_function :square_root, [:number]
76
-
77
- def pow(number, exponent)
78
- assert_type number, :Number
79
- assert_type exponent, :Number
80
- raise Sass::SyntaxError, "exponent to pow must be unitless." unless exponent.unitless?
81
- Sass::Script::Number.new(number.value**exponent.value, number.numerator_units, number.denominator_units)
82
- end
83
- register_sass_function :pow, [:number, :exponent]
84
-
85
- private
86
- def trig(operation, number)
87
- if number.numerator_units == ["deg"] && number.denominator_units == []
88
- Sass::Script::Number.new(Math.send(operation, Math::PI * number.value / 180))
89
- else
90
- Sass::Script::Number.new(Math.send(operation, number.value), number.numerator_units, number.denominator_units)
91
- end
92
- end
93
- end
@@ -1,64 +0,0 @@
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
- end
@@ -1,297 +0,0 @@
1
- module Compass::SassExtensions::Functions::Urls
2
-
3
-
4
- def self.has?(base, instance_method)
5
- Sass::Util.has?(:instance_method, base, instance_method)
6
- end
7
-
8
- def self.included(base)
9
- base.send(:include, StylesheetUrl) unless has?(base, :stylesheet_url)
10
- base.send(:include, FontUrl) unless has?(base, :font_url)
11
- base.send(:include, ImageUrl) unless has?(base, :image_url)
12
- base.send(:include, GeneratedImageUrl) unless has?(base, :generated_image_url)
13
- end
14
-
15
- module StylesheetUrl
16
- def self.included(base)
17
- if base.respond_to?(:declare)
18
- base.declare :stylesheet_url, [:path]
19
- base.declare :stylesheet_url, [:path, :only_path]
20
- end
21
- end
22
- def stylesheet_url(path, only_path = Sass::Script::Bool.new(false))
23
- # Compute the path to the stylesheet, either root relative or stylesheet relative
24
- # or nil if the http_images_path is not set in the configuration.
25
- http_stylesheets_path = if relative?
26
- compute_relative_path(Compass.configuration.css_path)
27
- elsif Compass.configuration.http_stylesheets_path
28
- Compass.configuration.http_stylesheets_path
29
- else
30
- Compass.configuration.http_root_relative(Compass.configuration.css_dir)
31
- end
32
-
33
- path = "#{http_stylesheets_path}/#{path.value}"
34
- if only_path.to_bool
35
- Sass::Script::String.new(clean_path(path))
36
- else
37
- clean_url(path)
38
- end
39
- end
40
- end
41
-
42
- module FontUrl
43
- def self.included(base)
44
- if base.respond_to?(:declare)
45
- base.declare :font_url, [:path]
46
- base.declare :font_url, [:path, :only_path]
47
- base.declare :font_url, [:path, :only_path, :cache_buster]
48
- end
49
- end
50
- def font_url(path, only_path = Sass::Script::Bool.new(false), cache_buster = Sass::Script::Bool.new(false))
51
- path = path.value # get to the string value of the literal.
52
-
53
- # Short curcuit if they have provided an absolute url.
54
- if absolute_path?(path)
55
- return Sass::Script::String.new("url(#{path})")
56
- end
57
-
58
- # Compute the path to the font file, either root relative or stylesheet relative
59
- # or nil if the http_fonts_path cannot be determined from the configuration.
60
- http_fonts_path = if relative?
61
- compute_relative_path(Compass.configuration.fonts_path)
62
- else
63
- Compass.configuration.http_fonts_path
64
- end
65
-
66
- # Compute the real path to the font on the file system if the fonts_dir is set.
67
- real_path = if Compass.configuration.fonts_dir
68
- File.join(Compass.configuration.project_path, Compass.configuration.fonts_dir, path)
69
- end
70
-
71
- # prepend the path to the font if there's one
72
- if http_fonts_path
73
- http_fonts_path = "#{http_fonts_path}/" unless http_fonts_path[-1..-1] == "/"
74
- path = "#{http_fonts_path}#{path}"
75
- end
76
-
77
- # Compute the asset host unless in relative mode.
78
- asset_host = if !relative? && Compass.configuration.asset_host
79
- Compass.configuration.asset_host.call(path)
80
- end
81
-
82
- # Compute and append the cache buster if there is one.
83
- if cache_buster.to_bool
84
- if cache_buster.is_a?(Sass::Script::String)
85
- path += "?#{cache_buster.value}"
86
- else
87
- path = cache_busted_path(path, real_path)
88
- end
89
- end
90
-
91
- # prepend the asset host if there is one.
92
- path = "#{asset_host}#{'/' unless path[0..0] == "/"}#{path}" if asset_host
93
-
94
- if only_path.to_bool
95
- Sass::Script::String.new(clean_path(path))
96
- else
97
- clean_url(path)
98
- end
99
- end
100
- end
101
-
102
- module ImageUrl
103
- def self.included(base)
104
- if base.respond_to?(:declare)
105
- base.declare :image_url, [:path]
106
- base.declare :image_url, [:path, :only_path]
107
- base.declare :image_url, [:path, :only_path, :cache_buster]
108
- end
109
- end
110
- def image_url(path, only_path = Sass::Script::Bool.new(false), cache_buster = Sass::Script::Bool.new(true))
111
- path = path.value # get to the string value of the literal.
112
-
113
- if path =~ %r{^#{Regexp.escape(Compass.configuration.http_images_path)}/(.*)}
114
- # Treat root relative urls (without a protocol) like normal if they start with
115
- # the images path.
116
- path = $1
117
- elsif absolute_path?(path)
118
- # Short curcuit if they have provided an absolute url.
119
- return Sass::Script::String.new("url(#{path})")
120
- end
121
-
122
- # Compute the path to the image, either root relative or stylesheet relative
123
- # or nil if the http_images_path is not set in the configuration.
124
- http_images_path = if relative?
125
- compute_relative_path(Compass.configuration.images_path)
126
- elsif Compass.configuration.http_images_path
127
- Compass.configuration.http_images_path
128
- else
129
- Compass.configuration.http_root_relative(Compass.configuration.images_dir)
130
- end
131
-
132
- # Compute the real path to the image on the file stystem if the images_dir is set.
133
- real_path = if Compass.configuration.images_path
134
- File.join(Compass.configuration.images_path, path)
135
- else
136
- File.join(Compass.configuration.project_path, path)
137
- end
138
-
139
- # prepend the path to the image if there's one
140
- if http_images_path
141
- http_images_path = "#{http_images_path}/" unless http_images_path[-1..-1] == "/"
142
- path = "#{http_images_path}#{path}"
143
- end
144
-
145
- # Compute the asset host unless in relative mode.
146
- asset_host = if !relative? && Compass.configuration.asset_host
147
- Compass.configuration.asset_host.call(path)
148
- end
149
-
150
- # Compute and append the cache buster if there is one.
151
- if cache_buster.to_bool
152
- if cache_buster.is_a?(Sass::Script::String)
153
- path += "?#{cache_buster.value}"
154
- else
155
- path = cache_busted_path(path, real_path)
156
- end
157
- end
158
-
159
- # prepend the asset host if there is one.
160
- path = "#{asset_host}#{'/' unless path[0..0] == "/"}#{path}" if asset_host
161
-
162
- if only_path.to_bool
163
- Sass::Script::String.new(clean_path(path))
164
- else
165
- clean_url(path)
166
- end
167
- end
168
- end
169
-
170
- module GeneratedImageUrl
171
- def self.included(base)
172
- if base.respond_to?(:declare)
173
- base.declare :generated_image_url, [:path]
174
- base.declare :generated_image_url, [:path, :cache_buster]
175
- end
176
- end
177
- def generated_image_url(path, cache_buster = Sass::Script::Bool.new(false))
178
- path = path.value # get to the string value of the literal.
179
-
180
- if path =~ %r{^#{Regexp.escape(Compass.configuration.http_generated_images_path)}/(.*)}
181
- # Treat root relative urls (without a protocol) like normal if they start with
182
- # the generated_images path.
183
- path = $1
184
- elsif absolute_path?(path)
185
- # Short curcuit if they have provided an absolute url.
186
- return Sass::Script::String.new("url(#{path})")
187
- end
188
-
189
- # Compute the path to the image, either root relative or stylesheet relative
190
- # or nil if the http_generated_images_path is not set in the configuration.
191
- http_generated_images_path = if relative?
192
- compute_relative_path(Compass.configuration.generated_images_path)
193
- elsif Compass.configuration.http_generated_images_path
194
- Compass.configuration.http_generated_images_path
195
- else
196
- Compass.configuration.http_root_relative(Compass.configuration.generated_images_dir)
197
- end
198
-
199
- # Compute the real path to the image on the file stystem if the generated_images_dir is set.
200
- real_path = if Compass.configuration.images_path
201
- File.join(Compass.configuration.images_path, path)
202
- else
203
- File.join(Compass.configuration.project_path, path)
204
- end
205
-
206
- # prepend the path to the image if there's one
207
- if http_generated_images_path
208
- http_generated_images_path = "#{http_generated_images_path}/" unless http_generated_images_path[-1..-1] == "/"
209
- path = "#{http_generated_images_path}#{path}"
210
- end
211
-
212
- # Compute the asset host unless in relative mode.
213
- asset_host = if !relative? && Compass.configuration.asset_host
214
- Compass.configuration.asset_host.call(path)
215
- end
216
-
217
- # Compute and append the cache buster if there is one.
218
- if cache_buster.to_bool
219
- if cache_buster.is_a?(Sass::Script::String)
220
- path += "?#{cache_buster.value}"
221
- else
222
- path = cache_busted_path(path, real_path)
223
- end
224
- end
225
-
226
- # prepend the asset host if there is one.
227
- path = "#{asset_host}#{'/' unless path[0..0] == "/"}#{path}" if asset_host
228
-
229
- clean_url(path)
230
- end
231
- end
232
-
233
- private
234
-
235
- # Emits a path, taking off any leading "./"
236
- def clean_path(url)
237
- url = url.to_s
238
- url = url[0..1] == "./" ? url[2..-1] : url
239
- end
240
-
241
- # Emits a url, taking off any leading "./"
242
- def clean_url(url)
243
- Sass::Script::String.new("url('#{clean_path(url)}')")
244
- end
245
-
246
- def relative?
247
- Compass.configuration.relative_assets?
248
- end
249
-
250
- def absolute_path?(path)
251
- path[0..0] == "/" || path[0..3] == "http"
252
- end
253
-
254
- def compute_relative_path(path)
255
- if (target_css_file = options[:css_filename])
256
- Pathname.new(path).relative_path_from(Pathname.new(File.dirname(target_css_file))).to_s
257
- end
258
- end
259
-
260
- def cache_busted_path(path, real_path)
261
- cache_buster = compute_cache_buster(path, real_path)
262
- if cache_buster.nil?
263
- return path
264
- elsif cache_buster.is_a?(String)
265
- cache_buster = {:query => cache_buster}
266
- else
267
- path = cache_buster[:path] if cache_buster[:path]
268
- end
269
-
270
- if cache_buster[:query]
271
- "%s?%s" % [path, cache_buster[:query]]
272
- else
273
- path
274
- end
275
- end
276
-
277
- def compute_cache_buster(path, real_path)
278
- if Compass.configuration.asset_cache_buster
279
- args = [path]
280
- if Compass.configuration.asset_cache_buster.arity > 1
281
- args << (File.new(real_path) if real_path)
282
- end
283
- Compass.configuration.asset_cache_buster.call(*args)
284
- elsif real_path
285
- default_cache_buster(path, real_path)
286
- end
287
- end
288
-
289
- def default_cache_buster(path, real_path)
290
- if File.readable?(real_path)
291
- File.mtime(real_path).to_i.to_s
292
- else
293
- $stderr.puts "WARNING: '#{File.basename(path)}' was not found (or cannot be read) in #{File.dirname(real_path)}"
294
- end
295
- end
296
-
297
- end