anecdote 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/anecdote/_wysicontent.css.scss +45 -20
  3. data/lib/anecdote/version.rb +1 -1
  4. data/lib/anecdote.rb +118 -75
  5. data/test/dummy/app/views/pages/article.markdown +14 -1
  6. data/test/dummy/log/development.log +3160 -0
  7. data/test/dummy/tmp/cache/sprockets/v3.0/-7YxV0VX-tVnfBWYb_EwwMFfpbxPrMVnNZVqiDN8KHs.cache +0 -0
  8. data/test/dummy/tmp/cache/sprockets/v3.0/-XVHH89sBYUEHzJfNI6GXZjJ20uxstI_4ave0vplLck.cache +1 -0
  9. data/test/dummy/tmp/cache/sprockets/v3.0/-srupUo-kPKeNlWL_TNv7RfXqIng7Fi74htTyNOAMTk.cache +0 -0
  10. data/test/dummy/tmp/cache/sprockets/v3.0/0G2yne1FTRx02mUY-qnY04wZGGhbeOcvgSgwpRvDzXo.cache +1 -0
  11. data/test/dummy/tmp/cache/sprockets/v3.0/0SKcJIDMWKMqTkA5SmleKxfRMiwvttd-30HvvMgjuFk.cache +0 -0
  12. data/test/dummy/tmp/cache/sprockets/v3.0/2ZvP9WdAV_1Z77QSwSTLFNg9q9xYb3sQx96v0vfo1G0.cache +0 -0
  13. data/test/dummy/tmp/cache/sprockets/v3.0/2ch5bDLD51N8iG0vXbXhEvthfYRPqP8Kih3obSptGmA.cache +0 -0
  14. data/test/dummy/tmp/cache/sprockets/v3.0/2iQ5mzxBnmahw0M1BDgFwGj155T_EkzOMn_-oFMlLac.cache +0 -0
  15. data/test/dummy/tmp/cache/sprockets/v3.0/2qdXdIVjMvWBW1D1uBSdegK_9e4WEiqaHssxak-TFvg.cache +1 -0
  16. data/test/dummy/tmp/cache/sprockets/v3.0/4R-J8mGBdsrbedZOsSpYdYdidIKFEqD4tZyntHNUscE.cache +0 -0
  17. data/test/dummy/tmp/cache/sprockets/v3.0/5BoV9LM1GR102oTPLJMyGRaWz2mx1BP7bCSYY-Vq7gs.cache +1 -0
  18. data/test/dummy/tmp/cache/sprockets/v3.0/5baipfOBMjh64EH8EUIvs3jt-zT8vB2e0t6ChOzekMM.cache +1 -0
  19. data/test/dummy/tmp/cache/sprockets/v3.0/5i4SR6ATOuueIbB0qE91NlNRnsrXHAGns3-DuzkIGTM.cache +0 -0
  20. data/test/dummy/tmp/cache/sprockets/v3.0/5rAjpPmeemGK1PREze4wqfh00k2uKbE9p6cBIDoBYPg.cache +0 -0
  21. data/test/dummy/tmp/cache/sprockets/v3.0/6EPMwUtxbiR4wJ4_Jyn9u8rjo7WN-FCoPKEAhVs3IOA.cache +1 -0
  22. data/test/dummy/tmp/cache/sprockets/v3.0/6gb_kOHWrAN94p7d2N6Hb1r_ln0c1bSEHYnAEMk_j2Y.cache +0 -0
  23. data/test/dummy/tmp/cache/sprockets/v3.0/7-Dylbp5OxrnZlbjYPpepUKGGaN9XZwjz5jd0FQBvIg.cache +0 -0
  24. data/test/dummy/tmp/cache/sprockets/v3.0/7aPuYb0ise03QMAH6vdzpmif8aGHEX0ufXq8lbMoV8E.cache +1 -0
  25. data/test/dummy/tmp/cache/sprockets/v3.0/8C-57NO98VlEAx0KVBvJJzWRftaX6Y1U_0KVfAXyOUg.cache +1 -0
  26. data/test/dummy/tmp/cache/sprockets/v3.0/9vQEmWPwkeOdhJApCt7uiNLh_5J1TUW9wQ9g6pfZP_4.cache +0 -0
  27. data/test/dummy/tmp/cache/sprockets/v3.0/A39HhS2VNsFtTynJX6UXJyq7aiyw4NkVhz6INN206eQ.cache +0 -0
  28. data/test/dummy/tmp/cache/sprockets/v3.0/BLJvIkJXu1X1V1Re2-6ocj6wVCjSPHnQ9pw8nJfYJLc.cache +1 -0
  29. data/test/dummy/tmp/cache/sprockets/v3.0/BWNI2Fpa2dbzFuVHYtiRfUTxOf3lkOElflyq4NbpF_E.cache +1 -0
  30. data/test/dummy/tmp/cache/sprockets/v3.0/BcodoUnYNBIZ83chkv1DiqSKnXATTyCuLeU8qo_Ar1s.cache +1 -0
  31. data/test/dummy/tmp/cache/sprockets/v3.0/Bxk3O_327eIY09vuCVBddC0VJq4UDByZ72Ly6LTEKA0.cache +1 -0
  32. data/test/dummy/tmp/cache/sprockets/v3.0/CCaIswHgZjwaawOWiNKUDBFGbXT4x42XKdbcdQN2t_E.cache +0 -0
  33. data/test/dummy/tmp/cache/sprockets/v3.0/CP0yk5TqjEwnuXcdAG05fW6ax5gUqLyQEF5K8_Mb4K0.cache +0 -0
  34. data/test/dummy/tmp/cache/sprockets/v3.0/CYSjVZn8B3niqPiqpzjPmHCQ8BinPXSALwq8uXLrgDs.cache +0 -0
  35. data/test/dummy/tmp/cache/sprockets/v3.0/Cer2NIHM3bNM0u1a6zExnH0mMxmgAdJBV52TFWz73UQ.cache +1 -0
  36. data/test/dummy/tmp/cache/sprockets/v3.0/D5MOuot1o9Fw18oOALw4tkp-8_Vf2t3-bW-QsINJG4s.cache +1 -0
  37. data/test/dummy/tmp/cache/sprockets/v3.0/D8Pxos9TsuUaHqgL9nvGRmx6r40yM4t_MRXgQyqwXbY.cache +1 -0
  38. data/test/dummy/tmp/cache/sprockets/v3.0/DD8tONa3ms5tuPUqsyp6oMEDZCW_LXHSvTyQgoYxGjQ.cache +1 -0
  39. data/test/dummy/tmp/cache/sprockets/v3.0/FHvAhu_lqdchvb2LYJnwr0R3YPpSOoqx2kwgfnhjGy4.cache +1 -0
  40. data/test/dummy/tmp/cache/sprockets/v3.0/Falentfk0eqzm258YEmtsZ4LYPyh6ZacirrIgnW-5HA.cache +1 -0
  41. data/test/dummy/tmp/cache/sprockets/v3.0/FfCgbaZ6YsP7ytLeRdJZyQCHpXFr8acV3aP94Q8VpAE.cache +1 -0
  42. data/test/dummy/tmp/cache/sprockets/v3.0/Fl1O8Ze0sg9z4JH-rDBCidUjQBmjxfhRsjp0YS5K8_A.cache +0 -0
  43. data/test/dummy/tmp/cache/sprockets/v3.0/Gouiol1f0UV9diZDAj9q9O1fFZOmuVIVvWBmUhj4Nvk.cache +1 -0
  44. data/test/dummy/tmp/cache/sprockets/v3.0/HAsVQSXLrMZrolLD8M47T-P7OIHkn9cgYMQlY7-dSrE.cache +1 -0
  45. data/test/dummy/tmp/cache/sprockets/v3.0/HfzWW2iE6Zj0QT1Pn2IueN-fZBlMQZx0CXXueg3BM6c.cache +0 -0
  46. data/test/dummy/tmp/cache/sprockets/v3.0/HrLFkePl1ptemaRZjoIGR1g6q7fm0wJlvt-6AwWc3Io.cache +0 -0
  47. data/test/dummy/tmp/cache/sprockets/v3.0/J0REBmqCTZbK6RbGUPJymbbmGQbUFizKPqgG3Wg9LY0.cache +0 -0
  48. data/test/dummy/tmp/cache/sprockets/v3.0/Jhyoe66NzRL9I56-UAxkzpJWp9om5PGhUcAaXTmzAxc.cache +0 -0
  49. data/test/dummy/tmp/cache/sprockets/v3.0/K0zWOWgGvZVZ_Xl4BsdM9JnmXp5Hh6a9BZAXYhYuL1A.cache +1 -0
  50. data/test/dummy/tmp/cache/sprockets/v3.0/Ka55h09VW_od0MWGchKz-pHvpNKmuqGkgXHhghrSJjY.cache +1 -0
  51. data/test/dummy/tmp/cache/sprockets/v3.0/Kda9TM42YotYsomZ9v6aslOoAwyI3UYw8n5gHpIvs9M.cache +0 -0
  52. data/test/dummy/tmp/cache/sprockets/v3.0/MLiillFnnivM5quDTs-L7JZQ54KlHwaCOY0LdOqiro8.cache +0 -0
  53. data/test/dummy/tmp/cache/sprockets/v3.0/MvlbqF4OzDNsGTqqNyedSQskyQQsiAjP8HD3UL7h9Jk.cache +0 -0
  54. data/test/dummy/tmp/cache/sprockets/v3.0/NKif-idY-7aBa0cNFpuSSeSn9FtJxLbJWcJgIr0RnOE.cache +0 -0
  55. data/test/dummy/tmp/cache/sprockets/v3.0/Na4OLBxW5Qxih4bFLb77uqTgKeugoUCrNbxquVNInjU.cache +1 -0
  56. data/test/dummy/tmp/cache/sprockets/v3.0/NfLXVjsYAkLnWM_X1Bj40kFwI12F26lezKRjygz0eWA.cache +0 -0
  57. data/test/dummy/tmp/cache/sprockets/v3.0/NmC87a1gMOTIOdDMPgqjpCkrFwiAFsCs1qu_FjGYtEo.cache +0 -0
  58. data/test/dummy/tmp/cache/sprockets/v3.0/NvLEPHliIG_UZIvlZpsDwCf6qSm0nnWkTJbLlmyh5qw.cache +1 -0
  59. data/test/dummy/tmp/cache/sprockets/v3.0/P-abpWy-bC8eEBnJTIXMUDJeEyDKVq7i73bnxCUxMk0.cache +0 -0
  60. data/test/dummy/tmp/cache/sprockets/v3.0/PEEmgkiCN5LcV78SC9215uWgIO7Ty47sra9FYhWJM7I.cache +0 -0
  61. data/test/dummy/tmp/cache/sprockets/v3.0/Pfqg-xb9-cpcfOlYtaJKM-56JNLYuNL55YNDck1ILgY.cache +0 -0
  62. data/test/dummy/tmp/cache/sprockets/v3.0/PmJsMmXdJQWb4Kq4cmMCtH-SsVeGFe05kCGhKPpVLHo.cache +1 -0
  63. data/test/dummy/tmp/cache/sprockets/v3.0/PtWK9Q6jVMT3nidxWKiZ45_XMGrBdi9UqfK9Nn6IEX0.cache +1 -0
  64. data/test/dummy/tmp/cache/sprockets/v3.0/Q4TXKPY2e5r2IAUvHHDRaHCofAYbHZWSMs9_oWMh27c.cache +0 -0
  65. data/test/dummy/tmp/cache/sprockets/v3.0/QiP_OW553J73JXFpwMPYjiB1Nu47a08WL8d3esi_k24.cache +0 -0
  66. data/test/dummy/tmp/cache/sprockets/v3.0/QxfUohcwpyDkjUh4UO_oZtJQq_iyCdYUOGrXo0zBGE4.cache +0 -0
  67. data/test/dummy/tmp/cache/sprockets/v3.0/R-UfBAgUAH-p_fg8YFSg1Kz2PnNfAEqh6--WXpSUyVc.cache +0 -0
  68. data/test/dummy/tmp/cache/sprockets/v3.0/RinVgx3nJvYXE3YSqExgwU5bjwOpEHDe_C1ynKB-tu8.cache +1 -0
  69. data/test/dummy/tmp/cache/sprockets/v3.0/SN_eYX4kIZmeaOC19TsoLVWRzyWpmRU1XlKLb5Fx0lw.cache +1 -0
  70. data/test/dummy/tmp/cache/sprockets/v3.0/UM5feTkeC_VKEdNno7eECmRHx1b2g3JdrtYbYfVacHI.cache +1 -0
  71. data/test/dummy/tmp/cache/sprockets/v3.0/UYfzNw_LDATZ2B2h6OStZcaEPVV-1wZTePvFg_0eQIc.cache +1 -0
  72. data/test/dummy/tmp/cache/sprockets/v3.0/Uf23UO4kN7ld6oJWao6ohRBVzaqlYG4340Bgx6o2yhQ.cache +1 -0
  73. data/test/dummy/tmp/cache/sprockets/v3.0/YaoKq6ZkIgr53VkS59bQm4Ecu1Gh78UhsDiYW41rFSo.cache +0 -0
  74. data/test/dummy/tmp/cache/sprockets/v3.0/Z_l48AgfEmXV1_uE4BO1YXlqVh_Wxv9SuTyeCLDZLPs.cache +0 -0
  75. data/test/dummy/tmp/cache/sprockets/v3.0/ZdS2WpK7MCSLY2D9hiVAiRv7dskuR4rtA1je3d1PCnk.cache +1 -0
  76. data/test/dummy/tmp/cache/sprockets/v3.0/_DqsXqUgCJND73_4jA7-aw9RezYpR5-81iwC66cME68.cache +1 -0
  77. data/test/dummy/tmp/cache/sprockets/v3.0/_FzX6aWaYFZmYEnQ7Er1SwpopYf_XXQZD0537vBALAM.cache +1 -0
  78. data/test/dummy/tmp/cache/sprockets/v3.0/_Jhk2v-U22mZvn44rAgua9ZVED27jQ_qDitaPpVZhTg.cache +0 -0
  79. data/test/dummy/tmp/cache/sprockets/v3.0/_KFSSEqolfdbu9TqDcZwrl0vNDRgzS5k1oeW9_LJiW4.cache +0 -0
  80. data/test/dummy/tmp/cache/sprockets/v3.0/_bVcwbX51AzwLZQFvFDQ0Mbw7ds7ruuAiAml0hFh_RM.cache +1 -0
  81. data/test/dummy/tmp/cache/sprockets/v3.0/_tlFoT2Vvw-9n1m-sM50f33A5u02ceO7ep16VSlKnn8.cache +0 -0
  82. data/test/dummy/tmp/cache/sprockets/v3.0/_vbQFFi3mGr-ciSj_C1bdSZJyTyvyq21uxtlrxopgZA.cache +1 -0
  83. data/test/dummy/tmp/cache/sprockets/v3.0/_yipmFyBtbKi0Z8IC3EqwbMHI_aPevu6YIYx045Uyoc.cache +1 -0
  84. data/test/dummy/tmp/cache/sprockets/v3.0/bGwawGMCMQ4F1cXIZIPIPDdgACVMit6qpaS8P1aoiig.cache +1 -0
  85. data/test/dummy/tmp/cache/sprockets/v3.0/bIFqXwLuLWCMy2in4v08HJdX85C5mHV5KjbPLKNcnAk.cache +0 -0
  86. data/test/dummy/tmp/cache/sprockets/v3.0/c-SNPe1qPup8zFDR790PHlUb0s889WTedd08ni8Q_Z4.cache +1 -0
  87. data/test/dummy/tmp/cache/sprockets/v3.0/ca89jLUo8cIYvJH5DM8vc1JyTaTOp9GDXbzNGIXtDgY.cache +0 -0
  88. data/test/dummy/tmp/cache/sprockets/v3.0/e11fsAgcLv9TAffDzDpCJ-dbL9pP_qe2wElF83xsgGo.cache +0 -0
  89. data/test/dummy/tmp/cache/sprockets/v3.0/ePCR8AEQjVi7INu26su9RCwmJNZc1ilKhI05DtyNF-E.cache +1 -0
  90. data/test/dummy/tmp/cache/sprockets/v3.0/eU5PsM1jE-veWAdYoe2qyknnaKbT99FDJYaqGWlSJCQ.cache +0 -0
  91. data/test/dummy/tmp/cache/sprockets/v3.0/ex51ePgnwF6bU-1L3m0vt7YHPxlzDfJIFYxXa10EXp0.cache +1 -0
  92. data/test/dummy/tmp/cache/sprockets/v3.0/f70yTzGGZPF3PLRLKsen_mVAxeT7ern2PJtHu8xU4nY.cache +0 -0
  93. data/test/dummy/tmp/cache/sprockets/v3.0/fQ8a6h8rJc87yEtnjdEZqYJZmh0jbWqZjXfanyv1sac.cache +1 -0
  94. data/test/dummy/tmp/cache/sprockets/v3.0/foe_oWnNYwYZlCPx81JXO2a6j9vC6M-Mpulq-PolOlk.cache +0 -0
  95. data/test/dummy/tmp/cache/sprockets/v3.0/gcDrpEgdy0qR3R5wshk5-ygstmdR2AWOiknt11K8tYE.cache +1 -0
  96. data/test/dummy/tmp/cache/sprockets/v3.0/hBexmTF6LUu7gWsPqs53t-JmY9Zle6m2sZoYdjUn96U.cache +0 -0
  97. data/test/dummy/tmp/cache/sprockets/v3.0/hyMCpTLptEcq-FlB488RT8wUU3gDLUEFG7tXjfPzn6Y.cache +1 -0
  98. data/test/dummy/tmp/cache/sprockets/v3.0/i1Cx6VSsoEw975D139IoVgaXpFEGlDrJPKvj4MNPF8U.cache +1 -0
  99. data/test/dummy/tmp/cache/sprockets/v3.0/iaP9dKxJKiQ7jeAC9pHUAfdAXyeRm2xTnM5BYHCmQPI.cache +0 -0
  100. data/test/dummy/tmp/cache/sprockets/v3.0/jQxNbv1OfHtVu8DBpX3t1oCYk2OSk7CAaqG10Qj2TMg.cache +0 -0
  101. data/test/dummy/tmp/cache/sprockets/v3.0/jYXf2qjCRRCr6F1NiuesYpSrMa4ZzHF_LM7AETDvTX8.cache +0 -0
  102. data/test/dummy/tmp/cache/sprockets/v3.0/jf7ckjzOzxNjMcPk-WDs59P1bcKjI4hFxCOKHYrv9LA.cache +1 -0
  103. data/test/dummy/tmp/cache/sprockets/v3.0/joRrxQh6j_9J8072dS18z-ykweqsNL0GYXJC0__GT2o.cache +0 -0
  104. data/test/dummy/tmp/cache/sprockets/v3.0/kER6BSac6ky26tC-QTITTpVVfaJflqKr47UeQQzYZfA.cache +1 -0
  105. data/test/dummy/tmp/cache/sprockets/v3.0/kIOtL_duSs2ZJl9wBMXRLrjFE4SGtf_9nJgLIT-RvbE.cache +1 -0
  106. data/test/dummy/tmp/cache/sprockets/v3.0/kjvSruViY5Uf741aYX44jpBfybvLM8_MpyRHic5YnVo.cache +0 -0
  107. data/test/dummy/tmp/cache/sprockets/v3.0/l2P6mHCk3Us2H9GoIWg5EHkyG1CChZdfbOXpXnqGWdU.cache +1 -0
  108. data/test/dummy/tmp/cache/sprockets/v3.0/lAM-IJBTt__X56ikUryMQ9TQ2VCRmEF-l1GH_0T5Uvs.cache +1 -0
  109. data/test/dummy/tmp/cache/sprockets/v3.0/lCR5GtEs6xGy977UBLu5nNiPAOrZ6a3v1MyVHN31eYI.cache +2 -0
  110. data/test/dummy/tmp/cache/sprockets/v3.0/lqsnbZ6z5l756zhl33NasOPoBnwYFzSvck_pmNg_PUk.cache +1 -0
  111. data/test/dummy/tmp/cache/sprockets/v3.0/n1OauaiHOqGRgJJBhliDp_7jIl5Mqaj-vAK_8tHUPNs.cache +0 -0
  112. data/test/dummy/tmp/cache/sprockets/v3.0/oIY6nWR4W6ek0ARjINcKHoE7E_au27wG12GY8gNxl9Q.cache +1 -0
  113. data/test/dummy/tmp/cache/sprockets/v3.0/oraElg6gpaM9gdIJaOEwJPJ21t3s8vNfn10zfTFtRDg.cache +0 -0
  114. data/test/dummy/tmp/cache/sprockets/v3.0/osxsYiUDt0yJNT8LdryR2zwypaohIsvTtbBt5jZbFvw.cache +0 -0
  115. data/test/dummy/tmp/cache/sprockets/v3.0/prxy-RjTwr4nyByrPWLGyFcrrjO5c1ji-yCOBest4Jw.cache +0 -0
  116. data/test/dummy/tmp/cache/sprockets/v3.0/pz4qxU-hIOzjc4CHeQEe39doDv6MgLisDE8snw_u5D4.cache +1 -0
  117. data/test/dummy/tmp/cache/sprockets/v3.0/qb3Eoimtmxwuqm7imri6GTVJ7FiAvVNl6LKt9YkESD4.cache +1 -0
  118. data/test/dummy/tmp/cache/sprockets/v3.0/r0HhIzBiccB21E7Goij5YsYfxnRHfFUu7fvWmR_U06E.cache +1 -0
  119. data/test/dummy/tmp/cache/sprockets/v3.0/r4Q0LV9I-niXPyKdBx7wSF0GKSKY1rgZpSjw46jxd6w.cache +0 -0
  120. data/test/dummy/tmp/cache/sprockets/v3.0/rN5s20vDFy3gxYSWSOcqFtCx7xaWY8epPy1oUR74xgE.cache +0 -0
  121. data/test/dummy/tmp/cache/sprockets/v3.0/rdEPk1LAKvyLnQgBZKuSrx7Ex06lhE8kouAFDDh8BZg.cache +1 -0
  122. data/test/dummy/tmp/cache/sprockets/v3.0/rhkA9CFzhfPv5I-asWfazUmyT40OwD4-qFV32_-ZmJU.cache +0 -0
  123. data/test/dummy/tmp/cache/sprockets/v3.0/s021K2FGgFOxkWBbIGzVI2opCR7ir1Yh7SKDgzhTn8M.cache +0 -0
  124. data/test/dummy/tmp/cache/sprockets/v3.0/s2jrKPoqs-JfLbS5dDw1vH9eo7SNFl1Mkpuz3DSjYSI.cache +1 -0
  125. data/test/dummy/tmp/cache/sprockets/v3.0/s3DnpwdDnqWYlRdQCj0KnQJeP39uPodd9fNJ4JJNIHA.cache +2 -0
  126. data/test/dummy/tmp/cache/sprockets/v3.0/sYtvCBXwHcftWGREjo-udOpfLQ7-Z9mjM3au8WDJzZk.cache +0 -0
  127. data/test/dummy/tmp/cache/sprockets/v3.0/sm2DOMkVimMnT_gLkwQSwjWQ4pPC5q72k1ZoEgFQWiw.cache +1 -0
  128. data/test/dummy/tmp/cache/sprockets/v3.0/ssh7Ljp_buqombU3gnU-XGkHGjmpjOCt-dQ6A_7JqpY.cache +0 -0
  129. data/test/dummy/tmp/cache/sprockets/v3.0/u6gWH2UUXndPHB_M0axKDDG59LNGfDhQ-zASIzVfC5o.cache +0 -0
  130. data/test/dummy/tmp/cache/sprockets/v3.0/uYn7vw0hmBE2PcX7x62KzE_KNQDyFsGR39RA3b8gFCs.cache +0 -0
  131. data/test/dummy/tmp/cache/sprockets/v3.0/uvvFhXYBpIItmSnDR6eIKRWSLtAcA1EMk2wI6161z3E.cache +1 -0
  132. data/test/dummy/tmp/cache/sprockets/v3.0/vewVsPSj7d5lBw0k0ra53NmuaN_NiAsZqJu6WLlX8EE.cache +1 -0
  133. data/test/dummy/tmp/cache/sprockets/v3.0/xNJg_wqjgfqfokxA7NkSnWLPpoat4rlIksKRT0xL518.cache +1 -0
  134. data/test/dummy/tmp/cache/sprockets/v3.0/yMw8ZYNI8vzbTCjVVS8M083sGbq4n4twIHT1E_pYjf4.cache +0 -0
  135. data/test/dummy/tmp/cache/sprockets/v3.0/yTS3OotYOtDApRxTph0EPd9A5Kf5hxNcrnqGU7gHlPU.cache +0 -0
  136. data/test/dummy/tmp/cache/sprockets/v3.0/yjdfyhBOL2m741wuRlzH3MU6TZ36Y_xPNlBXVkvwYQw.cache +0 -0
  137. data/test/dummy/tmp/cache/sprockets/v3.0/zKvy3WPEN_SZOcyO9CT-mwIqtOxYtETVzs7AnThXHNs.cache +0 -0
  138. data/test/dummy/tmp/cache/sprockets/v3.0/zwdXoT-68VyikS4rFwiwdDzOBquk7W12NFcGTQF2tww.cache +0 -0
  139. metadata +280 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 731d413c12e7e2df573ec129199e90c23f2b1762
4
- data.tar.gz: 8744182c040cca592769fdfab20aeb4b2e2a383e
3
+ metadata.gz: ff1401eb1c4a1eb66947868960bdee98819e376b
4
+ data.tar.gz: 9c64c70c1dbd8c7d1f93ebd1f23953462f07b628
5
5
  SHA512:
6
- metadata.gz: a4857bc8480b415482180e80221f391acd24971e8834785e501c75238a6a361fd72d53b478887064a6ec765be1149418c38226b10a4c78f8ce92427636614abe
7
- data.tar.gz: 5a6ced3382c1972bc3c90787186246ca79dea3bfe93a939a78703dd4e492d323eeac448b2eb71b9cd3fc1ddb648dd7f110bc30a09fb3258638739449e1460a24
6
+ metadata.gz: 47063a277cb0f93e3a5201fe16c43ff35a69850cb84837f65acde576195437fd981b36b6b014e9b65fef806cb03b5ed1b7314c1e3c72bc0a3aba7d9454dccc1f
7
+ data.tar.gz: c84f53a4f2c5dd8aed9c095076bc854e7bbe1bb646d34618c84912dd12807fb5072a32dca24714bf3c39c9e1e41ea8ea6d48e2811dd9b2b2017cf9976261dfde
@@ -129,7 +129,7 @@
129
129
  }
130
130
  }
131
131
  }
132
-
132
+
133
133
  }
134
134
 
135
135
 
@@ -163,30 +163,55 @@
163
163
  margin-top: 0;
164
164
  }
165
165
  }
166
- .anecdote-gallery-offset-dn2bak {
167
- display: none;
166
+ .flexbox &.anecdote-flex-module-a4j2aj .flex-scope > .anecdote-module-3ba83n {
167
+ @include remify( margin-left, 1 );
168
168
  }
169
+ }
170
+
169
171
 
172
+ .anecdote-flex-module-a4j2aj {
173
+ .anecdote-flex-offset-a4j2aj {
174
+ display: none;
175
+ }
170
176
 
171
- @mixin flow-gallery-dn2bak {
177
+ @mixin flow-modules-an32ka {
172
178
  .flexbox & {
173
- .anecdote-gallery-offset-dn2bak {
179
+ .anecdote-flex-offset-a4j2aj {
174
180
  display: block;
175
181
  }
176
- .content {
177
- display: -ms-flexbox;
178
- display: -webkit-flex;
179
- display: flex;
180
- -webkit-justify-content: center;
181
- -ms-flex-pack: center;
182
- justify-content: center;
183
- .anecdote-graphic-dn32ja {
184
- -webkit-flex: 1 1 auto;
185
- -ms-flex: 1 1 auto;
186
- flex: 1 1 auto;
187
- max-width: 100%;
182
+ display: -ms-flexbox;
183
+ display: -webkit-flex;
184
+ display: flex;
185
+ -webkit-justify-content: center;
186
+ -ms-flex-pack: center;
187
+ justify-content: center;
188
+ > .anecdote-module-3ba83n {
189
+ -webkit-flex: 1 1 auto;
190
+ -ms-flex: 1 1 auto;
191
+ flex: 1 1 auto;
192
+ max-width: 100%;
193
+ margin-top: 0;
194
+ }
195
+ }
196
+ // TODO: support for nested flex modules with custom gutter spacing!
197
+ > .anecdote-module-3ba83n {
198
+ .flexbox & {
199
+ @include remify( margin-left, 2.5 );
200
+ &:first-child {
201
+ margin-left: 0;
202
+ }
203
+ }
204
+ @include scope-variation( '.v-gutter-spacing-small' ) {
205
+ .flexbox & {
188
206
  @include remify( margin-left, 1 );
189
- margin-top: 0;
207
+ &:first-child {
208
+ margin-left: 0;
209
+ }
210
+ }
211
+ }
212
+ @include scope-variation( '.v-gutter-spacing-large' ) {
213
+ .flexbox & {
214
+ @include remify( margin-left, 4 );
190
215
  &:first-child {
191
216
  margin-left: 0;
192
217
  }
@@ -195,12 +220,12 @@
195
220
  }
196
221
  }
197
222
  &.v-flow-from-always {
198
- @include flow-gallery-dn2bak;
223
+ @include flow-modules-an32ka;
199
224
  }
200
225
  @each $breakpoint-name, $breakpoint-px in $respond-devices {
201
226
  &.v-flow-from-#{$breakpoint-name} {
202
227
  @include respond(min, $breakpoint-name) {
203
- @include flow-gallery-dn2bak;
228
+ @include flow-modules-an32ka;
204
229
  }
205
230
  }
206
231
  }
@@ -1,3 +1,3 @@
1
1
  module Anecdote
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
data/lib/anecdote.rb CHANGED
@@ -52,96 +52,85 @@ module Anecdote
52
52
 
53
53
  raconteur.processors.register!('gallery', {
54
54
  handler: lambda do |settings|
55
- klass = (['anecdote-gallery-dn2bak'] + module_classes(settings)).flatten.join(' ')
55
+ klasses = ['anecdote-gallery-dn2bak']
56
+ klasses += module_classes(settings)
56
57
  graphics = settings[:_yield_].html_safe
57
58
 
58
59
  # handle scaling
59
60
  flexes = []
60
- if settings[:scale_by] == 'relative-width-bottom-alignment'
61
- # images scaled based on their relative width with bottom alignment
62
- total_width = settings[:_graphics_].sum { |hsh| hsh[:width]}
63
- settings[:_graphics_].each do |graphic|
64
- flex = {
65
- width: graphic[:width] / total_width,
66
- graphic: graphic,
67
- ratio: graphic[:width] / graphic[:height],
68
- gfx_height_pad: graphic[:height] / graphic[:width]
69
- }
70
- flex[:width_ratio_balance] = flex[:width] / flex[:ratio]
71
- flexes << flex
72
- end
73
- tallest = flexes.sort_by { |k| k[:width_ratio_balance] }.last
74
- flexes.map do |flex|
75
- flex[:faux] = flex[:width_ratio_balance] / tallest[:width_ratio_balance]
76
- flex[:gfx_height_pad_faux] = flex[:gfx_height_pad] / flex[:faux]
77
- flex[:top_offset] = flex[:gfx_height_pad_faux] - flex[:gfx_height_pad]
78
- end
79
- index = 0
80
- graphics.gsub!('<div class="anecdote-intrinsic-embed-n42ha1">') do |match|
81
- flex = flexes[index]
82
- index += 1
83
- (view_context.content_tag(:div, '', class: 'anecdote-gallery-offset-dn2bak', style: "padding-top: #{flex[:top_offset] * 100}%;").html_safe + match.html_safe).html_safe
84
- end
85
- # graphics.gsub!(/anecdote-intrinsic-embed-n42ha1.*?padding-bottom:\s*([\d|\.]*)/mi) do |match|
86
- # flex = flexes[index]
87
- # index += 1
88
- # match.sub(/[\d|\.]*$/, (flex[:gfx_height_pad_faux] * 100).to_s).html_safe
89
- # end
90
- elsif settings[:scale_by] == 'relative-width'
91
- # images scaled based on their relative width
92
- total_width = settings[:_graphics_].sum { |hsh| hsh[:width]}
93
- settings[:_graphics_].each do |graphic|
94
- flexes << { width: graphic[:width] / total_width, graphic: graphic }
95
- end
96
- else
97
- # images scaled to equal height
98
- total_ratio = settings[:_graphics_].sum { |geo| geo[:width] / geo[:height] }
99
- settings[:_graphics_].each do |graphic|
100
- flexes << { width: (graphic[:width] / graphic[:height]) / total_ratio, graphic: graphic }
101
- end
102
- end
103
- index = 0
104
- graphics.gsub!(/class="[^"]*?anecdote-graphic-dn32ja[\s|"]/mi) do |match|
105
- flex = flexes[index]
106
- index += 1
107
- styles = []
108
- if flex[:width].present?
109
- styles << "-webkit-flex-basis:#{flex[:width] * 100}%"
110
- styles << "-moz-flex-basis:#{flex[:width] * 100}%"
111
- styles << "flex-basis:#{flex[:width] * 100}%"
112
- end
113
- "style=\"#{styles.join(';')}\" #{match}".html_safe
114
- end
115
-
116
- # flow-points
117
- flow_from_klass = case settings[:flow_from]
118
- when 'always' then 'v-flow-from-always'
119
- when 'medium-handheld' then 'v-flow-from-medium-handheld'
120
- when 'large-handheld' then 'v-flow-from-large-handheld'
121
- when 'tablet' then 'v-flow-from-tablet'
122
- when 'laptop' then 'v-flow-from-laptop'
123
- when 'large-monitor' then 'v-flow-from-large-monitor'
61
+ if settings[:flexes]
62
+ flexes = parse_custom_flexes(settings)
124
63
  else
125
- if settings[:size].present?
126
- case settings[:size]
127
- when 'small' then 'v-flow-from-medium-handheld'
128
- when 'medium' then 'v-flow-from-large-handheld'
129
- when 'big' then 'v-flow-from-tablet'
130
- when 'full-width' then 'v-flow-from-tablet'
64
+ if settings[:scale_by] == 'relative-width-bottom-alignment'
65
+ # images scaled based on their relative width with bottom alignment
66
+ total_width = settings[:_graphics_].sum { |hsh| hsh[:width]}
67
+ settings[:_graphics_].each do |graphic|
68
+ flex = {
69
+ width: graphic[:width] / total_width,
70
+ graphic: graphic,
71
+ ratio: graphic[:width] / graphic[:height],
72
+ gfx_height_pad: graphic[:height] / graphic[:width]
73
+ }
74
+ flex[:width_ratio_balance] = flex[:width] / flex[:ratio]
75
+ flexes << flex
76
+ end
77
+ tallest = flexes.sort_by { |k| k[:width_ratio_balance] }.last
78
+ flexes.map do |flex|
79
+ flex[:faux] = flex[:width_ratio_balance] / tallest[:width_ratio_balance]
80
+ flex[:gfx_height_pad_faux] = flex[:gfx_height_pad] / flex[:faux]
81
+ flex[:top_offset] = flex[:gfx_height_pad_faux] - flex[:gfx_height_pad]
82
+ end
83
+ index = 0
84
+ graphics.gsub!('<div class="anecdote-intrinsic-embed-n42ha1">') do |match|
85
+ flex = flexes[index]
86
+ index += 1
87
+ (view_context.content_tag(:div, '', class: 'anecdote-flex-offset-a4j2aj', style: "padding-top: #{flex[:top_offset] * 100}%;").html_safe + match.html_safe).html_safe
88
+ end
89
+ # graphics.gsub!(/anecdote-intrinsic-embed-n42ha1.*?padding-bottom:\s*([\d|\.]*)/mi) do |match|
90
+ # flex = flexes[index]
91
+ # index += 1
92
+ # match.sub(/[\d|\.]*$/, (flex[:gfx_height_pad_faux] * 100).to_s).html_safe
93
+ # end
94
+ elsif settings[:scale_by] == 'relative-width'
95
+ # images scaled based on their relative width
96
+ total_width = settings[:_graphics_].sum { |hsh| hsh[:width]}
97
+ settings[:_graphics_].each do |graphic|
98
+ flexes << { width: graphic[:width] / total_width, graphic: graphic }
131
99
  end
132
100
  else
133
- 'v-flow-from-tablet' # default
101
+ # images scaled to equal height
102
+ total_ratio = settings[:_graphics_].sum { |geo| geo[:width] / geo[:height] }
103
+ settings[:_graphics_].each do |graphic|
104
+ flexes << { width: (graphic[:width] / graphic[:height]) / total_ratio, graphic: graphic }
105
+ end
134
106
  end
135
107
  end
136
- klass += " #{flow_from_klass}"
108
+ graphics = insert_flex_basis_styles(graphics, flexes)
137
109
 
138
110
  # build HTML output
139
111
  contents = []
140
- contents << view_context.content_tag(:div, graphics.html_safe, class: 'content')
112
+ settings[:gutter_spacing] = 'small' if settings[:gutter_spacing].blank?
113
+ contents << view_context.content_tag(:div, graphics.html_safe, class: (['content'] + flex_classes(settings)).flatten.join(' '))
141
114
  if settings[:caption].present?
142
115
  contents << view_context.content_tag(:div, view_context.content_tag(:div, markdown_and_parse(settings[:caption]), class: 'inner anecdote-wysicontent-ndj4ab'), class: 'anecdote-caption-ajkd3b')
143
116
  end
144
- view_context.content_tag(:div, view_context.content_tag(:div, contents.join("\n").html_safe, class: 'inner'), class: klass)
117
+ view_context.content_tag(:div, view_context.content_tag(:div, contents.join("\n").html_safe, class: 'inner'), class: klasses.flatten.join(' '))
118
+ end
119
+ })
120
+
121
+ raconteur.processors.register!('columns', {
122
+ handler: lambda do |settings|
123
+ klasses = ['anecdote-columns-nab3a2']
124
+ klasses += module_classes(settings)
125
+ columns = insert_flex_basis_styles(settings[:_yield_].html_safe, parse_custom_flexes(settings))
126
+ view_context.content_tag(:div, view_context.content_tag(:div, columns.html_safe, class: (['inner'] + flex_classes(settings)).flatten.join(' ')), class: klasses.flatten.join(' '))
127
+ end
128
+ })
129
+
130
+ raconteur.processors.register!('anecdote', {
131
+ handler: lambda do |settings|
132
+ klass = (['anecdote-inception-ab2a8j'] + module_classes(settings)).flatten.join(' ')
133
+ view_context.content_tag(:div, view_context.content_tag(:div, markdown_and_parse(settings[:_yield_]), class: 'anecdote-wysicontent-ndj4ab inner'), class: klass)
145
134
  end
146
135
  })
147
136
 
@@ -153,6 +142,60 @@ module Anecdote
153
142
  })
154
143
  end
155
144
 
145
+
146
+ def self.parse_custom_flexes(settings)
147
+ ratios = settings[:flexes].split(':').map(&:to_i)
148
+ sum = ratios.inject(&:+)
149
+ flexes = ratios.map { |ratio| { width: ratio.to_f / sum } }
150
+ end
151
+ def self.insert_flex_basis_styles(html_content, flexes)
152
+ index = 0
153
+ doc = Nokogiri::HTML::DocumentFragment.parse(html_content)
154
+ doc.elements.each do |element|
155
+ if element.attributes['class'].present? && element.attributes['class'].value.split(' ').include?('anecdote-module-3ba83n')
156
+ flex = flexes[index]
157
+ index += 1
158
+ styles = []
159
+ if flex[:width].present?
160
+ styles << "-webkit-flex-basis:#{flex[:width] * 100}%"
161
+ styles << "-moz-flex-basis:#{flex[:width] * 100}%"
162
+ styles << "flex-basis:#{flex[:width] * 100}%"
163
+ end
164
+ element.set_attribute('style', styles.join(';'))
165
+ end
166
+ end
167
+ doc.to_html
168
+ end
169
+ def self.flex_classes(settings)
170
+ klasses = %w(anecdote-flex-module-a4j2aj)
171
+ # custom gutter spacing
172
+ klasses << case settings[:gutter_spacing]
173
+ when 'small' then 'v-gutter-spacing-small'
174
+ when 'large' then 'v-gutter-spacing-large'
175
+ end
176
+ # when to wrap
177
+ klasses << case settings[:flow_from]
178
+ when 'always' then 'v-flow-from-always'
179
+ when 'medium-handheld' then 'v-flow-from-medium-handheld'
180
+ when 'large-handheld' then 'v-flow-from-large-handheld'
181
+ when 'tablet' then 'v-flow-from-tablet'
182
+ when 'laptop' then 'v-flow-from-laptop'
183
+ when 'large-monitor' then 'v-flow-from-large-monitor'
184
+ else
185
+ if settings[:size].present?
186
+ case settings[:size]
187
+ when 'small' then 'v-flow-from-medium-handheld'
188
+ when 'medium' then 'v-flow-from-large-handheld'
189
+ when 'big' then 'v-flow-from-tablet'
190
+ when 'full-width' then 'v-flow-from-tablet'
191
+ end
192
+ else
193
+ 'v-flow-from-tablet' # default
194
+ end
195
+ end
196
+ klasses
197
+ end
198
+
156
199
  def self.module_classes(settings)
157
200
  klasses = %w(anecdote-module-3ba83n)
158
201
  if settings[:size].present?
@@ -1,5 +1,18 @@
1
1
  # Category-Specific Sorting: A New Way to Sort Products
2
2
 
3
+ {{% columns: size=big + flexes=1:1 %}}
4
+ {{% anecdote %}}
5
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
6
+
7
+ {{ graphic: href=//baymard.com + href-title=$Clicking this image will take you to Baymard.com!$ + assets-path=category-specific-sorting-01-rei-mock-up.jpg + size=big + caption=$This is the 3rd in a series of 9 articles based on research findings from our e-commerce [product list usability](http://baymard.com/research/ecommerce-product-lists study).$ }}
8
+ {{% end %}}
9
+ {{% anecdote %}}
10
+ Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
11
+
12
+ Sunt in culpa qui officia deserunt mollit anim id est laborum. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.
13
+ {{% end %}}
14
+ {{% end %}}
15
+
3
16
  {{ graphic: href=//baymard.com + href-title=$Clicking this image will take you to Baymard.com!$ + assets-path=category-specific-sorting-01-rei-mock-up.jpg + size=full-width + caption=$This is the 3rd in a series of 9 articles based on research findings from our e-commerce [product list usability](http://baymard.com/research/ecommerce-product-lists study).$ }}
4
17
 
5
18
  We considered naming this article "the sort type all users want but zero sites offer" because category-specific sorting really is one of those rare instances where an obvious feature has somehow been **completely overlooked** by the e-commerce community. After all, it really shouldn't come as a surprise that users would like to sort a list of TVs by "Screen size" or a collection of hard drives by "Storage capacity".
@@ -10,7 +23,7 @@ During our research study on product list usability the test subjects repeatedly
10
23
 
11
24
  {{ graphic: dimensions=1280x720 + embed-code=$<iframe src="https://www.youtube.com/embed/ZCBE8ocOkAQ" frameborder="0" allowfullscreen></iframe>$ + mood=positive + caption=$A mockup we've created of what category-specific sort types could look like at BestBuy. Here the three last sorting options – for TV screen size, refresh rate, and display depth – are available exclusively within the TV category while the other sort types are available site-wide.$ }}
12
25
 
13
- {{% gallery: size=big + flow-from=always + scale-by=relative-width-bottom-alignment %}}
26
+ {{% gallery: size=big + scale-by=relative-width-bottom-alignment %}}
14
27
  {{ graphic: assets-path=category-specific-sorting-02-bestbuy.jpg + mood=positive + caption=$A mockup we've created of what category-specific sort types could look like at BestBuy. Here the three last sorting options – for TV screen size, refresh rate, and display depth – are available exclusively within the TV category while the other sort types are available site-wide.$ }}
15
28
  {{ graphic: assets-path=category-specific-sorting-08-faceted-sorting.jpg + mood=negative + caption=$An example of how things can go really wrong.$ }}
16
29
  {{% end %}}