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,9 +0,0 @@
1
- @mixin table-scaffolding {
2
- th {
3
- text-align: center;
4
- font-weight: bold; }
5
- td,
6
- th {
7
- padding: 2px;
8
- &.numeric {
9
- text-align: right; } } }
@@ -1,3 +0,0 @@
1
- @warn "This import is deprecated. Use 'compass/typography/text/ellipsis' instead.";
2
-
3
- @import "../../typography/text/ellipsis";
@@ -1,3 +0,0 @@
1
- @warn "This import is deprecated. Use 'compass/typography/text/nowrap' instead.";
2
-
3
- @import "../../typography/text/nowrap";
@@ -1,3 +0,0 @@
1
- @warn "This import is deprecated. Use 'compass/typography/text/replacement' instead.";
2
-
3
- @import "../../typography/text/replacement";
@@ -1,9 +0,0 @@
1
- // Since you've installed the xml file, you should set
2
- // $use-mozilla-ellipsis-binding to true before importing.
3
- $use-mozilla-ellipsis-binding: true
4
- @import compass/typography/text/ellipsis
5
-
6
- // You can delete this sass file if you want, it's just an example of how to use the ellipsis mixin.
7
- // By default, ellipsis text is no-wrap. Pass false as the first argument if you don't want that.
8
- .ellipsis
9
- +ellipsis
@@ -1,27 +0,0 @@
1
- description "Plugin for cross-browser ellipsis truncated text."
2
-
3
- file 'xml/ellipsis.xml', :like => :css
4
- stylesheet 'ellipsis.sass'
5
-
6
- help %Q{
7
- First, install the plugin to get the xml file that makes this work in firefox:
8
-
9
- compass install compass/ellipsis
10
-
11
- Then @include "ellipsis" into your selectors to enable ellipsis
12
- there when text gets too long.
13
-
14
- The ellipsis.sass file is just an example for how to use this plugin,
15
- feel free to delete it.
16
-
17
- For more information see:
18
- http://mattsnider.com/css/css-string-truncation-with-ellipsis/
19
- }
20
-
21
- welcome_message %Q{
22
- The ellipsis.sass file is just an example for how to use this plugin,
23
- feel free to delete it.
24
-
25
- For more information see:
26
- http://mattsnider.com/css/css-string-truncation-with-ellipsis/
27
- }
@@ -1,14 +0,0 @@
1
- <?xml version="1.0"?>
2
- <bindings
3
- xmlns="http://www.mozilla.org/xbl"
4
- xmlns:xbl="http://www.mozilla.org/xbl"
5
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
6
- >
7
- <binding id="ellipsis">
8
- <content>
9
- <xul:window>
10
- <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
11
- </xul:window>
12
- </content>
13
- </binding>
14
- </bindings>
@@ -1,26 +0,0 @@
1
- description "Generate a compass extension."
2
-
3
- unless options.include?(:preferred_syntax)
4
- options[:preferred_syntax] = 'sass'
5
- end
6
-
7
- file 'templates/project/manifest.rb'
8
- file "stylesheets/main.sass", :to => "stylesheets/_#{File.basename(options[:pattern_name]||options[:project_name]||'main')}.#{options[:preferred_syntax]}"
9
-
10
- file "templates/project/screen.sass", :to => "templates/project/screen.#{options[:preferred_syntax]}"
11
-
12
-
13
- help %Q{
14
- To generate a compass extension:
15
- compass create my_extension --using compass/extension
16
- }
17
-
18
- welcome_message %Q{
19
- For a full tutorial on how to build your own extension see:
20
-
21
- http://compass-style.org/help/tutorials/extensions/
22
-
23
- }, :replace => true
24
-
25
- no_configuration_file!
26
- skip_compilation!
@@ -1 +0,0 @@
1
- // This is your framework's main stylesheet. Use it to import all default modules.
@@ -1,2 +0,0 @@
1
- # Make sure you list all the project template files here in the manifest.
2
- stylesheet 'screen.sass', :media => 'screen, projection'
@@ -1,2 +0,0 @@
1
- // This is where you put the contents of the main stylesheet for the user's project.
2
- // It should import your sass stylesheets and demonstrate how to use them.
@@ -1,32 +0,0 @@
1
- When no framework is specified, a new compass project is set up with three stylesheets:
2
-
3
- * screen.sass
4
- * print.sass
5
- * ie.sass
6
-
7
- It is expected that you will link your html to these like so:
8
-
9
- <head>
10
- <link href="/stylesheets/screen.css" media="screen, projection"
11
- rel="stylesheet" type="text/css" />
12
- <link href="/stylesheets/print.css" media="print"
13
- rel="stylesheet" type="text/css" />
14
- <!--[if IE]>
15
- <link href="/stylesheets/ie.css" media="screen, projection"
16
- rel="stylesheet" type="text/css" />
17
- <![endif]-->
18
- </head>
19
-
20
- You don't have to use these three stylesheets, they are just a recommendation.
21
- You can rename them, make new stylesheets, and delete them. Compass will
22
- happily compile whatever sass files you place into your project.
23
-
24
- Any folders you create in your source directory with sass files in them will be folders
25
- that get created with css files in them when compiled.
26
-
27
- Sass files beginning with an underscore are called partials, they are not directly
28
- compiled to their own css file. You can use these partials by importing them
29
- into other stylesheets. This is useful for keeping your stylesheets small and manageable
30
- and single-focused. It is common to create a file called _base.sass at the top level
31
- of your stylesheets and to import this to set up project-wide constants and mixins.
32
-
@@ -1,6 +0,0 @@
1
- /*
2
- Welcome to Compass. Use this file to write IE specific override styles.
3
- Import this file using the following HTML or equivalent:
4
- <!--[if IE]>
5
- <link href="/stylesheets/ie.css" media="screen, projection" rel="stylesheet" type="text/css" />
6
- <![endif]-->
@@ -1,4 +0,0 @@
1
- description "The default project layout."
2
- stylesheet 'screen.sass', :media => 'screen, projection'
3
- stylesheet 'print.sass', :media => 'print'
4
- stylesheet 'ie.sass', :media => 'screen, projection', :condition => "IE"
@@ -1,6 +0,0 @@
1
- /*
2
- Welcome to Compass. Use this file to define print styles.
3
- Import this file using the following HTML or equivalent:
4
- <link href="/stylesheets/print.css" media="print" rel="stylesheet" type="text/css" />
5
-
6
-
@@ -1,7 +0,0 @@
1
- /*
2
- Welcome to Compass.
3
- In this file you should write your main styles. (or centralize your imports)
4
- Import this file using the following HTML or equivalent:
5
- <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css" />
6
-
7
- @import compass/reset
@@ -1,62 +0,0 @@
1
- module Compass
2
- module BrowserSupport
3
- extend self
4
-
5
- ASPECTS = %w(webkit moz o ms svg css2)
6
-
7
- SIMPLE_FUNCTIONS = {
8
- "image" => %w(webkit),
9
- "cross-fade" => %w(webkit)
10
- }
11
-
12
- # Adds support for one or more aspects for the given simple function
13
- # Example:
14
- #
15
- # Compass::BrowserSupport.add_support("image", "moz", "webkit")
16
- # # => Adds support for moz and webkit to the image() function.
17
- #
18
- # This function can be called one or more times in a compass configuration
19
- # file in order to add support for new, simple browser functions without
20
- # waiting for a new compass release.
21
- def add_support(function, *aspects)
22
- aspects.each do |aspect|
23
- unless ASPECTS.include?(aspect)
24
- Compass::Util.compass_warn "Unknown support aspect: #{aspect}"
25
- next
26
- end
27
- unless supports?(function, aspect)
28
- SIMPLE_FUNCTIONS[function.to_s] ||= []
29
- SIMPLE_FUNCTIONS[function.to_s] << aspect.to_s
30
- end
31
- end
32
- end
33
-
34
- # Removes support for one or more aspects for the given simple function
35
- # Example:
36
- #
37
- # Compass::BrowserSupport.remove_support("image", "o", "ms")
38
- # # => Adds support for moz and webkit to the image() function.
39
- #
40
- # This function can be called one or more times in a compass configuration
41
- # file in order to remove support for simple functions that no longer need to
42
- # a prefix without waiting for a new compass release.
43
- def remove_support(function, *aspects)
44
- aspects.each do |aspect|
45
- unless ASPECTS.include?(aspect)
46
- Compass::Util.compass_warn "Unknown support aspect: #{aspect}"
47
- next
48
- end
49
- SIMPLE_FUNCTIONS[function.to_s].reject!{|a| a == aspect.to_s}
50
- end
51
- end
52
-
53
- def supports?(function, aspect)
54
- SIMPLE_FUNCTIONS.has_key?(function.to_s) && SIMPLE_FUNCTIONS[function.to_s].include?(aspect.to_s)
55
- end
56
-
57
- def has_aspect?(function)
58
- SIMPLE_FUNCTIONS.has_key?(function.to_s) && SIMPLE_FUNCTIONS[function.to_s].size > 0
59
- end
60
-
61
- end
62
- end
@@ -1,283 +0,0 @@
1
- require 'json'
2
- require 'singleton'
3
- class Compass::CanIUse
4
- include Singleton
5
-
6
- DATA_FILE_NAME = File.join(Compass.base_directory, "data", "caniuse.json")
7
- DATA_FEATURE_FILES = Dir.glob(File.join(Compass.base_directory, "data", "caniuse_extras", "**", "*.json"))
8
-
9
- def initialize
10
- @data = JSON.parse(File.read(DATA_FILE_NAME))
11
- # support ad-hoc features
12
- DATA_FEATURE_FILES.each do |feature_file|
13
- feature_name = File.basename(feature_file, ".json")
14
- # if the feature doesn't exist in the master `caniuse.json`
15
- if @data["data"][feature_name].nil?
16
- @data["data"][feature_name] = JSON.parse(File.read(feature_file))
17
- end
18
- end
19
- end
20
-
21
- # The browser names from caniuse are ugly.
22
- PUBLIC_BROWSER_NAMES = Hash.new {|h, k| k}
23
- PUBLIC_BROWSER_NAMES.update(
24
- "and_chr" => "android-chrome",
25
- "and_ff" => "android-firefox",
26
- "android" => "android",
27
- "bb" => "blackberry",
28
- "chrome" => "chrome",
29
- "firefox" => "firefox",
30
- "ie" => "ie",
31
- "ie_mob" => "ie-mobile",
32
- "ios_saf" => "ios-safari",
33
- "op_mini" => "opera-mini",
34
- "op_mob" => "opera-mobile",
35
- "opera" => "opera",
36
- "safari" => "safari"
37
- )
38
- CAN_I_USE_NAMES = Hash.new {|h, k| k}
39
- CAN_I_USE_NAMES.update(PUBLIC_BROWSER_NAMES.invert)
40
-
41
- # Returns all the known browsers according to caniuse
42
- def browsers
43
- @browsers ||= @data["agents"].keys.map{|b| PUBLIC_BROWSER_NAMES[b] }.sort
44
- end
45
-
46
- # Returns the prefix corresponding to a particular browser
47
- def prefix(browser, version = nil)
48
- assert_valid_browser browser
49
- assert_valid_version browser, version if version
50
- data = browser_data(browser)
51
- p = if data["prefix_exceptions"] && data["prefix_exceptions"][version]
52
- data["prefix_exceptions"][version]
53
- else
54
- data["prefix"]
55
- end
56
- "-#{p}"
57
- end
58
-
59
- # returns all possible prefixes a browser might use.
60
- def all_prefixes(browser)
61
- assert_valid_browser browser
62
- data = browser_data(browser)
63
- prefixes = ["-#{data["prefix"]}"]
64
- if data["prefix_exceptions"]
65
- prefixes += data["prefix_exceptions"].values.uniq.map{|p| "-#{p}"}
66
- end
67
- prefixes
68
- end
69
-
70
- # returns the prefixes needed by the list of browsers given
71
- def prefixes(browsers = browsers)
72
- result = browsers.map{|b| all_prefixes(b) }
73
- result.flatten!
74
- result.uniq!
75
- result.sort!
76
- result
77
- end
78
-
79
- def browser_ranges(capability, prefix = nil, include_unprefixed_versions = true)
80
- assert_valid_capability capability
81
- browsers = prefix.nil? ? browsers() : browsers_with_prefix(prefix)
82
- browsers.inject({}) do |m, browser|
83
- browser_versions = versions(browser)
84
- min_version = find_first_prefixed_version(browser, browser_versions, capability, prefix)
85
- if min_version
86
- max_version = if include_unprefixed_versions
87
- browser_versions.last
88
- else
89
- find_first_prefixed_version(browser, browser_versions.reverse, capability, prefix)
90
- end
91
- m.update(browser => [min_version, max_version])
92
- end
93
- m
94
- end
95
- end
96
-
97
- def find_first_prefixed_version(browser, versions, capability, prefix)
98
- versions.find do |version|
99
- support = browser_support(browser, version, capability)
100
- if prefix.nil?
101
- support !~ /\bn\b/ && support !~ /\bx\b/
102
- else
103
- actual_prefix = prefix(browser, version)
104
- support !~ /\bn\b/ && support =~ /\bx\b/ && prefix == actual_prefix
105
- end
106
- end
107
- end
108
-
109
- # @overload omitted_usage(browser, min_supported_version)
110
- # How many users would be omitted if support for the given browser starts
111
- # with the given version.
112
- #
113
- # @overload omitted_usage(browser, min_unsupported_version, max_unsupported_version)
114
- # How many users would be omitted if the browsers with version
115
- def omitted_usage(browser, min_version, max_version = nil)
116
- versions = versions(browser)
117
- if max_version.nil?
118
- assert_valid_version browser, min_version
119
- else
120
- assert_valid_version browser, min_version, max_version
121
- end
122
- usage = 0
123
- in_range = max_version.nil?
124
- versions.each do |version|
125
- break if max_version.nil? && version == min_version
126
- in_range = true if (!max_version.nil? && version == min_version)
127
- usage += usage(browser, version) if in_range
128
- break if !max_version.nil? && version == max_version
129
- end
130
- return usage
131
- end
132
-
133
- # returns the list of browsers that use the given prefix
134
- def browsers_with_prefix(prefix)
135
- assert_valid_prefix prefix
136
- prefix = "-" + prefix unless prefix.start_with?("-")
137
- browsers.select {|b| all_prefixes(b).include?(prefix) }
138
- end
139
-
140
- SPEC_VERSION_MATCHERS = Hash.new do |h, k|
141
- h[k] = /##{k}\b/
142
- end
143
-
144
- CAPABILITY_MATCHERS = {
145
- :full_support => lambda {|support, capability| !support ^ (capability =~ /\by\b/) },
146
- :partial_support => lambda {|support, capability| !support ^ (capability =~ /\ba\b/) },
147
- :prefixed => lambda {|support, capability| !support ^ (capability =~ /\bx\b/) },
148
- :spec_versions => lambda {|versions, capability| versions.any? {|v| capability =~ SPEC_VERSION_MATCHERS[v] } }
149
- }
150
-
151
- # Return whether the capability matcher the options specified.
152
- # For each capability option in the options the capability will need to match it.
153
- def capability_matches(support, capability_options_list)
154
- capability_options_list.any? do |capability_options|
155
- capability_options.all? {|c, v| CAPABILITY_MATCHERS[c].call(v, support)}
156
- end
157
- end
158
-
159
- # returns the percentage of users (0-100) that would be affected if the prefix
160
- # was not used with the given capability.
161
- def prefixed_usage(prefix, capability, capability_options_list)
162
- assert_valid_prefix prefix
163
- assert_valid_capability capability
164
- usage = 0
165
- browsers_with_prefix(prefix).each do |browser|
166
- versions(browser).each do |version|
167
- next unless prefix == prefix(browser, version)
168
- support = browser_support(browser, version, capability)
169
- if capability_matches(support, capability_options_list) and support =~ /\bx\b/
170
- usage += usage(browser, version)
171
- end
172
- end
173
- end
174
- usage
175
- end
176
-
177
- def next_version(browser, version)
178
- versions = versions(browser)
179
- index = versions.index(version)
180
- index < versions.length - 1 ? versions[index + 1] : nil
181
- end
182
-
183
- def previous_version(browser, version)
184
- versions = versions(browser)
185
- index = versions.index(version)
186
- index > 0 ? versions[index - 1] : nil
187
- end
188
-
189
- # Returns whether the given minimum version of a browser
190
- # requires the use of a prefix for the stated capability.
191
- def requires_prefix(browser, min_version, capability, capability_options_list)
192
- assert_valid_browser browser
193
- assert_valid_capability capability
194
- found_version = false
195
- versions(browser).each do |version|
196
- found_version ||= version == min_version
197
- next unless found_version
198
- support = browser_support(browser, version, capability)
199
- if capability_matches(support, capability_options_list) and support =~ /\bx\b/
200
- return prefix(browser, version)
201
- end
202
- end
203
- raise ArgumentError, "#{min_version} is not a version for #{browser}" unless found_version
204
- nil
205
- end
206
-
207
- # Returns the versions of a browser. If the min_usage parameter is provided,
208
- # only those versions having met the threshold of user percentage.
209
- #
210
- # @param min_usage a decimal number betwee 0 and 100
211
- def versions(browser, min_usage = 0)
212
- assert_valid_browser browser
213
- versions = browser_data(browser)["versions"].compact
214
- return versions if min_usage == 0
215
- versions.select {|v| browser_data(browser)["usage_global"][v] > min_usage }
216
- end
217
-
218
- # The list of capabilities tracked by caniuse.
219
- def capabilities
220
- @capabilities ||= @data["data"].keys.select do |cap|
221
- cats = @data["data"][cap]["categories"]
222
- cats.any?{|cat| cat =~ /CSS/ }
223
- end.sort
224
- end
225
-
226
- # the usage % for a given browser version.
227
- def usage(browser, version)
228
- browser_data(browser)["usage_global"][version]
229
- end
230
-
231
-
232
- def inspect
233
- "Compass::CanIUse(#{browsers.join(", ")})"
234
- end
235
-
236
- # the browser data assocated with a given capability
237
- def capability_data(capability)
238
- @data["data"][capability]
239
- end
240
-
241
- def browser_support(browser, version, capability)
242
- capability_data(capability)["stats"][CAN_I_USE_NAMES[browser]][version]
243
- end
244
-
245
- # the metadata assocated with a given browser
246
- def browser_data(browser)
247
- @data["agents"][CAN_I_USE_NAMES[browser]]
248
- end
249
-
250
- # efficiently checks if a prefix is valid
251
- def assert_valid_prefix(prefix)
252
- @known_prefixes ||= Set.new(prefixes(browsers))
253
- unless @known_prefixes.include?(prefix)
254
- raise ArgumentError, "#{prefix} is not known browser prefix."
255
- end
256
- end
257
-
258
- # efficiently checks if a browser is valid
259
- def assert_valid_browser(browser)
260
- @known_browsers ||= Set.new(browsers)
261
- @known_browsers.include?(browser)
262
- unless @known_browsers.include?(browser)
263
- raise ArgumentError, "#{browser} is not known browser."
264
- end
265
- end
266
-
267
- # efficiently checks if a capability is valid
268
- def assert_valid_capability(capability)
269
- @known_capabilities ||= Set.new(capabilities)
270
- unless @known_capabilities.include?(capability)
271
- raise ArgumentError, "#{capability} is not known browser capability."
272
- end
273
- nil
274
- end
275
-
276
- def assert_valid_version(browser, *versions)
277
- versions.each do |v|
278
- unless versions(browser).include?(v)
279
- raise ArgumentError, "#{v} is not known version for #{browser}."
280
- end
281
- end
282
- end
283
- end