redis_web_manager 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/README.md +45 -3
  4. data/app/controllers/redis_web_manager/application_controller.rb +24 -4
  5. data/app/views/redis_web_manager/shared/_header.html.erb +15 -2
  6. data/config/routes.rb +22 -16
  7. data/lib/redis_web_manager.rb +10 -5
  8. data/lib/redis_web_manager/base.rb +11 -1
  9. data/lib/redis_web_manager/data.rb +2 -2
  10. data/lib/redis_web_manager/version.rb +1 -1
  11. data/spec/controllers/redis_web_manager/actions_controller_spec.rb +7 -3
  12. data/spec/controllers/redis_web_manager/clients_controller_spec.rb +5 -1
  13. data/spec/controllers/redis_web_manager/configuration_controller_spec.rb +5 -1
  14. data/spec/controllers/redis_web_manager/dashboard_controller_spec.rb +5 -1
  15. data/spec/controllers/redis_web_manager/information_controller_spec.rb +5 -1
  16. data/spec/controllers/redis_web_manager/keys_controller_spec.rb +14 -10
  17. data/spec/dummy/log/development.log +538 -3066
  18. data/spec/dummy/log/test.log +2631 -1786
  19. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0a/0aw6oxsZZHXRv9irvErtzrc_ISsZvGHxqPbzIQiR31M.cache +0 -0
  20. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0e/0e2y-7a6bH7Tw30oO9TFTatErL6MewQs80X5zdd5KPw.cache +0 -0
  21. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1K/1KkFYO18z8udZMLFnNyQDVwkaCWRN-yt__HsOGzLpJM.cache +1 -0
  22. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{4K/4Kco1idBWOkgNCOBZE_yyc88yG2IgHTmnk_wvEaFaZw.cache → 1Q/1QakPDiFP4ucN7fGVPSaT9R8eHeTMqMeiXRTmn8WP4o.cache} +0 -0
  23. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{ap/apDnMcs4GyqtxhfB71Q4EdWGKhNUdQvc5TBe6GF9O8g.cache → 1j/1j2dk5NLOv4uoEWkoyHD1cJCPV67PxRGiIZUpBp-Hhw.cache} +1 -1
  24. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{YU/YUmgzWZ4uIhet0IwYz5GSSLLaGIuTxUY7RmZxoMwsYw.cache → 26/26EGEYTGUh5NaBGmficD_Ar4JmcW1fRQUlmXrWT6_tE.cache} +0 -0
  25. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2H/2HKvmbKuM6JpieSVlHD6oQGRdbFD8YL1pCkmuPA2DuI.cache +0 -0
  26. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2X/2XnCrPt322k_zgI3_Qg2FQgCL-ro3XPJe72i7zWV7-M.cache +0 -0
  27. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2X/2xg9nUhfCssWmUSFC2iaFrNLchfgzOqVyI_eGZ3EGeE.cache +0 -0
  28. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2p/2pqPmpwfDTAd3zRGf74h6eciy-N7t9NdHSPCYzXpRyg.cache +2 -0
  29. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2z/2zoGNgPFAbAhorIZhlgp-Q2PGdCqKoJd_bguujVJ2kI.cache +1 -0
  30. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3H/3Hoa8GUWEvIdGrFe-J4mbPk2FeQs7Y9FXdBY7998rxI.cache +0 -0
  31. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3H/3h2XZeUckVtdTxGXcYToMMRG7WYVf3ohzlL-UnD1AV4.cache +0 -0
  32. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{y1/y1EydlWIWkAjJrdH1mYroCE-szRCxGpaWDZ1ccoALQ4.cache → 3R/3R08ZXK2F2C_rdXIKSvYzfWF8VoGPHimZ2r8Hnu8oUk.cache} +1 -1
  33. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3n/3n1FzZg5E87HwfCBfXDl6TD0SBeTrEo9PWB195HOhFI.cache +1 -0
  34. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3n/3nddjzC8vFFL8XE_Yyc0H0STZ0R9_gDNBHeUqAl9Ggg.cache +1 -0
  35. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4K/4KH-o07t6qWVt-cBix593oKV0s_SAJc-EyeLvEEpLVU.cache +0 -0
  36. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Hz/HzouVfzgIpd8JfYS_QHN6hKmTvnS0Mck10aUVl2saxc.cache → 4j/4jtp--ANTmDo8NXQ8Lpo7Ztjf-jpAnOv4vBNYBDn-yA.cache} +0 -0
  37. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/55/556OjFXhI4WOeeocSCY32PZvySt1TppbmgKkOz1PX6M.cache +0 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/5H/5HlLU1XycJcfWfgtigt4I2NhgyMDtKf9Ev1fjv5HL_g.cache +5 -2
  39. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/5H/5Husy6C3Irn_gX3-inCinifg6BZDq13dfrKk1NZ1-jA.cache +1 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/5t/5tkglFVpxupKhTlk6ChkL3jBoEAsOa_58HtfBwjJKt4.cache +1 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6S/6Sz8jYiJxqIdf2IeIWpw9usDCMzMM5fH0h_L0wXCqZg.cache +1 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6U/6UJPdMB0PkxRKKttVHS3ukNocIugTXotgcPlPdavppc.cache +1 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6d/6dttoh65t2AWTetN3pvAZ8X00Jew-_lDmhOx4Skzeww.cache +1 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/75/75XUSY6S-p5vYslHZ7topSxMKJnDf8u8qsetOd5xjeQ.cache +0 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/79/792QG2P0RMXbvVG9nxMebrAJAwpxxQ55ITsH45JMGa8.cache +1 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{u-/u-RWyk7bOAGZ3ZpDJQfi7jiu-056lBiZsWR1wwCbdqQ.cache → 7E/7Ezt2q1eyEaUFmU_aLXInCAE7kFgnW4bL_1J6nQe6BU.cache} +0 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7E/7eeWH_tKhBN_yWZrAHsFb1kpc8XdDdfr1FUc5rQNzjo.cache +0 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7N/7N35-kxELkO0IpGADrsrzucmTYcjzyW0qgonAMqt4w0.cache +0 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7U/7UzAN8n-sDK2muO7Ho65nIaJnAi3pyna-J5ry6Cb-2w.cache +1 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{7n/7nlCmB957JDuPm041xhHVE5xlZtvsQ4bNWFlqoB63sA.cache → 7a/7a_GgZVfwULAO5yDXjPyFxFZtlObioq7e2jgttgILl4.cache} +0 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7l/7lJTydFY8VV1vIr-HJtpxW499wAIvakS8A5Y1krZ6Mo.cache +0 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7s/7s6K1aZ2cSkIbdeaXVyvll09iEOFnr6c1OTL1OUFo4A.cache +0 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7y/7yq_7g2HWS619m5C7NSqXALMTkhRV-wfiHjLNaqAwOo.cache +0 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7z/7z6-SVvNX8pziIR5sBQ99HlPrjZFRwI3fukGyPPDh4A.cache +0 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8-/8-us4hG_5CbPayEBNIj_kOCK4Xo5rewFcVqyBh_AB4g.cache +1 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8D/8DRC5udTjG9kiHhIQRhD3LXDqVGGVtnUkZcwZo5q7A0.cache +1 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8D/8Db7v2LyaS8j_1h5J-88VbqJGWb6xIIPwaA2LT22BqE.cache +0 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8H/8H3hp7rB-XjV_XnB5fPjsJFoQA_C5szYDIXC9bMn3sQ.cache +0 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8J/8J6xaH6EOaMna8JE_L7M2eZY62PKiO9_Dp3sq1mCCtU.cache +0 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8U/8UDIUHOUPcLLWCXzn1Wwx1s6xwiASo4c38wGFn047vI.cache +1 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{-T/-T_9QKUoW8S5CVhV9_z4cTTs2zhRBKmBPQx_cWUhHmg.cache → 8Z/8ZjB748d8WfABez-Mo5fRZ6RoDa8wPR-UfnCCZcD6Yg.cache} +0 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8n/8niv9HY2q1ipKvhUIOMA1t-vvVqEk5GTS2ECOwiFpgc.cache +0 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8p/8pF1xUEx7f1V9QrZQS27Qm_T3eD4X_Gh0cO1lAy9umw.cache +0 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8t/8tP_EcJofP_lFfqmxwPdpomtPzYi4SbonkR9VI5zXFc.cache +0 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/A2/A2UXxP-uNL5UE3shPwQzjyoo9VtDB9GikUZu3fmsL9g.cache +1 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/A5/A5mMpLtnNADJBsPdI7mts1lf-M7VK0uosiEKWjicLW4.cache +0 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{AL/ALq7iSkAktc89zX_es-9flQgp9uzZM70EDx1xWT6oZA.cache → AN/ANEPHdUmq_iMJZmEyF_YmQ2tAYsTIpvdfAI7npNYKUg.cache} +1 -1
  68. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/AW/AWGiXd1BIe4djoOUqaKBZBuV4W8iapBSkZ4B2ij9Pvs.cache +0 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Af/Af2bI2GkW9ZL4IzEa0mZAF3uOI4TWhJ2gH5Yy2hdK-8.cache +0 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ap/ApsZ2y-1yeOHocBP9qRQNjzs2MmlTT1EvsxbAL6iN5A.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Au/AuPiR8V_lV2_aEy4K_0vlhVc7_p6gtPUVsbtm8RIXio.cache +1 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ax/AxPITPeLqmyNdOQJFdSP9hzX4FesnTYB7SCwkJEdsPA.cache +0 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/B3/B3RuxZdDDB_w45I_ljUxw-ALA8vQLEtooK8SzbrBlLs.cache +0 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bi/BiUovD89hLu53MxNSwbdTtOesFCGXw_RYRA3YiQdwZY.cache +0 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bi/bi61759YoHiNpL9Xmn67LEwhCy9yfIyfw-bzPdAgneA.cache +2 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{qk/qkgwc98y_xo3ymSYzKdl7XCCxzIwzswDHv4QA1WSpyI.cache → Bl/BlLjBMZMnvGjOcJ35Kx1_7PlEdHzWtJvwr9Is4bIhj8.cache} +0 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bu/Bu0JyFRgF7NQnkABd8Rhq9tMtKhmvBAbDRt_pNFhJeg.cache +1 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bz/Bz8sbF8dcRubSmO1mCRbQPbQliAkgFbe77MR_b12kyo.cache +0 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/C6/C6eAU65u_HvnkvfB9kpk9l_McaQpcPnJORTOr1LrNok.cache +1 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CR/CRjeVRLaA83ZcTe1dZ-53cwccOmAFHUCkhPXzOtqggk.cache +0 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CX/CXYY5x0r8g4PYN7_D2L65hZDzgx_Vr70iGT_nIBC-U0.cache +0 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ca/CaPKbPNmGz9F7YCK4xrmSfNiMpeJeBEL-BoB0db-clU.cache +1 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Cz/Cz-E1WWnkI-B_hd9BJ2kfdbi9pxl46zFGPXSOCAy0zk.cache +1 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/DI/DIJFyauoUIJhyEVqiRoxOwgqNepO3rTPLMHmJppZq4Q.cache +0 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Hs/HsoLENG_18NQpV_rHDiBWOvlbvqtf61f3djlv1B5nBA.cache → Dc/Dci4pd7M8Ne_WmDT-uEbAGLllMKv9n9xFEkvxOel_6k.cache} +0 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Er/ErCdzLEAsiQhHgtKR6U5AyeeZ9YojMlO-gDP_Tycc18.cache +0 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fn/Fnj6VSky0lMGdJOtIkufeGRpwuXowh9A0lKwKSu93hw.cache +0 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fs/FsUNX_nNrCleOvGKRhbfz8K5Wa_xpbBrtMKuX6iANzI.cache +1 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{H_/H_z0F1x6JPtUiC7raq0CBeFy9cPTaV0IdKh-UyMjDSw.cache → Gd/GdsO_sM_7CfY58ABSxpdwu3mz30vSgjiOegUfCK8AGs.cache} +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Gs/Gso6rVFXo5n7X-pxPZ0Ty9Gm5C0IyCJLZRGacJMYrJY.cache +0 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Gz/GzcSE25ZCEQWg8XviUa9_XTLIPABbfIldo_A4eV7cPo.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/HO/HOdIEH5gx4vI3aRATmKr_75TJJREk64plCAIesEorDk.cache +1 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/HT/HT_-2705P2jdZ8j1hpBfFrKEgUssIxGaKBJ58gAJSkw.cache +1 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/HU/HUuLDCf-4aeMxUF7Lp4LUPz0K51O36G5Vo1dz8FpCS4.cache +1 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ig/Igib235Bl1zJNkulLvK6o6zZDSXmjYQX7vHPTjyyZ_k.cache +0 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ix/Ix1Ve0rEgPj7S2u0WPAZijyNKPh0Go_K6Ahn9nGpSUY.cache +0 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/J0/J0dQ2KZ6nkWhqYyj1_9bfroshiYR8Go3O4_NqIUSJe0.cache +1 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JK/JK-jHrHOe1VwQjWAIDplEh5j5qZGHDHtaoLovl6CSmw.cache +0 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JQ/JQDBl5fsVsQc49SeauaBMIoULYEFVSdtUD64sZ4rW4Q.cache +1 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JU/JUfw0PqMio6AqvzfRU601UBm09Ck7GaaY_Bk7z9axfo.cache +1 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JV/JVfgqwR_XeM_pzFFL7REiYD-0U485LOL0pdeiKHApXU.cache +0 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{5g/5gQ_cZAnDfeMuoyRucPFD1LmTlQEOd8KYx3FFQoSgAs.cache → JW/JW1LmALV_FHPRJqy_BOEIMvU-UTDQgChuUfhLwZwIFU.cache} +0 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/K3/K37xAqj8CYDbzGf7zxAF-76eu9TA1rj2togziWfp72w.cache +0 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/KE/KEkmrkOYUdoWuuAKnw29ezV5wmIG7OCewWZGUWt302Q.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Bm/BmGivS77bA1oOgqlPYGJUFtrs6CkHXI68h16dsJpzRo.cache → KZ/KZwmLpfp68LockSXrdgJ67Zu5YuJEVgg6PFiiTazncI.cache} +0 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ki/Kimsq_-4BdYO_WDDA14GnN5NNUEGeR23HCj1dbhfu3k.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/L1/L1beA4loiQpv1E7PajXHLLKrWpc7UI-k0Jcc9RTKuN8.cache +1 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/LD/LDvhAhaT5J54nhzqiw9QMOCnJI6WkwxwZmXRbBJ1Frc.cache +0 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/LH/LHuJE7upKlJqJMfeHQYk-N_PWdaP6t5YiDt1Rmen_es.cache +1 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/LR/LR8ErVOmWASKjBxQFVDu1m1Lh-Wh_0XO0JVWODDCvJU.cache +1 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{pm/pmjkGsgqbSLNlQVCehba1fMHSlgTy-JbJBDNilrULa0.cache → La/La5GSEJ7b3RDmRaCAWHWz-XSWL4Sr8b9FNNMFhLay_s.cache} +0 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/M3/M3li6RZ_Oh8yVoVROWio3Yv4aX4gEy4tcz6P5h4FozA.cache +0 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Mn/MnyCQfOkO-txbPYjTz8HxGXxggC1559dysKEGSpr-v8.cache +1 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/N2/N2lJ85B2FacgHQC8p5uI0ak6Vpt8erD-xz6Atvl3i1c.cache +0 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/NN/NNv--2-uTUVO5NAbRv9-1mRj626dcF4YA1d1Zbs4QNU.cache +0 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/NV/NV2U-nbRiTlsH3mhHp2qBCryTKgG1iOPWXi-sQYy7uQ.cache +0 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/O6/O6tTsLZQz5_27BX0Qp6br7hmcT4ylY2MfdhjtX4g4vM.cache +1 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OG/OGDnFnjDQJU_F4HYhGk6mNC57s4LZmF1ptn2MJhRRUU.cache +1 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Xp/XpkxNORvH4VjCp-UKZT7EihG7YaG1ZbVktpOzJFoHHo.cache → OS/OSgMoaBS2oJtIcrWKUAIae2hVrPp02lQDPBfRVnNdV8.cache} +1 -1
  120. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PB/PBGAFSkzGR9UlKP5wmfPRzS1vcdxK5m5qNCQec2NFx8.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PI/PIiZIXdOjusbDYQKIkTyUJKCKZjM5PTso3ZK0YfWYmc.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PN/PNDD04IOoO4rC-8UXAQMqpSgM2uALVrl3bC4D4FxAWY.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Pc/PchmBVX0WR55SOVqMcyCU-rxLpoCOVyC4fXV8g7eg5M.cache +1 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Pj/Pj_L1z_uftZZTbIFd-50Z7ZelnhII1734VRKB8eycUc.cache +0 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Pt/Pt0RbkWcwbZk9xo0VlbTnUTd6uAiCeJoiHPEZSDx8w4.cache +1 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/QB/QBOOCATZcB3L2bMKl8Ib4x0j0vBdTTJcbvpWDi41WVw.cache +1 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/QD/QDP4gz3hHQMhqTDRYmb3VIiU6eXCbtxkAAmeyCSLTP8.cache +0 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/R1/R1590cqOCHN0XtbO4r6-dAeISjdEo5UlQmbjsKNj37w.cache +1 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{_8/_8eiro2QHZnJcCcSUICXsOAA7wiXXOunHxt9UpchWQQ.cache → R2/R2zEYtN3pu_VMbXdRbpxrNPmo_jpd7xgL-0HavYQPtQ.cache} +0 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RT/RTV9LjQIoARSCFMtpsgmZ0Csa5870Xe_7YTQbFYsrMQ.cache +0 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Rl/RlS7HDF_fLI1B2gLvB7lIVC_S90uzjEI_f6a8MMH8SU.cache +1 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ry/RyerqfB9MWC6t53Fw2i-P2kpmdh-UIuUEeGMOSyMpjM.cache +0 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/SF/SF2OybN55hoZK2visMkQ3vdigCqLIGYE1w3w5c7-6E0.cache +0 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Sg/SgsZmlmduLdGbZpKj_IouBPKLhDVN8C5X2q4DPgiUGk.cache +0 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Td/TdAO3S3_ujavljt1S8e8mtOkxvdMjwwgkTwNQGXjYK4.cache +0 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ud/UdBJtOdz1YJ0jsvBQGIW-p1ldIzGHuGixc_NnvZJOWA.cache +0 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/VF/VF6hN-8vXKq-wdwTJHm-DUX0iROMA_9vCCIySALtcts.cache +1 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Vc/Vcp1acYz4Os7oQN_VDUl4Y6eaTw6vpDCJDaH7fG6xko.cache +0 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Vc/VcvRYUXV7rJy7O2MsLxcFwZtRaJzupZ3Xm5CKdR3BM4.cache +0 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{DU/DUSNxOUC3DSHJUAoDZRVCN3CBemXHA1f-KwMnUeiREc.cache → Vw/VwMndrSacgaRoc23QWL9TG0tBodUHPr-aAHhbrIcS9c.cache} +0 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/W6/W64hnVqpv7YHpzcgT4TAmYh4WjzlrxdhYvH6TBJUFdM.cache +1 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{gL/gLNlFVqZKtNiRsw7YYLovHJqj9Hw7aRltTiaMbDFz4E.cache → WE/WEGC7UEPa9qkEG09abPEbSB0skzV_sKqdCawEvolEm4.cache} +0 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/WF/WF1AtWbBbfgmahNyXbUUY5gyNp-hTVAFfQPYUvNGXpE.cache +0 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/WF/WFuGP81Jbd-Zyt10ISBx2cx4UfCKXZGMcHieQH8Td2Y.cache +0 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{ZK/ZKVfTM4gfFVS0ODUsfXeBiRFNlBZNlx83DaIvZD5u9E.cache → WZ/WZoWADpkZNLa-bf6uZUF9b4x4yoPGcXxWPVRzS9FynQ.cache} +0 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wa/WaIs0Av9vwoKw63v_UuddW1bUqMIZt0HRwq0YLTWBd0.cache +1 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XC/XCDoi2zXmaLy0fk9eLpujt4M8q12Qkb67lJBBwklb9A.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{nN/nNUeEJakV7XN3p58IMUky_YcMqNH-Isyxz92S4g-r4w.cache → Xb/XbPh1r579sgttgyUKnCufClgQMNCkzh0pwXAztbpQ8M.cache} +0 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Xt/XtbURqHlbpcqe-qOLKuS08rComMTu34WiZHayyCcikI.cache +1 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YE/YELZ9n3HnPoEhyES3yqiiAYpInO8MoEUscGVjrnqOtM.cache +0 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YP/YPHZp_c3AVq1vvmAUc2pqV_bB7VNoJ4terGLvuFr05w.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Ks/KsEIC10hBc54WdJSuBqpP3SS0qfQ2oovcTo_s2rw5Ww.cache → Yn/Yn9xcIZg-fdpF0eznmxxnqg4RmKs_D5WZxuSD1ZSsr8.cache} +0 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ZG/ZGL8lLx8ywKvplkr-B70M_fUldG3VDWylMuzwgScoag.cache +0 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ZR/ZRM_qDJvvnZJ1HCTTs3qqTC8SsAJ2y7yFlZ7k_wKvik.cache +0 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Zl/Zl9oO1-nicVi1uOcsYletloRhaxpolWFtOMOX6XLR5U.cache +0 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_6/_6VbpFfsrzGyzVmfeIDkhDXgqJoDdwKCDjsIfbXAV6c.cache +1 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_G/_GdGK8aekIx17-vYlVAfliGbyXCyudXDjiOH88V6044.cache +0 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_U/_U8wgzUB9DpOa-5dnU2SQqXE1q1qXwhWQc2GEyDQ3YI.cache +1 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_W/_Wc9qlowwcFY34rQRWTfXzdaEvkInNTc4Dr8uONVshs.cache +0 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{qW/qWgD7sgETd_CJaDTE12RCSu31lz4jlv5yZYbwUrGWG4.cache → _r/_rcIzIkfcfSrmnZ_IGlIugRnvBf46h5R-7w7IGf4Guk.cache} +0 -0
  161. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aa/aarcHudFs_Dh5u2FEa5-Hoc4L5BVbF-6mGJnAh0OOeY.cache +0 -0
  162. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Lv/Lvh_nIQm8e4PQ4smcyfsUS6r2sg8gGuxwlF9OXOnslU.cache → ar/arWeA6NSVcSq1hmCOmky3RA6jSD6d5o4HJhIRAelzlk.cache} +0 -0
  163. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/b7/b73y1Q1Mg22vOM0Zsm2SSnV_x3upeYjE69w_FUNkdSQ.cache +1 -0
  164. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/b_/b_umTeSMdHq21vjHnNDfQ4uVxQN7YFX-qFKn6XFEzE8.cache +2 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bn/bnWKda0-TI8mLac-rrKVkGVIC9jtxTr5XdIPx0bJPJo.cache +0 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cS/cSrunJsasyS1KvN_vpz9maV7Qdy_V6rFkIGCNKH5O-Q.cache +1 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{qN/qNm5v4k4Q2omYt83V37WeTUd0csuCJ9FFYfTvUjWITE.cache → dW/dWboBq4nJC3h3BeMT5SgcFroXnz9sQP2hQoUbhfPC98.cache} +1 -1
  168. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dq/dqdAHCkzh6ai57glHA3MX4aTgCiHQ4--Wzm63onHg6w.cache +0 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/e-/e-P0mJUIOdDXL2VYcgmwvBiNHgUb_vEYyv9f0LI_QfU.cache +0 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{O8/O8QovN5oaIJtcVNqRYU4zdOWTyvg8vxndkgSo9k8r1w.cache → e1/e1fRFw23w4LTZ978mciRelNPWIO0yDVY0yCbPVOYZX0.cache} +1 -1
  171. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eH/eHQij4w94_CE79cLSoU0BZ64J4MrtoRbsuXzZdK_R-g.cache +0 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eT/eTqa-gsuM6ROd8QcDSDgzlDEUfsFSURdOb8rNjcBrRc.cache +1 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eZ/eZy5PkHIejHwwJ5_Cohr9FPIUe_W_FMpmYo3sBFN_MM.cache +0 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eg/egAVgSMe55TYbcPAkHCWXHsS6YWENTIwwYpxjaiNzSo.cache +1 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ey/eyzdrv5PhSAdiqgQl0jOfppCaGYquSGZ5MdwCrySbAU.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/fM/fM04dlec2zGbYdRU89lQDcHwxnC-ngMKfj4nyYk2YU0.cache +0 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/fQ/fQwP9Vk_ZXeOttVX93C2GUlGVsnjhd5Qov6uLpQ6BeY.cache +0 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/fT/fTQQH1rmnzRj3TDsOasouG9Qrauuq2yxAq89XTRwrkU.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/fY/fYBJu5w2GbgRsdVTnIHy1J4kIXr4OlbSeQTtVnF_Dhw.cache +1 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/f_/f_MsTjoMC8mtvRW1b3M6l-T657YhuE5UGdHUW7d1tPU.cache +0 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/fw/fwr4OHjn77ISYzTosCUPd9gAVLkvrM47olieo7Fm2oA.cache +0 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ga/gacIb14ShUszP1f64zb5UR92z8jLIqCYezjNbo9NTm8.cache +0 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/h6/h6Y9rjzrej2aPHFLz1fyatbBLInxdBGK1dvHPvNzN5M.cache +1 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hV/HvIrQib2UHjjkPUp_jn0ExwaYfCVSRA7p7LodY9CKXU.cache +0 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hV/hVYwR882xvionpz0lD9LaF4to-rb8xn7WUEHHLVc7M8.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/h_/h_gP27Qi2DF_2ojTO6YxfUp-sfbzSog0WfTusHW-sFs.cache +1 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hh/hh9_HyTE7VFvH0aqOWejpAjTMf0M5h827G2ITkfY1Fk.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{F7/F7IkRDFFo8cOET3vULDBLLacn5ihlchT2DZQNxncS4U.cache → hk/hkVmIkeB7pyI5zadCxIa9ewhTnzNBe-9rkypCdZYsW4.cache} +0 -0
  189. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hq/hqNSrfN498sbMdq1AkL-1kGKWFLd7Mhm7fgGU-_V-U8.cache +1 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/i1/i1t9pJxEMoWBvXzmZ4GrfHgK-HPhUBlZiTQ6-XdBvvY.cache +0 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iA/iAtmKxYS3G3xxFnoq8zKShEjryh4gr9hT6jLEWD3F_8.cache +0 -0
  192. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iN/iNqvaze5MchM3uwcjK5PIn3ZEfC6YumNpxK_l4k9j0I.cache +1 -0
  193. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iW/iWInzJYtvZgb8RL3TpLikGtbdpPG762lFDiq5MeLzAs.cache +1 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ip/ipqYg9-gFBJGeLmnVMoBJUeuVdodylx8NKkohv6UTBA.cache +0 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iy/iyJjpcbRNbVNKVQY_ilsn2QLIDwPFT_VzzbmAcGcQyE.cache +1 -0
  196. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/je/jEY1_Ja12f0j5MlctJL8I8I4MAtnbig_Nuzpy2S03Vw.cache +0 -0
  197. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/je/jeTqB-EpQJ6XeRKRDtKI7WzBLFHF_Xj5prMk1uk_8aE.cache +0 -0
  198. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/jo/joAnSkwSb88-8ggnduTv2_ZOUHBJhCuy3xSKZ9SaECw.cache +0 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{m4/m4Jwf1i5VG-EHPtNhI8Yoi_z6yASkrjhcao_49rtV6Q.cache → kB/Kb1F1CH5FzDifllrWhl5DIlCL5Lf4gQ0FVKJG8xzJAA.cache} +0 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{im/imN-p0bmcsuXhuS82MogWf4MJS8jhawj1tyj87Wh7w4.cache → kB/kB-VpOUPmfE1eMs46eZ5zEeNQ4j6uO6PWqgbtUsAf94.cache} +0 -0
  201. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kU/kUcCGYVAtbvf-zOn91r5ESgM-55KQ1q0c6s5-RRMpfQ.cache +0 -0
  202. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kk/kk1ok33rX_D4vmhH4b5d5ISIxyiyDgEA91zKzSfJHK8.cache +1 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kr/krGzN8SrJ50uurn1vYyrf9JXNsYGl5ss8OqQj4Ba7xY.cache +0 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/lJ/lJpAD9g_PWVbtoOtkBjm3xhptNhBKhdPqrj6sUEzqqo.cache +1 -0
  205. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/lL/lL28OuCDnz731Jfx-mIbN-2brsXERyfj38LeFEXlq88.cache +1 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/mU/MUGyvPRkoBl2NvdgCyy4fYnWfh7hYwIpEZ6x3RCpnXI.cache +1 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/mU/mU7SZRZaFsHI95oabaFBdWLw9tUlA_dR4rpgUk5HXmU.cache +0 -0
  208. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/mq/mqtdAB_9wuZfDqs7kN71ESasZYD57X0jQ3wKvM1oUog.cache +2 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n-/n-UngwWa4FBotfMh_OimPaDHOqPW1HaiQmvbWe87A9I.cache +1 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nU/nUDBS2C4evL6NpRtT0fhGGkCoYlsq9OUuSHr0OXkR40.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -0
  212. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ne/nevnBndTrvcsUn05zNNw_iKkR49fk7rL846-hLXzLKA.cache +1 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nj/njtfz-zfIaNz7b0H3Ov2PIQegunwQLIkJ-vXTcTInHg.cache +1 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -0
  215. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/o0/o0EgzHxCStDCgElNrEszvetCP_eBTwXXZukTCkPWY_8.cache +1 -0
  216. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/oE/oEjOSlhvUB-Jn6m5vkLu_rKDkOA68TUT4clSTKuJtZ0.cache +1 -0
  217. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/oF/oF8zthjRwHO21y5MBnNAnn3_dFAOoPJs05S7VByNjZc.cache +1 -0
  218. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/oM/oMjTf5uzoY3MFr-17etg0pjCu_THEdOGPpfF1HJs5oE.cache +1 -0
  219. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ol/olwb2ysAE13eX5jiUB-vpTovUYQlZ_G9AyI845BLAgk.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{d4/d4pAkZjiFS8y6JEOYaSOmIeq2WXZL9uTEoAnJ_MAQ5g.cache → p2/p2MZN5-6xQm9q9y7DdV0v0LIHUT4y_BUtKic0Fde7us.cache} +0 -0
  221. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/p6/p6vCExeLAgiNzDd5wn6oGm7RHzdINtY-iQmSQENxhSE.cache +0 -0
  222. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{fi/fih3ll9ThxxIBvl5TCzOgXIK_r9koq915TILOZVYs7Q.cache → p9/P9FnEn-i_KNgumeC3cLjYOshw2p_o8AyHKJWChTZjLI.cache} +0 -0
  223. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/p9/p9_yeAgrhxQwx7MVByVX9wM72t322_8Lfoy0u8X8YQE.cache +1 -0
  224. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{L9/L94C_YNuGgZnHuFPbrhVxbFGELb9EJnHRPpyGA1kkR4.cache → pF/pF-1Zv1PgDmiYVLDB2thWJcRGMIGV4qly1fVo-PQvUM.cache} +0 -0
  225. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pG/pGvMcIrGB372V7gRcKE9mK3h_oIjGgh_1_9qQfN8n_w.cache +1 -0
  226. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/py/pY920Z5O-nfQPiPIUWA7-6ApCZVbaFvpzyTQTsEbLsw.cache +1 -0
  227. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/py/py3jIufVWsxcCQaYcgB1Lwdko7ZkpC3n97h5b46VuvQ.cache +1 -0
  228. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pz/pzZkbfvO4y9l_IM_juA3pzNzq9C1B0mk_syazAVeHQg.cache +1 -0
  229. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Na/NaeYk2LRfou0RaBOcBr3VGORx5HcB5yuOBr_Qzm1TYo.cache → qK/qKHCNocNC6XYLXA1UyMf0WRcEc2TeTcjuBaefwfKMcI.cache} +0 -0
  230. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/rG/rGIO4f4NG6xEQnYBGPbpF4n8yk1W7ZfO3hqa0dEHmLo.cache +1 -0
  231. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/rH/rHs612ez3doXZ8WBDeNRRSUtfuvTG0Ho6D6GwgZv5tw.cache +0 -0
  232. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/rU/rUlNmhHpp4y6Jhf8Q_ha_JsQdshzczk5bUGup85zpTI.cache +1 -0
  233. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{5g/5GdeGYB1uP6c5I5Kstk9gTvdg6cyewEv-4JmbqPgEtA.cache → rd/rdIaI3rkF0lnWrNmvReJijv7Q-xSSln0PLqtrpylfuE.cache} +0 -0
  234. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/rp/RpzDLhwRegZdJf4npP6YNfZxC5ambzjG7cRUuwgMxJM.cache +0 -0
  235. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/rp/rpQI_nY_vdDBc8k6PBMcou8Ri8cakZEv7eM0PUD9Ubg.cache +1 -0
  236. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sW/sWOWhjlR2D9AbeGciPX1Y-uy8l9utiXQNJ6MtXCW_nk.cache +1 -0
  237. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sY/sYegBCVPlqCh6X_fm0rbqk3nTllYY4xblUQZ0fA7N0o.cache +0 -0
  238. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sZ/sZKaOceUIVFSRRWv0yXdGUSxIa142uIq6jaOVQW590I.cache +1 -0
  239. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/t0/t0JH-FWfseN5ZjDwQ45g2sPBnfhlgqe9GDPlx1sK0Xo.cache +0 -0
  240. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/t9/t9Ar4uruNGmfmlCDLByCjzuwQXj-76uX9i-ScfVVkWA.cache +1 -0
  241. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tK/tKzz1mNPhHtxW4dy6AqOSt7ifov9v4ykwLlbpxHU-iA.cache +0 -0
  242. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tX/tXb0SQhFH0v0tI7woXm9Ct9V416Thm3aj3MmAI3NW9w.cache +0 -0
  243. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tX/txzK5kQL3q0A7oulxglv8jH09EiLPkyF-9FyRPYWYG0.cache +1 -0
  244. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tp/tpZaIW6Ih1pnXctwZaLgpCwsJ4kY7M9UJHGmLi7hinQ.cache +1 -0
  245. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ty/ty9Fu-9m1W-mmDDLM0QsKGpuFqj-QY9_qIkWSklZNbU.cache +0 -0
  246. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tz/TZ-Py_VxEDGM2E03VH3flvYhVfUW6xVaeXjbwef8_0U.cache +0 -0
  247. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Sj/SjeOAKHEorC6kpUFQfWnACUZJ9YDF1LnzhEbKRC4waE.cache → tz/tZou1Stdl7keg6OD4kYBNMEyQgYJ1pBlUPywrwbJZjc.cache} +0 -0
  248. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tz/tz3He_xX-9OLyeJgaPEOMHZIz5_QCKj3qJTCX-t_9u0.cache +1 -0
  249. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/uQ/uQKlqxcWVQaJJcRUhu9S_eqtrGvn66HgWFnk8s1UOQU.cache +0 -0
  250. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/uz/uzBrkGXl4bwF72GZz5dHl_Nrzd5irAaXYY_koga2qco.cache +1 -0
  251. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/v8/v80GQvmTpHABcUPWlvBv_BjJ0qJIGbSsYIE89C4GWVk.cache +0 -0
  252. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/vN/vNbbvokITS4NhARer-ZfjY2kHXWKaNXiNsgzZqtTTyw.cache +0 -0
  253. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/v_/v_ZnrKtSkRevki3NTHMv4zRwFLilNMtCCcDcGU6CdfQ.cache +0 -0
  254. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wD/wDH0ecNRxPSq3AZ4E7cFR3toUD-Sh__LdDzO7P4-VWM.cache +0 -0
  255. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wG/wG00ISKls9xr1NkFPsTmgI0aTtBEdntAP825VBsph5c.cache +1 -0
  256. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wH/wHciDZObgJWKee0096pyHijl35RqoM0rNZpTeflggqo.cache +0 -0
  257. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ww/wwDW3gmSd4DjB0nJTFJmqcEySfCpMb3PI3i8ELK8vS4.cache +1 -0
  258. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/xG/xGJAVHPpwrvc1Rdz-uTHlTh1AIHVxavAbTdSegFpzPI.cache +0 -0
  259. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/xO/xOOoYH5qILp7ImsqdRA-117lB_i97ItWxkO4asOibbk.cache +0 -0
  260. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/xi/xik1Bc0dN3JJCURgegN-NcdT_XSk3pH3mN1I-qPC5sU.cache +1 -0
  261. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yF/yFipXLZ9XUoh48oqvsSyVxhQ5F-uLZ7nfokHXYp7G-I.cache +1 -0
  262. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{HV/HVZV8JQY36A0PHkgtG4MrMTRG4uVurRzf9cjz1knRqo.cache → yo/yoCsC0HedTan3mPwvMWfQamV8uyncrkKfMkorLUiwxw.cache} +0 -0
  263. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zN/zNEwdSVT6HkEJqb4QzFcHp0Oycp_YODM9lqzLtftjhc.cache +1 -0
  264. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/{Pa/PaIjQjZY0mezKK66bf6YwHHo2HsJn8hoFBh3E8hmgzU.cache → zV/zVz9P9TDbL7ZJ4W_X_9a3FM4MkjuoOElnjH0wzrmcL8.cache} +0 -0
  265. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zZ/zZpuaUWDFAy891of6fdlATwd6ub_du1TOwIzow_5r6s.cache +0 -0
  266. data/spec/dummy/tmp/development_secret.txt +1 -1
  267. data/spec/redis_web_manager_action_spec.rb +1 -1
  268. data/spec/redis_web_manager_connection_spec.rb +1 -1
  269. data/spec/redis_web_manager_data_spec.rb +1 -1
  270. data/spec/redis_web_manager_info_spec.rb +1 -1
  271. data/spec/redis_web_manager_spec.rb +15 -10
  272. data/spec/routing/actions_controller_spec.rb +10 -6
  273. data/spec/routing/clients_controller_spec.rb +6 -2
  274. data/spec/routing/configuration_controller_spec.rb +6 -2
  275. data/spec/routing/dashboard_controller_spec.rb +6 -2
  276. data/spec/routing/keys_controller_spec.rb +14 -10
  277. data/spec/spec_helper.rb +1 -1
  278. metadata +484 -242
  279. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0S/0S9S32Fw7-QdZoSmBqPHz-Z4ecN6I_L93wEVvX6HycI.cache +0 -1
  280. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0_/0_YBRWXH5oiyIqtDNpRTeojqfk0-wD9uIfvL4_mDDsM.cache +0 -1
  281. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0o/0oxmd1ppgprdBQf6YWLIpw4nyxDLdJDyuYFbN92HMmM.cache +0 -1
  282. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1G/1GTRfJJJtOSgIFFmCOEmRJt3JcC7Md-J9vxvsmMSI0E.cache +0 -1
  283. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1O/1O7yJExgkaYRAYL_RpyjqJ_3EZifQbeEsIUnEEwU9fs.cache +0 -0
  284. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1w/1wAFs1zH2GCSsR6v9tbaLgWO4mBymE7VvHO90m8Bx0s.cache +0 -3
  285. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2v/2vP1z0fhL4AMdjv19xqbZYIz-pAK2TyOUJYLKDR_cto.cache +0 -1
  286. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6h/6hE3qxUGEMXpsdfnUdkZrPD5sGS15vhb2nQAvFYP9QY.cache +0 -1
  287. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7e/7eeWH_tKhBN_yWZrAHsFb1kpc8XdDdfr1FUc5rQNzjo.cache +0 -2
  288. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/9q/9qsKfcEFPjg2iunvDTMHV3wvvTaCAxGddTXYl598SYY.cache +0 -0
  289. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/BY/BYO6tCMPJ2vgCwmidYdGBiUabMhHSmpWCuTkKw1vhds.cache +0 -2
  290. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Cv/Cvb-GdlCzj8SzsrpKYgY3fZxNRfsuPiecPZuvmXRZXU.cache +0 -1
  291. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/D2/D2HMvbLxK-XGS_U7UyfBz9ByPtjBrSrmZVCnsNBkOmY.cache +0 -0
  292. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Dh/DhN8S1LwG1IgbcgsiWObB2wpcP-CUgxkKn_SePGw8AI.cache +0 -2
  293. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/DoKxMir75-bMuag3jw_VVRGeVTZmgrb7QczdfNeYpP4.cache +0 -0
  294. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/E6/E6BofV6tbfJuWElbm-212vq-nDZfAqf1I7t0Tppn1t8.cache +0 -0
  295. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EB/EBTP_pHOp2rZkHo8UXTRTJbgRMbbWWAamL0B24og0Ao.cache +0 -1
  296. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EC/ECHT0u3dUQ4UxM_3yosBdMUoWyQD-rJIBC2LNM7F7mo.cache +0 -2
  297. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ew/Ewi43qbgI3gdSD-NoHYTxLMFJApni04Z2fkRIqL-OVw.cache +0 -0
  298. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/FG/FGfuFH7Sr7ixLhhtL1lASFBVRVOOVP61TYuc_1r8a9Y.cache +0 -0
  299. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/GB/GB-HBlwZfC_etWI2E3X9TK2rDclNEXHvlwvdLeAQ18M.cache +0 -2
  300. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/GJ/GJZrwqwiQ6s7RzQb7OHkWZXMWjWxO2MnlEdChKzm0qQ.cache +0 -3
  301. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/H5/H542z--rBbpI6qpJ0FFaKMW6RLpaKExY5scpOI8mnK0.cache +0 -2
  302. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/HD/HDWwNS2WhJyMTwRMWoMB-jGhShAu9kbSgRd7bf34-B0.cache +0 -0
  303. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Hm/Hmzsu5uLrvf4bSJiRQ43H0StXA-l0CHlddJ3iffvH1w.cache +0 -2
  304. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/IF/IFr3WF0nIRf0uhfWuLyMan7ZEk-2AeSUMYv6Xzk2gd8.cache +0 -0
  305. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/J1/J1DFrnuiOuZk9nZKBZ3QGr_uf-Ap5QBMaxsQ8pzS-Pk.cache +0 -0
  306. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Lv/lvkDqd44amTKZ1X60yERq0Dk696w2FKoixmWpbYaGdE.cache +0 -0
  307. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Mq/Mqjgap3zY1Jw-08ZQ-aYJ0zCSfnzFvtC517Ba7IUB8Q.cache +0 -1
  308. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Nc/NcW_hUhpnz9mU2C8iZ-FAFyn9uQ1eZLt_Fin7Lkj_hc.cache +0 -1
  309. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Nu/Nu4PWycQBuJty51RE6hMsCDxfoEK0oXiLxxMVoXrxBk.cache +0 -1
  310. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OU/OULQg3jL6IuFg61oaHv6llXVLd05KMJ0iwvGABNCDUc.cache +0 -0
  311. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Qs/QsbD7M0Zxweb_q3m94X_l13mJj2jOzFe6WGghZtsevk.cache +0 -2
  312. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RJ/RJHy20mpyfv0cgvju4KExPU2JwKYNBR54rfGcAM_Yi8.cache +0 -1
  313. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RR/RRWxs65mHhne0BbQ7S16DFFv2PPJScmDdwK6CiWt0Fo.cache +0 -1
  314. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ro/Ro_lYbjhQH_dwCkDiDYOYqViY3uTU3muXg3eNptwQOw.cache +0 -1
  315. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Rq/RqAElyxAkwXeghaGXFrTaWJa-3TgrNUTPMqgiSGiz58.cache +0 -0
  316. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Rw/Rwoa1O92ek_CiZeWN2fEhw5QTyjdM8gKVJbV-aQS2wc.cache +0 -1
  317. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/SH/SHFj15T4Sc9m6rdHBzbkVr5sRZqh9c8Kb-OQoU4Vfbc.cache +0 -0
  318. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/TW/TWMHVGHDOfE2jf6BA7CFPjpZUTTh7zwEaahDcq2UqHI.cache +0 -0
  319. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/UR/URt1vfvS_-zgNoyOTXann0MEauS4KBLP_3POXLr1CJA.cache +0 -1
  320. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Uo/Uorr-rfn1Et6lS5zxA5h-WM8Rghz1-8TBzpkuA6Sod0.cache +0 -1
  321. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/WL/WL_gjOOD56GysPVYKQbve3ud0RflSvlQN-k15uyRsBQ.cache +0 -2
  322. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XM/XM6MmmhEhDrNxDxgByWwAVBAn4JxkFEavPY-zrhRLGs.cache +0 -0
  323. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Y4/Y42Ku_X2d8w7-c4qQbO0RWqLIrF92H3bStzPu3sYGO8.cache +0 -0
  324. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Yz/YzXvpmE9Ka9mFgplasa5njZ1TOVbCv0ttAiBgRMsrgI.cache +0 -0
  325. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ZJ/ZJC18DQ3P90lga7JoCFuwcAXk86XJuRY5W1rMo2adP4.cache +0 -1
  326. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_R/_RDkJXUh_h2bxi1GtquRZO5TV_dR2AkrbCl8LwKeYZQ.cache +0 -0
  327. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_u/_ua-Dwq0BYBO_XvBV8p19_NXwV1Tmbhxc26Y-zMM6e8.cache +0 -2
  328. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/a4/a4quthUAhg89YCsP7vvEgPVUX5W2CbwMR9iaZHSVwtA.cache +0 -1
  329. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aM/aMyeQMup7zIZVSBWp0IibDwtHbQ5rSbds7VqfeKGLos.cache +0 -0
  330. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bp/bplSyZa3eMBpzHaH0r-LCL8WIrOaiGYrL8O9O6VWqRQ.cache +0 -2
  331. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/c2/c2lm3MBo-qFmn1j8VYCj1d19RFSbWJAqwQI2gCNNW78.cache +0 -1
  332. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/c8/c8FCa9hBajsyC1EaLREGdc8-Sbd5kc1JXFNbG-jbHlI.cache +0 -1
  333. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/d3/d3vwj-sIPILn4SIgLivR8AO2z8XTjoGBDdQZerZamO0.cache +0 -1
  334. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dD/dDq6eq_dej7DSwUNGSosv2wA5k4jVt2bvg5AwmN3PGM.cache +0 -1
  335. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dK/dKqZfAWIrsbo7kTTnZhRLRnWwaHh3-6Sayn5C5j-Sc0.cache +0 -2
  336. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eJ/eJDcHiaKw-EGqAVhD7SeIvXRMInPQX9ax_StQpcMlZI.cache +0 -1
  337. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/eu/euG-GCObIbpivXPiarOu8TNJ4UATU0C4vAnqDlYshnU.cache +0 -1
  338. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hI/hIC275ffXuQ09i5-MxgaxrpwFaCd7Iea-XySVQ9SCxo.cache +0 -2
  339. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/i-/i-f6nWMFV-Kj9oCcmk0TA4C97OoS9bfuVzMD_BcPqcw.cache +0 -0
  340. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/i0/i0lJYzjx3QAKYSr63U6q62fH13uptxw-g5o4goI9jGM.cache +0 -1
  341. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/i6/i6UciFvZsXvpdDwsrtTO9bDaicut7WD7N7l7_kNToRM.cache +0 -1
  342. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iY/iYWglOhRcQsIGcDgy0lVp3OkMeBZvRLW4RrSC8YCUvg.cache +0 -0
  343. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/jo/joqrXPTZ77Kttfg6jCLQ1AaWlrpCQhEFNrp1j5VGOZo.cache +0 -3
  344. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kX/kXM43j9M1Np_gBQ_JTuOQ-ouwzllb-1hdA2ZCDF9P2A.cache +0 -1
  345. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pW/pWTL769TgmQALSGoW0NVIUc1pnpShFziH54vgCJCfrk.cache +0 -1
  346. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pq/pqBoBVFoTy-MKb5DwEKPvOcCthoRX_VvLHUJGEYae_A.cache +0 -1
  347. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ps/psadNQUG21sv5yxMZaPoTwQag3LZoiVXlbZiOCFKf3k.cache +0 -1
  348. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/qz/qzsc4ncJtGSRKKNmWlLrrcWHJAo6tKsLqGgfjINN5Z0.cache +0 -0
  349. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tB/tBQnQTdNL5rv0EjiLP-Qs8Uk_eminNHeLFqCDpL2Vvk.cache +0 -2
  350. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/tM/tMxr0MmCgtIcTqlw0QoK1loRFOjBLU7W7oaftRCu4dA.cache +0 -2
  351. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/u7/u734Z0S9rUqAqKA1U28bonSjr4Um60dUSViFzPMcEzE.cache +0 -0
  352. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/vX/vXvIA0ABggiI7i_R34DuqOmusU3Tbpnj1ttEXCU7feA.cache +0 -0
  353. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/vo/voj4ELiBu6fQQovl3Tx8xE1KOD_XXbfKFEOZ3PXLE2Q.cache +0 -2
  354. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/vw/vwFN15yJrS0eSjeWb-8ISshgZ27sQfZenZJLQeDxskk.cache +0 -0
  355. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wS/wS59wgWHAsNICs7U0VxdRyupFtzOPBr_bYYMWnXLZuw.cache +0 -2
  356. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wS/wSwCoG0oiDRAE24bIBYszjMVcK71lTnfTdEB85icYho.cache +0 -1
  357. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wi/wizBtaWpz_iDHqDu9C4yv9FusCfKFIO1xIBPAx_1EEc.cache +0 -0
  358. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yA/yA__sMqRvEYOU_PSr1vBlb6Zzd0dDOl1TA-G-ycUTyc.cache +0 -2
  359. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yg/yg5i0W0skD4VlWbdTxXTrdXlY_IWMjyRWD8I654aKRU.cache +0 -0
  360. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/z8/z8ghD_aI0C2FbDNEbfELNq6ysp1Gqp3y9GdAUNOUhI4.cache +0 -3
  361. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zL/zLenHVAlNaTa69993_FT_3LTO5U_wN0ZRxtl0xYc1YA.cache +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86bc056117baa21f9a5250ab975091e3720b41dd605c4b30fb0b912cd369355b
4
- data.tar.gz: 34cd1179bed9486e1360c31aee643e73ec33fa152df4aff66e8f73e56657189b
3
+ metadata.gz: a2c1a155b9755c60298027f28029841cdcf6e347fb6b4be7a959c62922a5ccf6
4
+ data.tar.gz: 203f63d9ce3d1284825cc55d428bf82430076e3858078849768651b21ab99ad8
5
5
  SHA512:
6
- metadata.gz: '09ed0be81f6301190f52985ce7a3aac07f6274804804ad3032a68f4dc423ed267c632e1e7d31518f0930d914b546e28393170b1909864b9df6908ab9f165a09d'
7
- data.tar.gz: 250051b8e37bc16dbc374472de6bcec4a86a4bc6eae7004f682edf689036bea291eb25db803b4d3d1c54ec87d6cb666b5f7d88e3b629237909444bc4d74158bb
6
+ metadata.gz: c9ba53415f30c8374fb7bbdaa2a0f3ee6437dda8ecfc7986584613b61603eb1a87bd0c742e9bfa47b524b798ec239cf524c0f0769d70af091417fd26838d892c
7
+ data.tar.gz: c224c72c7e3b3d5b006a6009de3e5ee4a2f02914da2059376a58bae3e0b1a8e112a85a74f8d6e1262abb465973c7b54161bc1f616e8fc48e8bd4201a2ea5b55e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- redis_web_manager (0.1.9)
4
+ redis_web_manager (0.2.1)
5
5
  pagy (~> 3.7)
6
6
  rails (>= 5.2, < 7)
7
7
  redis (~> 4.1.0)
@@ -94,7 +94,7 @@ GEM
94
94
  mini_portile2 (2.4.0)
95
95
  minitest (5.14.0)
96
96
  nio4r (2.5.2)
97
- nokogiri (1.10.8)
97
+ nokogiri (1.10.9)
98
98
  mini_portile2 (~> 2.4.0)
99
99
  pagy (3.7.3)
100
100
  rack (2.2.2)
@@ -169,7 +169,7 @@ GEM
169
169
  websocket-driver (0.7.1)
170
170
  websocket-extensions (>= 0.1.0)
171
171
  websocket-extensions (0.1.4)
172
- zeitwerk (2.2.2)
172
+ zeitwerk (2.3.0)
173
173
 
174
174
  PLATFORMS
175
175
  ruby
data/README.md CHANGED
@@ -56,7 +56,10 @@ You can configure RedisWebManager:
56
56
  # initializers/redis_web_manager.rb
57
57
 
58
58
  RedisWebManager.configure do |config|
59
- config.redis = Redis.new(db: 1) # Default Redis.new (Instance of Redis)
59
+ config.redises = {
60
+ default: Redis.new(db: 1),
61
+ production: Redis.new(url: 'XXX')
62
+ } # Default { default: Redis.new } (Hash with instance(s) of Redis)
60
63
  config.lifespan = 2.days # Default 15.days (Lifespan of each keys for dashboard)
61
64
  config.authenticate = proc {
62
65
  authenticate_or_request_with_http_basic do |username, password|
@@ -70,10 +73,19 @@ end
70
73
 
71
74
  In order to have data on your dashboard you must collect the data like this:
72
75
  ```ruby
73
- data = RedisWebManager::Data.new
76
+ data = RedisWebManager::Data.new(:default)
74
77
  data.perform
75
78
  ```
76
79
 
80
+ or
81
+
82
+ ```ruby
83
+ RedisWebManager.redises.keys.each do |instance|
84
+ data = RedisWebManager::Data.new(instance)
85
+ data.perform
86
+ end
87
+ ```
88
+
77
89
  If you are using a system to run background tasks in your application (like Sidekiq, Sucker Punch or ActiveJob), you can write your own background task to update the dashboard statistics.
78
90
 
79
91
  Sidekiq exemple:
@@ -88,6 +100,21 @@ class DashboardWorker
88
100
  end
89
101
  ```
90
102
 
103
+ or
104
+
105
+ ```ruby
106
+ class DashboardWorker
107
+ include Sidekiq::Worker
108
+
109
+ def perform
110
+ RedisWebManager.redises.keys.each do |instance|
111
+ data = RedisWebManager::Data.new(instance)
112
+ data.perform
113
+ end
114
+ end
115
+ end
116
+ ```
117
+
91
118
  Sucker Punch exemple:
92
119
  ```ruby
93
120
  class DashboardJob
@@ -100,11 +127,26 @@ class DashboardJob
100
127
  end
101
128
  ```
102
129
 
130
+ or
131
+
132
+ ```ruby
133
+ class DashboardJob
134
+ include SuckerPunch::Job
135
+
136
+ def perform
137
+ RedisWebManager.redises.keys.each do |instance|
138
+ data = RedisWebManager::Data.new(instance)
139
+ data.perform
140
+ end
141
+ end
142
+ end
143
+ ```
144
+
145
+
103
146
 
104
147
 
105
148
  ## Todo
106
149
  * [ ] Add graph for most used commands
107
- * [ ] Manage multiple redis instances
108
150
  * [ ] Real time chart update
109
151
  * [ ] Alert system (ex: triggered when memory is peaking)
110
152
  * [ ] Command line interface to manage your redis database
@@ -5,6 +5,9 @@ module RedisWebManager
5
5
  protect_from_forgery with: :exception
6
6
 
7
7
  before_action :authenticated?, if: :authenticate
8
+ before_action :valid_instance?
9
+ helper_method :redises
10
+ helper_method :instance
8
11
 
9
12
  private
10
13
 
@@ -17,19 +20,36 @@ module RedisWebManager
17
20
  end
18
21
 
19
22
  def info
20
- @info ||= RedisWebManager::Info.new
23
+ @info ||= RedisWebManager::Info.new(instance)
21
24
  end
22
25
 
23
26
  def connection
24
- @connection ||= RedisWebManager::Connection.new
27
+ @connection ||= RedisWebManager::Connection.new(instance)
25
28
  end
26
29
 
27
30
  def action
28
- @action ||= RedisWebManager::Action.new
31
+ @action ||= RedisWebManager::Action.new(instance)
29
32
  end
30
33
 
31
34
  def data
32
- @data ||= RedisWebManager::Data.new
35
+ @data ||= RedisWebManager::Data.new(instance)
36
+ end
37
+
38
+ def default_url_options(options = {})
39
+ options.merge(instance: instance)
40
+ end
41
+
42
+ def valid_instance?
43
+ default_instance = redises.keys[0]
44
+ redirect_to dashboard_url(instance: default_instance) if instance.nil?
45
+ end
46
+
47
+ def instance
48
+ @instance ||= params[:instance].presence
49
+ end
50
+
51
+ def redises
52
+ @redises ||= RedisWebManager.redises
33
53
  end
34
54
  end
35
55
  end
@@ -1,13 +1,26 @@
1
1
  <nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm">
2
2
  <div class="container">
3
- <%= link_to 'Redis Web Manager', root_path, title: 'Redis Web Manager', class: 'navbar-brand' %>
3
+ <%= link_to 'Redis Web Manager', dashboard_path, title: 'Redis Web Manager', class: 'navbar-brand' %>
4
4
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Redis Web Manager">
5
5
  <span class="navbar-toggler-icon"></span>
6
6
  </button>
7
7
  <div class="collapse navbar-collapse" id="navbarSupportedContent">
8
8
  <ul class="navbar-nav mr-auto">
9
+ <li class="nav-item dropdown mr-3">
10
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
11
+ <%= instance.humanize.capitalize %>
12
+ </a>
13
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
14
+ <% redises.each do |k, v| %>
15
+ <%= link_to v.connection[:id],
16
+ dashboard_path(instance: k),
17
+ title: k,
18
+ class: instance == k.to_s ? 'dropdown-item active' : 'dropdown-item' %>
19
+ <% end %>
20
+ </div>
21
+ </li>
9
22
  <li class="nav-item">
10
- <%= link_to 'Dashboard', root_path, title: 'Dashboard', class: 'nav-link' %>
23
+ <%= link_to 'Dashboard', dashboard_path, title: 'Dashboard', class: 'nav-link' %>
11
24
  </li>
12
25
  <li class="nav-item">
13
26
  <%= link_to 'Clients', clients_path, title: 'Clients', class: 'nav-link' %>
data/config/routes.rb CHANGED
@@ -1,26 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  RedisWebManager::Engine.routes.draw do
4
- # Configuration
5
- get :configuration, to: 'configuration#index'
4
+ redises_keys = RedisWebManager.redises.keys
5
+ scope ':instance', instance: /#{redises_keys.join('|')}/ do
6
+ # Configuration
7
+ get :configuration, to: 'configuration#index'
6
8
 
7
- # Information
8
- get :information, to: 'information#index'
9
+ # Information
10
+ get :information, to: 'information#index'
9
11
 
10
- # Keys
11
- get 'keys' => 'keys#index'
12
- get 'key' => 'keys#show'
13
- get 'key/edit' => 'keys#edit', as: :edit_key
14
- put 'keys' => 'keys#update', as: :update_key
15
- delete 'keys' => 'keys#destroy', as: :destroy_key
12
+ # Dashboard
13
+ get :dashboard, to: 'dashboard#index'
16
14
 
17
- # Clients
18
- get :clients, to: 'clients#index'
15
+ # Keys
16
+ get 'keys' => 'keys#index'
17
+ get 'key' => 'keys#show'
18
+ get 'key/edit' => 'keys#edit', as: :edit_key
19
+ put 'keys' => 'keys#update', as: :update_key
20
+ delete 'keys' => 'keys#destroy', as: :destroy_key
19
21
 
20
- # Actions
21
- delete :reset, to: 'actions#reset'
22
- delete :flushdb, to: 'actions#flushdb'
23
- delete :flushall, to: 'actions#flushall'
22
+ # Clients
23
+ get :clients, to: 'clients#index'
24
+
25
+ # Actions
26
+ delete :reset, to: 'actions#reset'
27
+ delete :flushdb, to: 'actions#flushdb'
28
+ delete :flushall, to: 'actions#flushall'
29
+ end
24
30
 
25
31
  # Root
26
32
  root 'dashboard#index'
@@ -9,7 +9,7 @@ require 'redis_web_manager/data'
9
9
  require 'redis'
10
10
 
11
11
  module RedisWebManager
12
- mattr_accessor :redis, default: ::Redis.new
12
+ mattr_accessor :redises, default: { default: ::Redis.new }
13
13
  mattr_accessor :lifespan, default: 15.days
14
14
  mattr_accessor :authenticate, default: nil
15
15
 
@@ -22,14 +22,19 @@ module RedisWebManager
22
22
  private
23
23
 
24
24
  def check_attrs
25
- unless redis.is_a?(::Redis)
26
- raise ArgumentError, 'Invalid Redis instance, use like that Redis.new'
25
+ unless redises.is_a?(::Hash)
26
+ raise(ArgumentError, 'Invalid redises hash, use like that { test: Redis.new }')
27
+ end
28
+ redises.each do |k, v|
29
+ unless v.is_a?(::Redis)
30
+ raise(ArgumentError, "Invalid Redis instance for #{k}, use like that Redis.new")
31
+ end
27
32
  end
28
33
  unless lifespan.is_a?(::ActiveSupport::Duration)
29
- raise ArgumentError, 'Invalid lifespan, use like that 15.days, 15.minutes etc'
34
+ raise(ArgumentError, 'Invalid lifespan, use like that 15.days, 15.minutes etc')
30
35
  end
31
36
  valid = lifespan.to_i.positive?
32
- raise ArgumentError, 'Invalid lifespan, value must be greater than 0' unless valid
37
+ raise(ArgumentError, 'Invalid lifespan, value must be greater than 0') unless valid
33
38
  end
34
39
  end
35
40
  end
@@ -2,10 +2,20 @@
2
2
 
3
3
  module RedisWebManager
4
4
  class Base
5
+ attr_accessor :instance
6
+
7
+ def initialize(instance)
8
+ @instance = instance || redises.keys[0]
9
+ end
10
+
5
11
  private
6
12
 
7
13
  def redis
8
- @redis ||= RedisWebManager.redis
14
+ @redis ||= redises[instance.to_sym]
15
+ end
16
+
17
+ def redises
18
+ @redises ||= RedisWebManager.redises
9
19
  end
10
20
  end
11
21
  end
@@ -11,7 +11,7 @@ module RedisWebManager
11
11
  def perform
12
12
  now = Time.now.to_i
13
13
  seconds = (now + lifespan.to_i) - now
14
- redis.setex("#{BASE}_#{now}", seconds, serialize.to_json)
14
+ redis.setex("#{instance}_#{BASE}_#{now}", seconds, serialize.to_json)
15
15
  end
16
16
 
17
17
  def flush
@@ -21,7 +21,7 @@ module RedisWebManager
21
21
  private
22
22
 
23
23
  def data
24
- @data ||= redis.scan_each(match: "#{BASE}_*").to_a
24
+ @data ||= redis.scan_each(match: "#{instance}_#{BASE}_*").to_a
25
25
  end
26
26
 
27
27
  def lifespan
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RedisWebManager
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
@@ -5,23 +5,27 @@ require 'rails_helper'
5
5
  RSpec.describe RedisWebManager::ActionsController, type: :controller do
6
6
  routes { RedisWebManager::Engine.routes }
7
7
 
8
+ let(:default) do
9
+ RedisWebManager.redises.keys[0]
10
+ end
11
+
8
12
  describe 'DELETE #reset' do
9
13
  it 'returns a success response' do
10
- delete :reset
14
+ delete :reset, params: { instance: default.to_s }
11
15
  expect(response).to be_redirect
12
16
  end
13
17
  end
14
18
 
15
19
  describe 'DELETE #flushdb' do
16
20
  it 'returns a success response' do
17
- delete :flushdb
21
+ delete :flushdb, params: { instance: default.to_s }
18
22
  expect(response).to be_redirect
19
23
  end
20
24
  end
21
25
 
22
26
  describe 'DELETE #flushall' do
23
27
  it 'returns a success response' do
24
- delete :flushall
28
+ delete :flushall, params: { instance: default.to_s }
25
29
  expect(response).to be_redirect
26
30
  end
27
31
  end
@@ -5,9 +5,13 @@ require 'rails_helper'
5
5
  RSpec.describe RedisWebManager::ClientsController, type: :controller do
6
6
  routes { RedisWebManager::Engine.routes }
7
7
 
8
+ let(:default) do
9
+ RedisWebManager.redises.keys[0]
10
+ end
11
+
8
12
  describe 'GET #index' do
9
13
  it 'returns a success response' do
10
- get :index
14
+ get :index, params: { instance: default.to_s }
11
15
  expect(response).to be_successful
12
16
  end
13
17
  end
@@ -5,9 +5,13 @@ require 'rails_helper'
5
5
  RSpec.describe RedisWebManager::ConfigurationController, type: :controller do
6
6
  routes { RedisWebManager::Engine.routes }
7
7
 
8
+ let(:default) do
9
+ RedisWebManager.redises.keys[0]
10
+ end
11
+
8
12
  describe 'GET #index' do
9
13
  it 'returns a success response' do
10
- get :index
14
+ get :index, params: { instance: default.to_s }
11
15
  expect(response).to be_successful
12
16
  end
13
17
  end
@@ -5,9 +5,13 @@ require 'rails_helper'
5
5
  RSpec.describe RedisWebManager::DashboardController, type: :controller do
6
6
  routes { RedisWebManager::Engine.routes }
7
7
 
8
+ let(:default) do
9
+ RedisWebManager.redises.keys[0]
10
+ end
11
+
8
12
  describe 'GET #index' do
9
13
  it 'returns a success response' do
10
- get :index
14
+ get :index, params: { instance: default.to_s }
11
15
  expect(response).to be_successful
12
16
  end
13
17
  end
@@ -5,9 +5,13 @@ require 'rails_helper'
5
5
  RSpec.describe RedisWebManager::InformationController, type: :controller do
6
6
  routes { RedisWebManager::Engine.routes }
7
7
 
8
+ let(:default) do
9
+ RedisWebManager.redises.keys[0]
10
+ end
11
+
8
12
  describe 'GET #index' do
9
13
  it 'returns a success response' do
10
- get :index
14
+ get :index, params: { instance: default.to_s }
11
15
  expect(response).to be_successful
12
16
  end
13
17
  end
@@ -8,19 +8,23 @@ RSpec.describe RedisWebManager::KeysController, type: :controller do
8
8
  ::Redis.new
9
9
  end
10
10
 
11
+ let(:default) do
12
+ RedisWebManager.redises.keys[0]
13
+ end
14
+
11
15
  describe 'GET #index' do
12
16
  it 'returns a success response' do
13
- get :index
17
+ get :index, params: { instance: default.to_s }
14
18
  expect(response).to be_successful
15
- get :index, params: { query: 'test' }
19
+ get :index, params: { query: 'test', instance: default.to_s }
16
20
  expect(response).to be_successful
17
- get :index, params: { type: 'string' }
21
+ get :index, params: { type: 'string', instance: default.to_s }
18
22
  expect(response).to be_successful
19
- get :index, params: { expiry: '-1' }
23
+ get :index, params: { expiry: '-1', instance: default.to_s }
20
24
  expect(response).to be_successful
21
- get :index, params: { expiry: '3600' }
25
+ get :index, params: { expiry: '3600', instance: default.to_s }
22
26
  expect(response).to be_successful
23
- get :index, params: { memory: '1000' }
27
+ get :index, params: { memory: '1000', instance: default.to_s }
24
28
  expect(response).to be_successful
25
29
  end
26
30
  end
@@ -28,7 +32,7 @@ RSpec.describe RedisWebManager::KeysController, type: :controller do
28
32
  describe 'GET #show' do
29
33
  it 'returns a success response' do
30
34
  redis.set('test', 'test')
31
- get :show, params: { key: 'test' }
35
+ get :show, params: { key: 'test', instance: default.to_s }
32
36
  expect(response).to be_successful
33
37
  end
34
38
  end
@@ -36,7 +40,7 @@ RSpec.describe RedisWebManager::KeysController, type: :controller do
36
40
  describe 'GET #edit' do
37
41
  it 'returns a success response' do
38
42
  redis.set('test', 'test')
39
- get :edit, params: { key: 'test' }
43
+ get :edit, params: { key: 'test', instance: default.to_s }
40
44
  expect(response).to be_successful
41
45
  end
42
46
  end
@@ -44,7 +48,7 @@ RSpec.describe RedisWebManager::KeysController, type: :controller do
44
48
  describe 'GET #update' do
45
49
  it 'returns a success response' do
46
50
  redis.set('test', 'test')
47
- put :update, params: { old_name: 'test', new_name: 'testtest' }
51
+ put :update, params: { old_name: 'test', new_name: 'testtest', instance: default.to_s }
48
52
  expect(response).to be_redirect
49
53
  end
50
54
  end
@@ -52,7 +56,7 @@ RSpec.describe RedisWebManager::KeysController, type: :controller do
52
56
  describe 'GET #destroy' do
53
57
  it 'returns a success response' do
54
58
  redis.set('test', 'test')
55
- delete :destroy, params: { key: 'test' }
59
+ delete :destroy, params: { key: 'test', instance: default.to_s }
56
60
  expect(response).to be_redirect
57
61
  end
58
62
  end