tabler-rubygem 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (623) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +19 -0
  4. data/.travis.yml +17 -0
  5. data/CHANGELOG.md +29 -0
  6. data/Gemfile +11 -0
  7. data/LICENSE +21 -0
  8. data/README.md +110 -0
  9. data/Rakefile +78 -0
  10. data/assets/fonts/feather/feather-webfont.eot +0 -0
  11. data/assets/fonts/feather/feather-webfont.svg +1038 -0
  12. data/assets/fonts/feather/feather-webfont.ttf +0 -0
  13. data/assets/fonts/feather/feather-webfont.woff +0 -0
  14. data/assets/images/browsers/android-browser.svg +1 -0
  15. data/assets/images/browsers/aol-explorer.svg +1 -0
  16. data/assets/images/browsers/blackberry.svg +1 -0
  17. data/assets/images/browsers/camino.svg +1 -0
  18. data/assets/images/browsers/chrome.svg +1 -0
  19. data/assets/images/browsers/chromium.svg +1 -0
  20. data/assets/images/browsers/dolphin.svg +1 -0
  21. data/assets/images/browsers/edge.svg +1 -0
  22. data/assets/images/browsers/firefox.svg +1 -0
  23. data/assets/images/browsers/ie.svg +1 -0
  24. data/assets/images/browsers/maxthon.svg +1 -0
  25. data/assets/images/browsers/mozilla.svg +1 -0
  26. data/assets/images/browsers/netscape.svg +1 -0
  27. data/assets/images/browsers/opera.svg +1 -0
  28. data/assets/images/browsers/safari.svg +1 -0
  29. data/assets/images/browsers/sleipnir.svg +1 -0
  30. data/assets/images/browsers/uc-browser.svg +1 -0
  31. data/assets/images/browsers/vivaldi.svg +1 -0
  32. data/assets/images/crypto-currencies/bitcoin.svg +1 -0
  33. data/assets/images/crypto-currencies/cardano.svg +1 -0
  34. data/assets/images/crypto-currencies/dash.svg +1 -0
  35. data/assets/images/crypto-currencies/eos.svg +1 -0
  36. data/assets/images/crypto-currencies/ethereum.svg +1 -0
  37. data/assets/images/crypto-currencies/litecoin.svg +1 -0
  38. data/assets/images/crypto-currencies/nem.svg +1 -0
  39. data/assets/images/crypto-currencies/ripple.svg +1 -0
  40. data/assets/images/flags/ad.svg +1 -0
  41. data/assets/images/flags/ae.svg +1 -0
  42. data/assets/images/flags/af.svg +1 -0
  43. data/assets/images/flags/ag.svg +1 -0
  44. data/assets/images/flags/ai.svg +1 -0
  45. data/assets/images/flags/al.svg +1 -0
  46. data/assets/images/flags/am.svg +1 -0
  47. data/assets/images/flags/ao.svg +1 -0
  48. data/assets/images/flags/aq.svg +1 -0
  49. data/assets/images/flags/ar.svg +1 -0
  50. data/assets/images/flags/as.svg +1 -0
  51. data/assets/images/flags/at.svg +1 -0
  52. data/assets/images/flags/au.svg +1 -0
  53. data/assets/images/flags/aw.svg +1 -0
  54. data/assets/images/flags/ax.svg +1 -0
  55. data/assets/images/flags/az.svg +1 -0
  56. data/assets/images/flags/ba.svg +1 -0
  57. data/assets/images/flags/bb.svg +1 -0
  58. data/assets/images/flags/bd.svg +1 -0
  59. data/assets/images/flags/be.svg +1 -0
  60. data/assets/images/flags/bf.svg +1 -0
  61. data/assets/images/flags/bg.svg +1 -0
  62. data/assets/images/flags/bh.svg +1 -0
  63. data/assets/images/flags/bi.svg +1 -0
  64. data/assets/images/flags/bj.svg +1 -0
  65. data/assets/images/flags/bl.svg +1 -0
  66. data/assets/images/flags/bm.svg +1 -0
  67. data/assets/images/flags/bn.svg +1 -0
  68. data/assets/images/flags/bo.svg +1 -0
  69. data/assets/images/flags/bq.svg +1 -0
  70. data/assets/images/flags/br.svg +1 -0
  71. data/assets/images/flags/bs.svg +1 -0
  72. data/assets/images/flags/bt.svg +1 -0
  73. data/assets/images/flags/bv.svg +1 -0
  74. data/assets/images/flags/bw.svg +1 -0
  75. data/assets/images/flags/by.svg +1 -0
  76. data/assets/images/flags/bz.svg +1 -0
  77. data/assets/images/flags/ca.svg +6 -0
  78. data/assets/images/flags/cc.svg +1 -0
  79. data/assets/images/flags/cd.svg +1 -0
  80. data/assets/images/flags/cf.svg +1 -0
  81. data/assets/images/flags/cg.svg +1 -0
  82. data/assets/images/flags/ch.svg +1 -0
  83. data/assets/images/flags/ci.svg +1 -0
  84. data/assets/images/flags/ck.svg +1 -0
  85. data/assets/images/flags/cl.svg +1 -0
  86. data/assets/images/flags/cm.svg +1 -0
  87. data/assets/images/flags/cn.svg +1 -0
  88. data/assets/images/flags/co.svg +1 -0
  89. data/assets/images/flags/cr.svg +1 -0
  90. data/assets/images/flags/cu.svg +1 -0
  91. data/assets/images/flags/cv.svg +1 -0
  92. data/assets/images/flags/cw.svg +1 -0
  93. data/assets/images/flags/cx.svg +1 -0
  94. data/assets/images/flags/cy.svg +1 -0
  95. data/assets/images/flags/cz.svg +1 -0
  96. data/assets/images/flags/de.svg +1 -0
  97. data/assets/images/flags/dj.svg +1 -0
  98. data/assets/images/flags/dk.svg +1 -0
  99. data/assets/images/flags/dm.svg +1 -0
  100. data/assets/images/flags/do.svg +1 -0
  101. data/assets/images/flags/dz.svg +1 -0
  102. data/assets/images/flags/ec.svg +1 -0
  103. data/assets/images/flags/ee.svg +1 -0
  104. data/assets/images/flags/eg.svg +1 -0
  105. data/assets/images/flags/eh.svg +1 -0
  106. data/assets/images/flags/er.svg +1 -0
  107. data/assets/images/flags/es.svg +1 -0
  108. data/assets/images/flags/et.svg +1 -0
  109. data/assets/images/flags/eu.svg +1 -0
  110. data/assets/images/flags/fi.svg +1 -0
  111. data/assets/images/flags/fj.svg +1 -0
  112. data/assets/images/flags/fk.svg +1 -0
  113. data/assets/images/flags/fm.svg +1 -0
  114. data/assets/images/flags/fo.svg +1 -0
  115. data/assets/images/flags/fr.svg +1 -0
  116. data/assets/images/flags/ga.svg +1 -0
  117. data/assets/images/flags/gb-eng.svg +1 -0
  118. data/assets/images/flags/gb-nir.svg +1 -0
  119. data/assets/images/flags/gb-sct.svg +1 -0
  120. data/assets/images/flags/gb-wls.svg +1 -0
  121. data/assets/images/flags/gb.svg +1 -0
  122. data/assets/images/flags/gd.svg +1 -0
  123. data/assets/images/flags/ge.svg +1 -0
  124. data/assets/images/flags/gf.svg +1 -0
  125. data/assets/images/flags/gg.svg +1 -0
  126. data/assets/images/flags/gh.svg +1 -0
  127. data/assets/images/flags/gi.svg +1 -0
  128. data/assets/images/flags/gl.svg +1 -0
  129. data/assets/images/flags/gm.svg +1 -0
  130. data/assets/images/flags/gn.svg +1 -0
  131. data/assets/images/flags/gp.svg +1 -0
  132. data/assets/images/flags/gq.svg +1 -0
  133. data/assets/images/flags/gr.svg +1 -0
  134. data/assets/images/flags/gs.svg +1 -0
  135. data/assets/images/flags/gt.svg +1 -0
  136. data/assets/images/flags/gu.svg +1 -0
  137. data/assets/images/flags/gw.svg +1 -0
  138. data/assets/images/flags/gy.svg +1 -0
  139. data/assets/images/flags/hk.svg +1 -0
  140. data/assets/images/flags/hm.svg +1 -0
  141. data/assets/images/flags/hn.svg +1 -0
  142. data/assets/images/flags/hr.svg +1 -0
  143. data/assets/images/flags/ht.svg +1 -0
  144. data/assets/images/flags/hu.svg +1 -0
  145. data/assets/images/flags/id.svg +1 -0
  146. data/assets/images/flags/ie.svg +1 -0
  147. data/assets/images/flags/il.svg +1 -0
  148. data/assets/images/flags/im.svg +1 -0
  149. data/assets/images/flags/in.svg +1 -0
  150. data/assets/images/flags/io.svg +1 -0
  151. data/assets/images/flags/iq.svg +1 -0
  152. data/assets/images/flags/ir.svg +1 -0
  153. data/assets/images/flags/is.svg +1 -0
  154. data/assets/images/flags/it.svg +1 -0
  155. data/assets/images/flags/je.svg +1 -0
  156. data/assets/images/flags/jm.svg +1 -0
  157. data/assets/images/flags/jo.svg +1 -0
  158. data/assets/images/flags/jp.svg +1 -0
  159. data/assets/images/flags/ke.svg +1 -0
  160. data/assets/images/flags/kg.svg +1 -0
  161. data/assets/images/flags/kh.svg +1 -0
  162. data/assets/images/flags/ki.svg +1 -0
  163. data/assets/images/flags/km.svg +1 -0
  164. data/assets/images/flags/kn.svg +1 -0
  165. data/assets/images/flags/kp.svg +1 -0
  166. data/assets/images/flags/kr.svg +1 -0
  167. data/assets/images/flags/kw.svg +1 -0
  168. data/assets/images/flags/ky.svg +1 -0
  169. data/assets/images/flags/kz.svg +1 -0
  170. data/assets/images/flags/la.svg +1 -0
  171. data/assets/images/flags/lb.svg +1 -0
  172. data/assets/images/flags/lc.svg +1 -0
  173. data/assets/images/flags/li.svg +1 -0
  174. data/assets/images/flags/lk.svg +1 -0
  175. data/assets/images/flags/lr.svg +1 -0
  176. data/assets/images/flags/ls.svg +1 -0
  177. data/assets/images/flags/lt.svg +1 -0
  178. data/assets/images/flags/lu.svg +1 -0
  179. data/assets/images/flags/lv.svg +1 -0
  180. data/assets/images/flags/ly.svg +1 -0
  181. data/assets/images/flags/ma.svg +1 -0
  182. data/assets/images/flags/mc.svg +1 -0
  183. data/assets/images/flags/md.svg +1 -0
  184. data/assets/images/flags/me.svg +1 -0
  185. data/assets/images/flags/mf.svg +1 -0
  186. data/assets/images/flags/mg.svg +1 -0
  187. data/assets/images/flags/mh.svg +1 -0
  188. data/assets/images/flags/mk.svg +1 -0
  189. data/assets/images/flags/ml.svg +1 -0
  190. data/assets/images/flags/mm.svg +1 -0
  191. data/assets/images/flags/mn.svg +1 -0
  192. data/assets/images/flags/mo.svg +1 -0
  193. data/assets/images/flags/mp.svg +1 -0
  194. data/assets/images/flags/mq.svg +1 -0
  195. data/assets/images/flags/mr.svg +1 -0
  196. data/assets/images/flags/ms.svg +1 -0
  197. data/assets/images/flags/mt.svg +1 -0
  198. data/assets/images/flags/mu.svg +1 -0
  199. data/assets/images/flags/mv.svg +1 -0
  200. data/assets/images/flags/mw.svg +1 -0
  201. data/assets/images/flags/mx.svg +1 -0
  202. data/assets/images/flags/my.svg +1 -0
  203. data/assets/images/flags/mz.svg +1 -0
  204. data/assets/images/flags/na.svg +1 -0
  205. data/assets/images/flags/nc.svg +1 -0
  206. data/assets/images/flags/ne.svg +1 -0
  207. data/assets/images/flags/nf.svg +1 -0
  208. data/assets/images/flags/ng.svg +1 -0
  209. data/assets/images/flags/ni.svg +1 -0
  210. data/assets/images/flags/nl.svg +1 -0
  211. data/assets/images/flags/no.svg +1 -0
  212. data/assets/images/flags/np.svg +1 -0
  213. data/assets/images/flags/nr.svg +1 -0
  214. data/assets/images/flags/nu.svg +1 -0
  215. data/assets/images/flags/nz.svg +1 -0
  216. data/assets/images/flags/om.svg +1 -0
  217. data/assets/images/flags/pa.svg +1 -0
  218. data/assets/images/flags/pe.svg +1 -0
  219. data/assets/images/flags/pf.svg +1 -0
  220. data/assets/images/flags/pg.svg +1 -0
  221. data/assets/images/flags/ph.svg +1 -0
  222. data/assets/images/flags/pk.svg +1 -0
  223. data/assets/images/flags/pl.svg +1 -0
  224. data/assets/images/flags/pm.svg +1 -0
  225. data/assets/images/flags/pn.svg +1 -0
  226. data/assets/images/flags/pr.svg +1 -0
  227. data/assets/images/flags/ps.svg +1 -0
  228. data/assets/images/flags/pt.svg +1 -0
  229. data/assets/images/flags/pw.svg +1 -0
  230. data/assets/images/flags/py.svg +1 -0
  231. data/assets/images/flags/qa.svg +1 -0
  232. data/assets/images/flags/re.svg +1 -0
  233. data/assets/images/flags/ro.svg +1 -0
  234. data/assets/images/flags/rs.svg +1 -0
  235. data/assets/images/flags/ru.svg +1 -0
  236. data/assets/images/flags/rw.svg +1 -0
  237. data/assets/images/flags/sa.svg +1 -0
  238. data/assets/images/flags/sb.svg +1 -0
  239. data/assets/images/flags/sc.svg +1 -0
  240. data/assets/images/flags/sd.svg +1 -0
  241. data/assets/images/flags/se.svg +1 -0
  242. data/assets/images/flags/sg.svg +1 -0
  243. data/assets/images/flags/sh.svg +1 -0
  244. data/assets/images/flags/si.svg +1 -0
  245. data/assets/images/flags/sj.svg +1 -0
  246. data/assets/images/flags/sk.svg +1 -0
  247. data/assets/images/flags/sl.svg +1 -0
  248. data/assets/images/flags/sm.svg +1 -0
  249. data/assets/images/flags/sn.svg +1 -0
  250. data/assets/images/flags/so.svg +1 -0
  251. data/assets/images/flags/sr.svg +1 -0
  252. data/assets/images/flags/ss.svg +1 -0
  253. data/assets/images/flags/st.svg +1 -0
  254. data/assets/images/flags/sv.svg +1 -0
  255. data/assets/images/flags/sx.svg +1 -0
  256. data/assets/images/flags/sy.svg +1 -0
  257. data/assets/images/flags/sz.svg +1 -0
  258. data/assets/images/flags/tc.svg +1 -0
  259. data/assets/images/flags/td.svg +1 -0
  260. data/assets/images/flags/tf.svg +1 -0
  261. data/assets/images/flags/tg.svg +1 -0
  262. data/assets/images/flags/th.svg +1 -0
  263. data/assets/images/flags/tj.svg +1 -0
  264. data/assets/images/flags/tk.svg +1 -0
  265. data/assets/images/flags/tl.svg +1 -0
  266. data/assets/images/flags/tm.svg +1 -0
  267. data/assets/images/flags/tn.svg +1 -0
  268. data/assets/images/flags/to.svg +1 -0
  269. data/assets/images/flags/tr.svg +1 -0
  270. data/assets/images/flags/tt.svg +1 -0
  271. data/assets/images/flags/tv.svg +1 -0
  272. data/assets/images/flags/tw.svg +1 -0
  273. data/assets/images/flags/tz.svg +1 -0
  274. data/assets/images/flags/ua.svg +1 -0
  275. data/assets/images/flags/ug.svg +1 -0
  276. data/assets/images/flags/um.svg +1 -0
  277. data/assets/images/flags/un.svg +1 -0
  278. data/assets/images/flags/us.svg +18 -0
  279. data/assets/images/flags/uy.svg +1 -0
  280. data/assets/images/flags/uz.svg +1 -0
  281. data/assets/images/flags/va.svg +1 -0
  282. data/assets/images/flags/vc.svg +1 -0
  283. data/assets/images/flags/ve.svg +1 -0
  284. data/assets/images/flags/vg.svg +1 -0
  285. data/assets/images/flags/vi.svg +1 -0
  286. data/assets/images/flags/vn.svg +1 -0
  287. data/assets/images/flags/vu.svg +1 -0
  288. data/assets/images/flags/wf.svg +1 -0
  289. data/assets/images/flags/ws.svg +1 -0
  290. data/assets/images/flags/ye.svg +1 -0
  291. data/assets/images/flags/yt.svg +1 -0
  292. data/assets/images/flags/za.svg +1 -0
  293. data/assets/images/flags/zm.svg +1 -0
  294. data/assets/images/flags/zw.svg +1 -0
  295. data/assets/images/payments/2checkout-dark.svg +1 -0
  296. data/assets/images/payments/2checkout.svg +1 -0
  297. data/assets/images/payments/alipay-dark.svg +1 -0
  298. data/assets/images/payments/alipay.svg +1 -0
  299. data/assets/images/payments/amazon-dark.svg +1 -0
  300. data/assets/images/payments/amazon.svg +1 -0
  301. data/assets/images/payments/americanexpress-dark.svg +1 -0
  302. data/assets/images/payments/americanexpress.svg +1 -0
  303. data/assets/images/payments/applepay-dark.svg +1 -0
  304. data/assets/images/payments/applepay.svg +1 -0
  305. data/assets/images/payments/bancontact-dark.svg +1 -0
  306. data/assets/images/payments/bancontact.svg +1 -0
  307. data/assets/images/payments/bitcoin-dark.svg +1 -0
  308. data/assets/images/payments/bitcoin.svg +1 -0
  309. data/assets/images/payments/bitpay-dark.svg +1 -0
  310. data/assets/images/payments/bitpay.svg +1 -0
  311. data/assets/images/payments/cirrus-dark.svg +1 -0
  312. data/assets/images/payments/cirrus.svg +1 -0
  313. data/assets/images/payments/clickandbuy-dark.svg +1 -0
  314. data/assets/images/payments/clickandbuy.svg +1 -0
  315. data/assets/images/payments/coinkite-dark.svg +1 -0
  316. data/assets/images/payments/coinkite.svg +1 -0
  317. data/assets/images/payments/dinersclub-dark.svg +1 -0
  318. data/assets/images/payments/dinersclub.svg +1 -0
  319. data/assets/images/payments/directdebit-dark.svg +1 -0
  320. data/assets/images/payments/directdebit.svg +1 -0
  321. data/assets/images/payments/discover-dark.svg +1 -0
  322. data/assets/images/payments/discover.svg +1 -0
  323. data/assets/images/payments/dwolla-dark.svg +1 -0
  324. data/assets/images/payments/dwolla.svg +1 -0
  325. data/assets/images/payments/ebay-dark.svg +1 -0
  326. data/assets/images/payments/ebay.svg +1 -0
  327. data/assets/images/payments/eway-dark.svg +1 -0
  328. data/assets/images/payments/eway.svg +1 -0
  329. data/assets/images/payments/giropay-dark.svg +1 -0
  330. data/assets/images/payments/giropay.svg +1 -0
  331. data/assets/images/payments/googlewallet-dark.svg +1 -0
  332. data/assets/images/payments/googlewallet.svg +1 -0
  333. data/assets/images/payments/ingenico-dark.svg +1 -0
  334. data/assets/images/payments/ingenico.svg +1 -0
  335. data/assets/images/payments/jcb-dark.svg +1 -0
  336. data/assets/images/payments/jcb.svg +1 -0
  337. data/assets/images/payments/klarna-dark.svg +1 -0
  338. data/assets/images/payments/klarna.svg +1 -0
  339. data/assets/images/payments/laser-dark.svg +1 -0
  340. data/assets/images/payments/laser.svg +1 -0
  341. data/assets/images/payments/maestro-dark.svg +1 -0
  342. data/assets/images/payments/maestro.svg +1 -0
  343. data/assets/images/payments/mastercard-dark.svg +1 -0
  344. data/assets/images/payments/mastercard.svg +1 -0
  345. data/assets/images/payments/monero-dark.svg +1 -0
  346. data/assets/images/payments/monero.svg +1 -0
  347. data/assets/images/payments/neteller-dark.svg +1 -0
  348. data/assets/images/payments/neteller.svg +1 -0
  349. data/assets/images/payments/ogone-dark.svg +1 -0
  350. data/assets/images/payments/ogone.svg +1 -0
  351. data/assets/images/payments/okpay-dark.svg +1 -0
  352. data/assets/images/payments/okpay.svg +1 -0
  353. data/assets/images/payments/paybox-dark.svg +1 -0
  354. data/assets/images/payments/paybox.svg +1 -0
  355. data/assets/images/payments/paymill-dark.svg +1 -0
  356. data/assets/images/payments/paymill.svg +1 -0
  357. data/assets/images/payments/payone-dark.svg +1 -0
  358. data/assets/images/payments/payone.svg +1 -0
  359. data/assets/images/payments/payoneer-dark.svg +1 -0
  360. data/assets/images/payments/payoneer.svg +1 -0
  361. data/assets/images/payments/paypal-dark.svg +1 -0
  362. data/assets/images/payments/paypal.svg +1 -0
  363. data/assets/images/payments/paysafecard-dark.svg +1 -0
  364. data/assets/images/payments/paysafecard.svg +1 -0
  365. data/assets/images/payments/payu-dark.svg +1 -0
  366. data/assets/images/payments/payu.svg +1 -0
  367. data/assets/images/payments/payza-dark.svg +1 -0
  368. data/assets/images/payments/payza.svg +1 -0
  369. data/assets/images/payments/ripple-dark.svg +1 -0
  370. data/assets/images/payments/ripple.svg +1 -0
  371. data/assets/images/payments/sage-dark.svg +1 -0
  372. data/assets/images/payments/sage.svg +1 -0
  373. data/assets/images/payments/sepa-dark.svg +1 -0
  374. data/assets/images/payments/sepa.svg +1 -0
  375. data/assets/images/payments/shopify-dark.svg +1 -0
  376. data/assets/images/payments/shopify.svg +1 -0
  377. data/assets/images/payments/skrill-dark.svg +1 -0
  378. data/assets/images/payments/skrill.svg +1 -0
  379. data/assets/images/payments/solo-dark.svg +1 -0
  380. data/assets/images/payments/solo.svg +1 -0
  381. data/assets/images/payments/square-dark.svg +1 -0
  382. data/assets/images/payments/square.svg +1 -0
  383. data/assets/images/payments/stripe-dark.svg +1 -0
  384. data/assets/images/payments/stripe.svg +1 -0
  385. data/assets/images/payments/switch-dark.svg +1 -0
  386. data/assets/images/payments/switch.svg +1 -0
  387. data/assets/images/payments/ukash-dark.svg +1 -0
  388. data/assets/images/payments/ukash.svg +1 -0
  389. data/assets/images/payments/unionpay-dark.svg +1 -0
  390. data/assets/images/payments/unionpay.svg +1 -0
  391. data/assets/images/payments/verifone-dark.svg +1 -0
  392. data/assets/images/payments/verifone.svg +1 -0
  393. data/assets/images/payments/verisign-dark.svg +1 -0
  394. data/assets/images/payments/verisign.svg +1 -0
  395. data/assets/images/payments/visa-dark.svg +1 -0
  396. data/assets/images/payments/visa.svg +1 -0
  397. data/assets/images/payments/webmoney-dark.svg +1 -0
  398. data/assets/images/payments/webmoney.svg +1 -0
  399. data/assets/images/payments/westernunion-dark.svg +1 -0
  400. data/assets/images/payments/westernunion.svg +1 -0
  401. data/assets/images/payments/worldpay-dark.svg +1 -0
  402. data/assets/images/payments/worldpay.svg +1 -0
  403. data/assets/javascripts/tabler.js +6 -0
  404. data/assets/javascripts/tabler.plugins.js +3 -0
  405. data/assets/javascripts/tabler/core.js +108 -0
  406. data/assets/javascripts/tabler/plugins/charts-c3/js/c3.min.js +1 -0
  407. data/assets/javascripts/tabler/plugins/charts-c3/js/d3.v3.min.js +5 -0
  408. data/assets/javascripts/tabler/plugins/charts-c3/plugin.js +10 -0
  409. data/assets/javascripts/tabler/plugins/fullcalendar/js/fullcalendar.min.js +7 -0
  410. data/assets/javascripts/tabler/plugins/fullcalendar/js/moment.min.js +1 -0
  411. data/assets/javascripts/tabler/plugins/fullcalendar/plugin.js +9 -0
  412. data/assets/javascripts/tabler/plugins/input-mask/js/jquery.mask.min.js +19 -0
  413. data/assets/javascripts/tabler/plugins/input-mask/plugin.js +8 -0
  414. data/assets/javascripts/tabler/plugins/maps-google/plugin.js +0 -0
  415. data/assets/javascripts/tabler/plugins/prismjs/js/prism.pack.js +30 -0
  416. data/assets/javascripts/tabler/plugins/prismjs/plugin.js +18 -0
  417. data/assets/javascripts/tabler/tabler.js +102 -0
  418. data/assets/javascripts/tabler/vendors/bootstrap.bundle.min.js +6 -0
  419. data/assets/javascripts/tabler/vendors/chart.bundle.min.js +10 -0
  420. data/assets/javascripts/tabler/vendors/circle-progress.min.js +10 -0
  421. data/assets/javascripts/tabler/vendors/jquery-3.2.1.min.js +4 -0
  422. data/assets/javascripts/tabler/vendors/jquery-3.2.1.slim.min.js +4 -0
  423. data/assets/javascripts/tabler/vendors/jquery-jvectormap-2.0.3.min.js +2 -0
  424. data/assets/javascripts/tabler/vendors/jquery-jvectormap-de-merc.js +1 -0
  425. data/assets/javascripts/tabler/vendors/jquery-jvectormap-world-mill.js +1 -0
  426. data/assets/javascripts/tabler/vendors/jquery.sparkline.min.js +2 -0
  427. data/assets/javascripts/tabler/vendors/jquery.tablesorter.min.js +4 -0
  428. data/assets/javascripts/tabler/vendors/selectize.min.js +3829 -0
  429. data/assets/stylesheets/_bootstrap-grid.scss +32 -0
  430. data/assets/stylesheets/_bootstrap-reboot.scss +12 -0
  431. data/assets/stylesheets/_bootstrap.scss +42 -0
  432. data/assets/stylesheets/_tabler.plugins.scss +5 -0
  433. data/assets/stylesheets/_tabler.scss +65 -0
  434. data/assets/stylesheets/bootstrap/_alert.scss +51 -0
  435. data/assets/stylesheets/bootstrap/_badge.scss +47 -0
  436. data/assets/stylesheets/bootstrap/_breadcrumb.scss +38 -0
  437. data/assets/stylesheets/bootstrap/_button-group.scss +166 -0
  438. data/assets/stylesheets/bootstrap/_buttons.scss +143 -0
  439. data/assets/stylesheets/bootstrap/_card.scss +299 -0
  440. data/assets/stylesheets/bootstrap/_carousel.scss +235 -0
  441. data/assets/stylesheets/bootstrap/_close.scss +34 -0
  442. data/assets/stylesheets/bootstrap/_code.scss +56 -0
  443. data/assets/stylesheets/bootstrap/_custom-forms.scss +420 -0
  444. data/assets/stylesheets/bootstrap/_dropdown.scss +138 -0
  445. data/assets/stylesheets/bootstrap/_forms.scss +335 -0
  446. data/assets/stylesheets/bootstrap/_functions.scss +86 -0
  447. data/assets/stylesheets/bootstrap/_grid.scss +52 -0
  448. data/assets/stylesheets/bootstrap/_images.scss +42 -0
  449. data/assets/stylesheets/bootstrap/_input-group.scss +159 -0
  450. data/assets/stylesheets/bootstrap/_jumbotron.scss +16 -0
  451. data/assets/stylesheets/bootstrap/_list-group.scss +115 -0
  452. data/assets/stylesheets/bootstrap/_media.scss +8 -0
  453. data/assets/stylesheets/bootstrap/_mixins.scss +42 -0
  454. data/assets/stylesheets/bootstrap/_modal.scss +168 -0
  455. data/assets/stylesheets/bootstrap/_nav.scss +118 -0
  456. data/assets/stylesheets/bootstrap/_navbar.scss +311 -0
  457. data/assets/stylesheets/bootstrap/_pagination.scss +78 -0
  458. data/assets/stylesheets/bootstrap/_popover.scss +183 -0
  459. data/assets/stylesheets/bootstrap/_print.scss +124 -0
  460. data/assets/stylesheets/bootstrap/_progress.scss +34 -0
  461. data/assets/stylesheets/bootstrap/_reboot.scss +482 -0
  462. data/assets/stylesheets/bootstrap/_root.scss +19 -0
  463. data/assets/stylesheets/bootstrap/_tables.scss +188 -0
  464. data/assets/stylesheets/bootstrap/_tooltip.scss +115 -0
  465. data/assets/stylesheets/bootstrap/_transitions.scss +36 -0
  466. data/assets/stylesheets/bootstrap/_type.scss +125 -0
  467. data/assets/stylesheets/bootstrap/_utilities.scss +14 -0
  468. data/assets/stylesheets/bootstrap/_variables.scss +919 -0
  469. data/assets/stylesheets/bootstrap/mixins/_alert.scss +13 -0
  470. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +21 -0
  471. data/assets/stylesheets/bootstrap/mixins/_badge.scss +12 -0
  472. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -0
  473. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +5 -0
  474. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +123 -0
  475. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +109 -0
  476. data/assets/stylesheets/bootstrap/mixins/_caret.scss +65 -0
  477. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  478. data/assets/stylesheets/bootstrap/mixins/_float.scss +11 -0
  479. data/assets/stylesheets/bootstrap/mixins/_forms.scss +137 -0
  480. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +45 -0
  481. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +67 -0
  482. data/assets/stylesheets/bootstrap/mixins/_grid.scss +52 -0
  483. data/assets/stylesheets/bootstrap/mixins/_hover.scss +37 -0
  484. data/assets/stylesheets/bootstrap/mixins/_image.scss +36 -0
  485. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +21 -0
  486. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  487. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  488. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +10 -0
  489. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +22 -0
  490. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
  491. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  492. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +33 -0
  493. data/assets/stylesheets/bootstrap/mixins/_size.scss +6 -0
  494. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +30 -0
  495. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +14 -0
  496. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +9 -0
  497. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  498. data/assets/stylesheets/bootstrap/mixins/_transition.scss +9 -0
  499. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +7 -0
  500. data/assets/stylesheets/bootstrap/utilities/_align.scss +8 -0
  501. data/assets/stylesheets/bootstrap/utilities/_background.scss +19 -0
  502. data/assets/stylesheets/bootstrap/utilities/_borders.scss +59 -0
  503. data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
  504. data/assets/stylesheets/bootstrap/utilities/_display.scss +38 -0
  505. data/assets/stylesheets/bootstrap/utilities/_embed.scss +52 -0
  506. data/assets/stylesheets/bootstrap/utilities/_flex.scss +47 -0
  507. data/assets/stylesheets/bootstrap/utilities/_float.scss +9 -0
  508. data/assets/stylesheets/bootstrap/utilities/_position.scss +37 -0
  509. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
  510. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +12 -0
  511. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +51 -0
  512. data/assets/stylesheets/bootstrap/utilities/_text.scss +52 -0
  513. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +11 -0
  514. data/assets/stylesheets/tabler/_alert.scss +25 -0
  515. data/assets/stylesheets/tabler/_aside.scss +36 -0
  516. data/assets/stylesheets/tabler/_avatar.scss +101 -0
  517. data/assets/stylesheets/tabler/_badge.scss +8 -0
  518. data/assets/stylesheets/tabler/_breadcrumb.scss +18 -0
  519. data/assets/stylesheets/tabler/_browser.scss +19 -0
  520. data/assets/stylesheets/tabler/_button.scss +118 -0
  521. data/assets/stylesheets/tabler/_cards.scss +415 -0
  522. data/assets/stylesheets/tabler/_charts.scss +51 -0
  523. data/assets/stylesheets/tabler/_chat.scss +88 -0
  524. data/assets/stylesheets/tabler/_chips.scss +45 -0
  525. data/assets/stylesheets/tabler/_close.scss +10 -0
  526. data/assets/stylesheets/tabler/_colors.scss +8 -0
  527. data/assets/stylesheets/tabler/_core.scss +37 -0
  528. data/assets/stylesheets/tabler/_dropdown.scss +68 -0
  529. data/assets/stylesheets/tabler/_example.scss +47 -0
  530. data/assets/stylesheets/tabler/_flag.scss +17 -0
  531. data/assets/stylesheets/tabler/_footer.scss +15 -0
  532. data/assets/stylesheets/tabler/_form.scss +158 -0
  533. data/assets/stylesheets/tabler/_functions.scss +3 -0
  534. data/assets/stylesheets/tabler/_grid.scss +50 -0
  535. data/assets/stylesheets/tabler/_header.scss +128 -0
  536. data/assets/stylesheets/tabler/_icon.scss +29 -0
  537. data/assets/stylesheets/tabler/_image.scss +12 -0
  538. data/assets/stylesheets/tabler/_infobox.scss +0 -0
  539. data/assets/stylesheets/tabler/_jvectormap.scss +140 -0
  540. data/assets/stylesheets/tabler/_layout.scss +95 -0
  541. data/assets/stylesheets/tabler/_link.scss +25 -0
  542. data/assets/stylesheets/tabler/_list-group.scss +21 -0
  543. data/assets/stylesheets/tabler/_list.scss +34 -0
  544. data/assets/stylesheets/tabler/_maps.scss +52 -0
  545. data/assets/stylesheets/tabler/_media.scss +13 -0
  546. data/assets/stylesheets/tabler/_nav.scss +107 -0
  547. data/assets/stylesheets/tabler/_pagination.scss +29 -0
  548. data/assets/stylesheets/tabler/_payments.scss +19 -0
  549. data/assets/stylesheets/tabler/_popover.scss +12 -0
  550. data/assets/stylesheets/tabler/_product.scss +7 -0
  551. data/assets/stylesheets/tabler/_progress.scss +140 -0
  552. data/assets/stylesheets/tabler/_selectize.scss +372 -0
  553. data/assets/stylesheets/tabler/_social.scss +14 -0
  554. data/assets/stylesheets/tabler/_sparkline.scss +20 -0
  555. data/assets/stylesheets/tabler/_stamp.scss +18 -0
  556. data/assets/stylesheets/tabler/_statuses.scss +25 -0
  557. data/assets/stylesheets/tabler/_syntax.scss +78 -0
  558. data/assets/stylesheets/tabler/_tables.scss +135 -0
  559. data/assets/stylesheets/tabler/_tag.scss +97 -0
  560. data/assets/stylesheets/tabler/_text.scss +22 -0
  561. data/assets/stylesheets/tabler/_timeline.scss +71 -0
  562. data/assets/stylesheets/tabler/_type.scss +120 -0
  563. data/assets/stylesheets/tabler/_utilities.scss +31 -0
  564. data/assets/stylesheets/tabler/_variables.scss +311 -0
  565. data/assets/stylesheets/tabler/fonts/_feather.scss +1074 -0
  566. data/assets/stylesheets/tabler/forms/_custom-colorinput.scss +51 -0
  567. data/assets/stylesheets/tabler/forms/_custom-imagecheck.scss +85 -0
  568. data/assets/stylesheets/tabler/forms/_custom-range.scss +140 -0
  569. data/assets/stylesheets/tabler/forms/_custom-selectgroup.scss +80 -0
  570. data/assets/stylesheets/tabler/forms/_custom-switch.scss +74 -0
  571. data/assets/stylesheets/tabler/plugins/charts-c3/plugin.css +227 -0
  572. data/assets/stylesheets/tabler/plugins/fullcalendar/plugin.css +1125 -0
  573. data/assets/stylesheets/tabler/plugins/iconfonts/plugin.css +12835 -0
  574. data/assets/stylesheets/tabler/plugins/maps-google/plugin.css +0 -0
  575. data/assets/stylesheets/tabler/plugins/prismjs/plugin.css +198 -0
  576. data/lib/tabler/rubygem.rb +74 -0
  577. data/lib/tabler/rubygem/engine.rb +15 -0
  578. data/lib/tabler/rubygem/version.rb +6 -0
  579. data/tabler.gemspec +39 -0
  580. data/tasks/updater.rb +75 -0
  581. data/tasks/updater/fonts.rb +15 -0
  582. data/tasks/updater/images.rb +15 -0
  583. data/tasks/updater/js.rb +54 -0
  584. data/tasks/updater/logger.rb +57 -0
  585. data/tasks/updater/network.rb +103 -0
  586. data/tasks/updater/scss.rb +90 -0
  587. data/test/dummy_rails/README.rdoc +3 -0
  588. data/test/dummy_rails/Rakefile +6 -0
  589. data/test/dummy_rails/app/assets/images/.keep +0 -0
  590. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  591. data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
  592. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  593. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  594. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  595. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  596. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  597. data/test/dummy_rails/config.ru +4 -0
  598. data/test/dummy_rails/config/application.rb +35 -0
  599. data/test/dummy_rails/config/boot.rb +5 -0
  600. data/test/dummy_rails/config/environment.rb +5 -0
  601. data/test/dummy_rails/config/environments/development.rb +23 -0
  602. data/test/dummy_rails/config/environments/production.rb +82 -0
  603. data/test/dummy_rails/config/environments/test.rb +38 -0
  604. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  605. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  606. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  607. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  608. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  609. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  610. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  611. data/test/dummy_rails/config/locales/en.yml +3 -0
  612. data/test/dummy_rails/config/locales/es.yml +3 -0
  613. data/test/dummy_rails/config/routes.rb +3 -0
  614. data/test/dummy_rails/log/.keep +0 -0
  615. data/test/gemfiles/rails_4_2.gemfile +7 -0
  616. data/test/gemfiles/rails_5_0.gemfile +8 -0
  617. data/test/gemfiles/rails_5_1.gemfile +8 -0
  618. data/test/rails_test.rb +24 -0
  619. data/test/support/dummy_rails_integration.rb +29 -0
  620. data/test/support/reporting.rb +27 -0
  621. data/test/test_helper.rb +35 -0
  622. data/test/test_helper_rails.rb +6 -0
  623. metadata +917 -0
@@ -0,0 +1,54 @@
1
+ require 'tsort'
2
+ require 'open-uri'
3
+
4
+ class Updater
5
+ module Js
6
+ def update_javascript_assets
7
+ log_status 'Updating javascripts...'
8
+ save_to = @save_to[:js]
9
+ tabler_js_files = get_paths_by_type('dist/assets/js', /\.js$/)
10
+ read_files('dist/assets/js', tabler_js_files).each do |name, content|
11
+ save_file("#{save_to}/#{name}", remove_source_mapping_url(content))
12
+ end
13
+ log_processed "#{tabler_js_files * ' '}"
14
+
15
+ tabler_plugin_files = get_paths_by_type('dist/assets/plugins', /\.js$/)
16
+ read_files('dist/assets/plugins', tabler_plugin_files).each do |name, content|
17
+ save_file("#{save_to}/plugins/#{name}", remove_source_mapping_url(content))
18
+ end
19
+ log_processed "#{tabler_plugin_files * ' '}"
20
+
21
+ overwrite_define "#{save_to}/core.js"
22
+
23
+ log_status 'Updating js main files'
24
+ File.write "#{save_to}/../tabler.js", <<~eos
25
+ // = require tabler/tabler
26
+ // = require tabler/vendors/jquery-3.2.1.min
27
+ // = require tabler/vendors/bootstrap.bundle.min
28
+ // = require tabler/vendors/circle-progress.min
29
+ // = require tabler/vendors/jquery.sparkline.min
30
+ // = require tabler/core
31
+ eos
32
+
33
+ File.write "#{save_to}/../tabler.plugins.js", <<~eos
34
+ // = require tabler/plugins/charts-c3/js/d3.v3.min
35
+ // = require tabler/plugins/charts-c3/js/c3.min
36
+ // = require tabler/plugins/input-mask/js/jquery.mask.min
37
+ eos
38
+
39
+ File.write "#{save_to}/tabler.js", File.read("#{save_to}/dashboard.js").gsub("dashboard", "tabler").gsub(/require(?:(?!window).)*(?:}|])\);/m, "").gsub(/^\n/, "")
40
+ FileUtils.rm "#{save_to}/dashboard.js"
41
+ FileUtils.rm "#{save_to}/require.min.js"
42
+ end
43
+
44
+ def remove_source_mapping_url(content)
45
+ content.sub(%r{^//# sourceMappingURL=.*\n?\z}, '')
46
+ end
47
+
48
+ def overwrite_define(file)
49
+ content = ['let require = function(modules, fn) { fn(); };']
50
+ content.push File.readlines(file)
51
+ File.open(file, "w") { |f| content.flatten.each { |line| f.puts line } }
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,57 @@
1
+ class Updater
2
+ class Logger
3
+ include Term::ANSIColor
4
+
5
+ def log_status(status)
6
+ puts bold status
7
+ end
8
+
9
+ def log_file_info(s)
10
+ puts " #{magenta s}"
11
+ end
12
+
13
+ def log_transform(*args, from: caller[1][/`.*'/][1..-2].sub(/^block in /, ''))
14
+ puts " #{cyan from}#{cyan ": #{args * ', '}" unless args.empty?}"
15
+ end
16
+
17
+ def log_processing(name)
18
+ puts yellow " #{File.basename(name)}"
19
+ end
20
+
21
+ def log_processed(name)
22
+ puts green " #{name}"
23
+ end
24
+
25
+ def log_http_get_file(url, cached = false)
26
+ s = " #{'CACHED ' if cached}GET #{url}..."
27
+ if cached
28
+ puts dark green s
29
+ else
30
+ puts dark cyan s
31
+ end
32
+ end
33
+
34
+ def log_http_get_files(files, from, cached = false)
35
+ return if files.empty?
36
+ s = " #{'CACHED ' if cached}GET #{files.length} files from #{from} #{files * ' '}..."
37
+ if cached
38
+ puts dark green s
39
+ else
40
+ puts dark cyan s
41
+ end
42
+ end
43
+
44
+ def puts(*args)
45
+ STDERR.puts *args unless @silence
46
+ end
47
+
48
+ alias log puts
49
+
50
+ def silence_log
51
+ @silence = true
52
+ yield
53
+ ensure
54
+ @silence = false
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,103 @@
1
+ require 'shellwords'
2
+ class Updater
3
+ module Network
4
+ protected
5
+
6
+ WRITE_FILES_MUTEX = Mutex.new
7
+
8
+ def get_paths_by_type(dir, file_re, recursive = true)
9
+ get_file_paths(dir, recursive).select { |path| path =~ file_re }
10
+ end
11
+
12
+ def get_file_paths(dir, recursive = true)
13
+ get_tree(get_tree_sha(dir), recursive)['tree'].select { |f| f['type'] == 'blob' }.map { |f| f['path'] }
14
+ end
15
+
16
+ def file_url(path)
17
+ "https://raw.githubusercontent.com/#@repo/#@branch_sha/#{path}"
18
+ end
19
+
20
+ def read_files(path, files)
21
+ path_url = file_url path
22
+ contents = read_cached_files(path, files)
23
+ log_http_get_files contents.keys, path_url, true if contents.keys
24
+ files -= contents.keys
25
+ log_http_get_files files, path_url, false
26
+ files.map do |name|
27
+ Thread.start {
28
+ contents[name] = open("#{path_url}/#{name}").read
29
+ WRITE_FILES_MUTEX.synchronize { write_cached_files path, name => contents[name] }
30
+ }
31
+ end.each(&:join)
32
+ contents
33
+ end
34
+
35
+ def read_cached_files(path, files)
36
+ full_path = "#@cache_path/#@branch_sha/#{path}"
37
+ contents = {}
38
+ if File.directory?(full_path)
39
+ files.each do |name|
40
+ path = "#{full_path}/#{name}"
41
+ contents[name] = File.read(path, mode: 'rb') if File.exists?(path)
42
+ end
43
+ end
44
+ contents
45
+ end
46
+
47
+ def write_cached_files(path, files)
48
+ full_path = "./#@cache_path/#@branch_sha/#{path}"
49
+ files.each do |name, content|
50
+ FileUtils.mkdir_p File.dirname(File.join(full_path, name))
51
+ File.open("#{full_path}/#{name}", 'wb') { |f| f.write content }
52
+ end
53
+ end
54
+
55
+
56
+ def get_file(url)
57
+ uri = URI(url)
58
+ cache_path = "./#@cache_path#{uri.path}#{uri.query.tr('?&=', '-') if uri.query}"
59
+ FileUtils.mkdir_p File.dirname(cache_path)
60
+ if File.exists?(cache_path)
61
+ log_http_get_file url, true
62
+ File.read(cache_path, mode: 'rb')
63
+ else
64
+ log_http_get_file url, false
65
+ content = open(url).read
66
+ File.open(cache_path, 'wb') { |f| f.write content }
67
+ content
68
+ end
69
+ end
70
+
71
+ # get sha of the branch (= the latest commit)
72
+ def get_branch_sha
73
+ @branch_sha ||= begin
74
+ if @branch =~ /\A[0-9a-f]{40,}\z/
75
+ @branch
76
+ else
77
+ cmd = "git ls-remote #{Shellwords.escape "https://github.com/#@repo"} #@branch"
78
+ log cmd
79
+ result = %x[#{cmd}]
80
+ raise 'Could not get branch sha!' unless $?.success? && !result.empty?
81
+ result.split(/\s+/).first
82
+ end
83
+ end
84
+ end
85
+
86
+ # Get the sha of a dir
87
+ def get_tree_sha(dir, tree = get_trees)
88
+ tree['tree'].find { |t| t['path'] == dir }['sha']
89
+ end
90
+
91
+ def get_trees
92
+ @trees ||= get_tree(@branch_sha)
93
+ end
94
+
95
+ def get_tree(sha, recursive = true)
96
+ get_json("https://api.github.com/repos/#@repo/git/trees/#{sha}#{'?recursive=1' if recursive}")
97
+ end
98
+
99
+ def get_json(url)
100
+ JSON.parse get_file(url)
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,90 @@
1
+ class Updater
2
+ module Scss
3
+ def update_scss_assets
4
+ log_status 'Updating scss...'
5
+ save_to = @save_to[:scss]
6
+ contents = {}
7
+ tabler_scss_files = get_paths_by_type('src/assets/scss', /\.scss$/)
8
+ read_files('src/assets/scss', tabler_scss_files).each do |name, file|
9
+ contents[name] = file
10
+ save_file("#{save_to}/#{name}", file)
11
+ end
12
+ log_processed "#{tabler_scss_files * ' '}"
13
+
14
+ tabler_plugin_files = get_paths_by_type('dist/assets/plugins', /\.css$/)
15
+ read_files('dist/assets/plugins', tabler_plugin_files).each do |name, content|
16
+ save_file("#{save_to}/dashboard/plugins/#{name}", remove_source_mapping_url(content))
17
+ end
18
+ log_processed "#{tabler_plugin_files * ' '}"
19
+
20
+ log_status 'Updating scss main files'
21
+ FileUtils.rm "#{save_to}/bundle.scss"
22
+ FileUtils.mv "#{save_to}/dashboard", "#{save_to}/tabler"
23
+
24
+ path_pairs = [
25
+ [
26
+ "#{save_to}/_variables.scss",
27
+ "#{save_to}/tabler/_variables.scss"
28
+ ],
29
+ [
30
+ "#{save_to}/tabler/bootstrap",
31
+ "#{save_to}/bootstrap",
32
+ ],
33
+ [
34
+ "#{save_to}/bootstrap/bootstrap-grid.scss",
35
+ "#{save_to}/_bootstrap-grid.scss"
36
+ ],
37
+ [
38
+ "#{save_to}/bootstrap/bootstrap-reboot.scss",
39
+ "#{save_to}/_bootstrap-reboot.scss"
40
+ ],
41
+ [
42
+ "#{save_to}/bootstrap/bootstrap.scss",
43
+ "#{save_to}/_bootstrap.scss"
44
+ ],
45
+ [
46
+ "#{save_to}/tabler/dashboard.scss",
47
+ "#{save_to}/_tabler.scss"
48
+ ]
49
+ ]
50
+
51
+ path_pairs.each do |pair|
52
+ FileUtils.mv pair[0], pair[1]
53
+ end
54
+
55
+ %w(bootstrap bootstrap-grid bootstrap-reboot).each do |name|
56
+ file = "#{save_to}/_#{name}.scss"
57
+ File.write file, File.read(file).gsub(/ "/, ' "bootstrap/')
58
+ end
59
+
60
+ font_file = "#{save_to}/tabler/fonts/_feather.scss"
61
+ File.write font_file, File.read(font_file).gsub("url('../fonts/", "font-url('")
62
+
63
+ %w(_browser _flag _payments).each do |name|
64
+ file = "#{save_to}/tabler/#{name}.scss"
65
+ File.write file, File.read(file).gsub("url('../images/", "image-url('")
66
+ end
67
+
68
+ adjust_manifest "#{save_to}/_tabler.scss"
69
+
70
+ plugins_file = File.new("#{save_to}/_tabler.plugins.scss", "w")
71
+ write_plugins_file(plugins_file, tabler_plugin_files)
72
+ end
73
+
74
+ def adjust_manifest(file)
75
+ content = ['@import "tabler/variables";', '@import "bootstrap";']
76
+ content.push File.readlines(file).reject { |line|
77
+ line =~ /^\/\/.*$/
78
+ }.map { |line|
79
+ line.gsub(/ '/, " 'tabler/").gsub("'", '"')
80
+ }
81
+ File.open(file, "w") { |f| content.flatten.each { |line| f.puts line } }
82
+ end
83
+
84
+ def write_plugins_file(plugins_file, tabler_plugin_files)
85
+ tabler_plugin_files.each do |line|
86
+ plugins_file.puts "@import \"tabler/plugins/#{line}\";"
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,3 @@
1
+ == README
2
+
3
+ This is a minimal Rails app for testing
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Dummy::Application.load_tasks
@@ -0,0 +1,7 @@
1
+ //= require jquery
2
+ //= require popper.js
3
+ //= require bootstrap-sprockets
4
+
5
+ jQuery(function ($) {
6
+ $('[data-toggle="tooltip"]').tooltip()
7
+ });
@@ -0,0 +1,4 @@
1
+ @import 'bootstrap'
2
+
3
+ .test-mixin
4
+ +make-container
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,4 @@
1
+ class PagesController < ApplicationController
2
+ def root
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>bootstrap Dummy App</title>
5
+ <%= stylesheet_link_tag 'application', media: "all", 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+
14
+ </html>
@@ -0,0 +1,58 @@
1
+ .navbar.navbar-dark.bg-inverse: .container-fluid
2
+ button.navbar-toggler.hidden-sm-up type="button" data-toggle="collapse" data-target="#c1" &#9776
3
+ .collapse.navbar-toggleable-xs#c1
4
+ a.navbar-brand href="#" Bootstrap Test Rails App
5
+ ul.nav.navbar-nav
6
+ li.nav-item.active: a.nav-link href="#"
7
+ ' Home
8
+ span.sr-only (current)
9
+ li.nav-item: a.nav-link href="#" Link
10
+ li.nav-item.dropdown
11
+ a.nav-link.dropdown-toggle href="#" data-toggle="dropdown" role="button" aria-expanded="false"
12
+ ' Dropdown
13
+ span.caret
14
+ .dropdown-menu role="menu"
15
+ a.dropdown-item href="#" Action
16
+ a.dropdown-item href="#" Another action
17
+ a.dropdown-item href="#" Something else here
18
+ a.dropdown-divider
19
+ a.dropdown-item href="#" Separated ank
20
+ a.dropdown-divider
21
+ a.dropdown-item href="#" One more separated link
22
+
23
+ .container
24
+ .card
25
+ .card-header: h3 Dummy App
26
+ .card-block: .row
27
+ .col-sm-3
28
+ h2 3 columns
29
+ .list-group
30
+ a.list-group-item href='#one' One
31
+ a.list-group-item href='#two' Two
32
+ a.list-group-item href='#three' Three
33
+ .col-sm-3
34
+ h2 3 columns
35
+ .btn-group
36
+ button.btn.btn-primary type='button' Button
37
+ button.btn.btn-primary type='button' Button
38
+ table.table
39
+ caption Table
40
+ tr
41
+ td.table-danger Danger!
42
+ td.table-success Success!
43
+ .col-sm-6
44
+ h2 6 columns
45
+ .row
46
+ .col-xs-4.col-xs-push-4: .card: .card-block
47
+ .card-text data-toggle="tooltip" title="hi"
48
+ h6 This is col-xs-4 col-xs-push-4.<br><small>Hover for tooltip.</small>
49
+
50
+ .card: .card-block: form.form-inline
51
+ .form-group
52
+ label.sr-only for="exampleInputEmail2" Email address
53
+ input.form-control#exampleInputEmail2 type="email" placeholder="Enter email"
54
+ .checkbox
55
+ label
56
+ input type="checkbox"
57
+ | Remember me
58
+ button.btn.btn-default type="submit" Sign in
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,35 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails'
4
+
5
+ %w(
6
+ action_controller
7
+ action_view
8
+ sprockets
9
+ ).each do |framework|
10
+ require "#{framework}/railtie"
11
+ end
12
+
13
+ require 'autoprefixer-rails'
14
+ require 'slim-rails'
15
+ require 'uglifier'
16
+
17
+ require 'bootstrap'
18
+ require 'jquery-rails'
19
+
20
+ module Dummy
21
+ class Application < Rails::Application
22
+ config.assets.enabled = true if config.assets.respond_to?(:enabled)
23
+ if Rails::VERSION::MAJOR > 4
24
+ # Rails 4 precompiles application.css|js by default, but future version of Rails do not.
25
+ config.assets.precompile += %w( application.css application.js )
26
+ end
27
+ config.to_prepare do
28
+ if ENV['VERBOSE']
29
+ STDERR.puts "Loaded Rails #{Rails::VERSION::STRING}, Sprockets #{Sprockets::VERSION}",
30
+ "Asset paths: #{Rails.application.config.assets.paths}"
31
+ end
32
+ end
33
+ end
34
+ end
35
+