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

Sign up to get free protection for your applications and to get access to all the features.
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