ceo 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (449) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +135 -0
  3. data/app/assets/stylesheets/admin/application.sass +59 -0
  4. data/app/assets/stylesheets/admin/base/forms.sass +138 -0
  5. data/app/assets/stylesheets/admin/base/layout.sass +6 -0
  6. data/app/assets/stylesheets/admin/base/lists.sass +14 -0
  7. data/app/assets/stylesheets/admin/base/scale.sass +8 -0
  8. data/app/assets/stylesheets/admin/base/svg.sass +9 -0
  9. data/app/assets/stylesheets/admin/base/tables.sass +32 -0
  10. data/app/assets/stylesheets/admin/base/type.sass +120 -0
  11. data/app/assets/stylesheets/admin/components/content.sass +13 -0
  12. data/app/assets/stylesheets/admin/components/filters.sass +145 -0
  13. data/app/assets/stylesheets/admin/components/forms.sass +5 -0
  14. data/app/assets/stylesheets/admin/components/header.sass +21 -0
  15. data/app/assets/stylesheets/admin/components/links.sass +5 -0
  16. data/app/assets/stylesheets/admin/components/nav.sass +112 -0
  17. data/app/assets/stylesheets/admin/components/notifier.sass +5 -0
  18. data/app/assets/stylesheets/admin/components/sidebar.sass +10 -0
  19. data/app/assets/stylesheets/admin/components/user.sass +11 -0
  20. data/app/assets/stylesheets/admin/generic/reset.sass +35 -0
  21. data/app/assets/stylesheets/admin/objects/avatar.sass +11 -0
  22. data/app/assets/stylesheets/admin/objects/cart.sass +12 -0
  23. data/app/assets/stylesheets/admin/objects/layout.sass +19 -0
  24. data/app/assets/stylesheets/admin/objects/lists.sass +26 -0
  25. data/app/assets/stylesheets/admin/objects/logo.sass +3 -0
  26. data/app/assets/stylesheets/admin/objects/nav.sass +38 -0
  27. data/app/assets/stylesheets/admin/objects/panels.sass +42 -0
  28. data/app/assets/stylesheets/admin/objects/search.sass +25 -0
  29. data/app/assets/stylesheets/admin/objects/tables.sass +85 -0
  30. data/app/assets/stylesheets/admin/objects/titles.sass +43 -0
  31. data/app/assets/stylesheets/admin/overrides/forms.sass +10 -0
  32. data/app/assets/stylesheets/admin/overrides/jquery-ui.sass +177 -0
  33. data/app/assets/stylesheets/admin/settings/backgrounds.sass +6 -0
  34. data/app/assets/stylesheets/admin/settings/borders.sass +14 -0
  35. data/app/assets/stylesheets/admin/settings/colors.sass +34 -0
  36. data/app/assets/stylesheets/admin/settings/forms.sass +9 -0
  37. data/app/assets/stylesheets/admin/settings/global.sass +50 -0
  38. data/app/assets/stylesheets/admin/settings/header.sass +6 -0
  39. data/app/assets/stylesheets/admin/settings/media-queries.sass +21 -0
  40. data/app/assets/stylesheets/admin/settings/tables.sass +16 -0
  41. data/app/assets/stylesheets/admin/settings/type.sass +42 -0
  42. data/app/assets/stylesheets/admin/tools/button-generator.sass +50 -0
  43. data/app/assets/stylesheets/admin/tools/clearfix.sass +5 -0
  44. data/app/assets/stylesheets/admin/tools/dynamic-text-lightness.sass +5 -0
  45. data/app/assets/stylesheets/admin/tools/ellipsize.sass +4 -0
  46. data/app/assets/stylesheets/admin/tools/greyscale.sass +16 -0
  47. data/app/assets/stylesheets/admin/tools/link-generator.sass +18 -0
  48. data/app/assets/stylesheets/admin/tools/notifier-generator.sass +27 -0
  49. data/app/assets/stylesheets/admin/tools/panel-generator.sass +13 -0
  50. data/app/assets/stylesheets/admin/tools/placeholder.sass +5 -0
  51. data/app/assets/stylesheets/admin/tools/space-generator.sass +17 -0
  52. data/app/assets/svg/admin/eye.svg +1 -0
  53. data/app/assets/svg/admin/hamburger.svg +1 -0
  54. data/app/assets/svg/admin/pencil.svg +1 -0
  55. data/app/assets/svg/admin/search.svg +1 -0
  56. data/app/controllers/admin/admin_controller.rb +18 -219
  57. data/app/controllers/admin/ceo_controller.rb +235 -0
  58. data/app/views/admin/dashboard.html.erb +0 -0
  59. data/app/views/admin/edit.html.erb +9 -4
  60. data/app/views/admin/index.html.erb +50 -47
  61. data/app/views/admin/new.html.erb +9 -5
  62. data/app/views/admin/show.html.erb +10 -6
  63. data/app/views/admin/styleguide.html.erb +779 -0
  64. data/app/views/layouts/admin/_header.html.erb +38 -0
  65. data/app/views/layouts/admin/application.html.erb +22 -0
  66. data/config/initializers/simple_form.rb +223 -0
  67. data/config/routes.rb +7 -0
  68. data/lib/ceo.rb +2 -0
  69. data/lib/ceo/engine.rb +1 -0
  70. data/lib/ceo/iterator.rb +2 -4
  71. data/lib/ceo/version.rb +1 -1
  72. data/lib/generators/admin/admin_generator.rb +4 -1
  73. data/lib/generators/admin/templates/admin_page_controller.rb.erb +3 -2
  74. data/test/ceo/authenticate_admin_test.rb +47 -0
  75. data/test/ceo/edit_apple_test.rb +3 -3
  76. data/test/ceo/index_apple_test.rb +52 -56
  77. data/test/ceo/namespaced_assets_test.rb +19 -0
  78. data/test/ceo/new_apple_test.rb +1 -1
  79. data/test/controllers/admin/oranges_controller_test.rb +21 -0
  80. data/test/dummy/app/assets/stylesheets/custom.css +3 -0
  81. data/test/dummy/app/controllers/admin/apples_controller.rb +1 -1
  82. data/test/dummy/app/controllers/admin/bananas_controller.rb +1 -1
  83. data/test/dummy/app/controllers/admin/oranges_controller.rb +7 -0
  84. data/test/dummy/app/controllers/admin/other_controller.rb +1 -1
  85. data/test/dummy/app/controllers/application_controller.rb +1 -0
  86. data/test/dummy/app/controllers/home_controller.rb +5 -0
  87. data/test/dummy/app/views/admin/apples/_form.html.erb +1 -1
  88. data/test/dummy/app/views/admin/bananas/_form.html.erb +1 -1
  89. data/test/dummy/app/views/admin/dashboard.html.erb +0 -0
  90. data/test/dummy/app/views/admin/oranges/_form.html.erb +1 -0
  91. data/test/dummy/app/views/admin/oranges/index.html.erb +1 -0
  92. data/test/dummy/app/views/home/index.html.erb +7 -0
  93. data/test/dummy/app/views/layouts/application.html.erb +1 -1
  94. data/test/dummy/config/initializers/simple_form.rb +165 -0
  95. data/test/dummy/config/locales/simple_form.en.yml +31 -0
  96. data/test/dummy/config/routes.rb +4 -0
  97. data/test/dummy/lib/templates/erb/scaffold/_form.html.erb +13 -0
  98. data/test/dummy/log/development.log +25 -0
  99. data/test/dummy/log/test.log +29749 -0
  100. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-1/-1M_pwyyGbsyeljxUSsT3Rt1Betbddr_9mOSBO_-oC0.cache +1 -0
  101. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-Y/-YNE6OzapSny_gpGHx5vNEykkNqZ_4ljcIHCNboOBIo.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-v/-vrNxEnoe8NZLRx73fD33W5Yke08zUQSjiI8ZY8E5LY.cache +1 -0
  103. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0o/0o7O5liMX_XX-mP4Y5UVeMY7MW0r6spshlVxKHoea2o.cache +0 -0
  104. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0z/0zSAa2iL_IpyvpPxlwboBp-0NpghhId6ZpuziOuRxR4.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1K/1KEUY-lGNZshn0gR1dDVHzLBvs8AWMA9M4uAs0_WAWY.cache +1 -0
  106. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1K/1knxFSqGMS9aYm_k9-3PDxj1UnlRm4tSMohZ6cRIw3E.cache +1 -0
  107. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1Q/1Q1MfPlwhWJAhFmMd9I-wvk-TuDUkaK7OMD__8ioXHk.cache +1 -0
  108. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1e/1eTGRphLGa0HF0H_F0P-TzKaLs3sOIPHt2k4MOk2eMk.cache +0 -0
  109. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1p/1puFHG5TEj2f59zveWzoSlQTHogaYMaGTqky-q-rLNs.cache +0 -0
  110. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1u/1uOptr8shgZwrphvPXIIJSam-n3b_OIARoBL5Yf3HZc.cache +1 -0
  111. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1y/1yv-YS-mZn1aEPR8UgW_DsQwEtIhbNszS_lRzbsn_Y4.cache +0 -0
  112. data/test/dummy/tmp/cache/assets/sprockets/v3.0/23/23vTsHOViNUzfKkoXbCQQfP2lG-Z-pu5UYHRR-wc14U.cache +1 -0
  113. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2A/2AO6gB-jh98gOscSkC4a5VSOpRa4GHMAgFZR6OeTuPY.cache +1 -0
  114. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2K/2KOZAY0AXwCArs_b7yhyo_fhP4jsT7rEs2lOjRtInYE.cache +1 -0
  115. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2Q/2QwSDH31hwbW6saxcjxe4VtngcynzzLKAiFUufVz1RI.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2S/2Su-ySa2vInMbIwnLEDJoFlBW0JmskGUtOkGtO59Lfs.cache +1 -0
  117. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2b/2beMX9FYifTR4HRNCxhijapYEtVOEEbsqISHulX7FI4.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/sprockets/v3.0/39/39Ly2a5XQPgzdI0NwMxAzUjhrnP22cOi4skqz1t-W5I.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4B/4Br-exmbWXpAbbUL57wwDiDJ3STJ9FLOb-NKRAJ3gxA.cache +1 -0
  120. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4D/4DPweSP0g4sgIjH0D4kdw9ZVo4aHeYYvflCeV9aAxwE.cache +0 -0
  121. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4D/4DuW9uF1rTeQ2M_8oBIhGhtUcSsVuRJ7rVPfz1q5-No.cache +1 -0
  122. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4Q/4QD_DoXWL8DpVbI6aVB8e1aFpNwO9fyIE__LOMjk9Sg.cache +3 -0
  123. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4S/4SYcGDHQNAIS2UMd7vvRqzGByI7dMgPtadSkxp5g-hA.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4V/4Vm2vRc1fj79xCggJkbHDJF2Kpm_o-pNLOleLmn6j_Q.cache +1 -0
  125. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4V/4VtHr1qUpG88ad-8AARLkBYn1sgigr1tx6ZdySKcgig.cache +1 -0
  126. data/test/dummy/tmp/cache/assets/sprockets/v3.0/55/55fBZFrS3nuYLBlr20opsD3-FD9pzvJtDzE_YwIKPVk.cache +1 -0
  127. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
  128. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5r/5rYnFtUYDDuQPZ8gWz2DdG7ha9sgbiDcB-GHwIj9I2s.cache +1 -0
  129. data/test/dummy/tmp/cache/assets/sprockets/v3.0/61/61eVAsPlG4mzFMAkFrkVpz2_y7xAIiHeNOc2_P1gvaE.cache +1 -0
  130. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6H/6H_Pfj5xpdHDpyBlWhgMLvetPt9trhJmHVau1QnJGMQ.cache +1 -0
  131. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6O/6O0fxhP9cU3YHTxuPUCMe8-0iqPkfFHEcpG4EVRB6Os.cache +1 -0
  132. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6U/6U9WE2Sg6FKISaT3W0NCAtvVGzCCho0AlKI_m_0n2AA.cache +0 -0
  133. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6Z/6Zeg7PYIkBHoRVc4sev57X-u5-YnG4O_vvVfW5IBijw.cache +1 -0
  134. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6a/6aUYLqPqK-EmQ83wxPiiBnSQzbAwl_qRg0YyOt9Z57o.cache +1 -0
  135. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6c/6cP95vgo4HxbKfHvd9zIOyTKF095_bGidmHfagJMXhk.cache +0 -0
  136. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6p/6p1Ve0Pi16rmvx0cPrhKN_1iIp1E8ha5q5hO0B34PQU.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6x/6xxMhUfl7_AEvJ2hgwUTR_JqnsqfZhPMhL4nVwmQevg.cache +1 -0
  138. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7H/7HV8nA3skWSIGyhqKSdvjOZfX0rfKW3Ig5HOnnMO-RU.cache +0 -0
  139. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7V/7VDCAKeHwXSQYPSqq7aRU00XWsHZDLOUj4zUDCCzf7M.cache +1 -0
  140. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7i/7IkpigF44tWq0oaJOlERbC5h0DoIAVAZG14R6F1ZmZc.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7i/7iYcDilGdkoS4eG-JxX0s59mnMYTYsu47m45_QpPhZs.cache +1 -0
  142. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8Y/8YALBwPsi_SbunPnvCjXLJR1yEgjovWBiJgradedua8.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8_/8_1n59aUmhfWDbPllmAQiKgahqornt4mcmeJNRLq64A.cache +1 -0
  144. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8d/8duqGLzryIBQZVbh6pv8i7oa2e5TbrYK06uzYjEgmf0.cache +0 -0
  145. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8x/8xI8fpBswB1U91XDXMB62FQ2wNUj30ibciqvyATKAj4.cache +0 -0
  146. data/test/dummy/tmp/cache/assets/sprockets/v3.0/96/96T3mU8EinvLtzGywlufw8DPP6Ajq2HvbX6TwV-xuv8.cache +0 -0
  147. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9C/9C4LmIwy7EHjZhEd1jCzpSz_iz3LiToI_pSEr9Bk-G8.cache +1 -0
  148. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9N/9N4OIQ2rMOe1Ozp41LFc7_O1huwpuWI3lnHjtIXqhKo.cache +0 -0
  149. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9N/9NG_ukk9M9Cs885xM3TKrTgQAXHZf7M9fLm32lHO8Pw.cache +3 -0
  150. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9N/9NdMl7nGaq-xZXsCnjrO4Mmghh7JqtUksdQWGtNc0vE.cache +0 -0
  151. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9S/9SOCnUe27lZ9zgOLZL-zGLBaEZndPW3OmTG-5eJ9CaU.cache +0 -0
  152. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9Zz8hHBQrzWjLNwcWE5lOQNmz9bgfpz-o2MkcC_6Gzk.cache +0 -0
  153. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9o/9O8EAEIuKne6-KZNYiK0ngS5YBaXnp41hUZUjw_bhdo.cache +2 -0
  154. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9o/9ooGS6mLB-FLGP3fmGd6AzUQCYmE6iQ8RT0MPnazn3g.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9r/9rwXZxOaPzqcjQ27A1jnqi6qqRtN-px71irilG4nqBE.cache +0 -0
  156. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9w/9w2u-W8C9OQmPr9Q4pnFE1PndA8ND4stbpZP93badxw.cache +0 -0
  157. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9x/9xnusKycqjvc-fBrMXFueZvswntKFGpFD9P0E05y26w.cache +1 -0
  158. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9y/9yuxANWupETIud9lc6_VRAb-xTt95fwzQEvQplVmIjE.cache +2 -0
  159. data/test/dummy/tmp/cache/assets/sprockets/v3.0/A4/A4XZr8H3x9sJs-u5zYmUnNhMunNursqcIOWEFVlTJPo.cache +1 -0
  160. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AB/ABMNz0mhUOELrJQTsvODX4FE5dO4qA_ZwRZlTqZaNvk.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AD/AD5DIX08moywNzW0FDPE-inLyAY2R9fW_oWxdNe13uc.cache +2 -0
  162. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AR/ARBMtXeVFgKl7fXhVqLllu-tBEgTxmwPeZFbbMERv8o.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ac/AcRrCleFNVnRawI3kPItFg8-tstOBsisEE0aFcywb70.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ai/Ai-pymgLhxmZjUlTeuFnZU3zDpAF1HWT7nZI216jDTo.cache +1 -0
  165. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BF/BFGGos7NpAzdOcD7B0_Jh7OY_KqFKDFDXcByK7R_-8s.cache +0 -0
  166. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BN/BNqxEVmfkXCKtL5nM2_PJ04jeN69YkIqyTc9TW-WQdU.cache +1 -0
  167. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BR/BRh8FwWRr5ejm8oyljLq8kbk8b6LOwHVF3VEBvInGcM.cache +1 -0
  168. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Bi/BiWSzPBpw138FsMGNMLntYkDDbgM6Waqfx_u838XxCQ.cache +1 -0
  169. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Bt/BtGT4q94Ec-6HRYqK1XsWyzF35hy9TEW8QlCLBgBhO8.cache +1 -0
  170. data/test/dummy/tmp/cache/assets/sprockets/v3.0/C9/C9CxMJ65MK0wNwR34Dg_G_vw3gOAWslAiZlkHklDm4k.cache +1 -0
  171. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CS/CSA1Lc57isn9pcBM_NdYl5J_Dhn1-bOYHkFpsFjhlTY.cache +1 -0
  172. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cc/CcZZRZUggMa5vGgVC6C4qPtQ1blDRJksWHepZtglaXk.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cd/Cd0HIdwDNN5MjMWSxQfoc1lK5G8s72OtHswMRr4mJzA.cache +0 -0
  174. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cl/ClVGjzjCZviDQA1T_Z4b72ujprzCaUkJS0eLDzVbjdo.cache +1 -0
  175. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cm/CmHFpuTBr5mTdCCcwGG2FUMWjFqZRQeEfoCeln_26VI.cache +0 -0
  176. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cp/CpMojVy8CylDZK7FrinyYRBBDCc2VO2IG_7YSl39_QY.cache +0 -0
  177. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cp/cPufbhwNI0Vkqd8FW30T9evT5kwMijlMgnKeEzezmDM.cache +1 -0
  178. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cy/CyDQMoOGFRU0hiQclRLIdX2It0jEOXSD1KI5wfabQo8.cache +1 -0
  179. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cz/Cz1UDttTVDOXna5gQmlH2zAYfm74g3fedR5x6J0SuJc.cache +2 -0
  180. data/test/dummy/tmp/cache/assets/sprockets/v3.0/D9/D9SVrbKxO8-jIjck7iS_kOKH5OuUQUplPrxT0_wlFCs.cache +0 -0
  181. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DD/DDmAIKA7KRrgRR7ldzf7wU4-bR7eNEymmMQFQdu5DN8.cache +1 -0
  182. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DO/DO4GjHPhfDaidI_0lepQghaViZpGYO1qGak_9qxXX5g.cache +1 -0
  183. data/test/dummy/tmp/cache/assets/sprockets/v3.0/D_/D_XjkYrlVpDY0HvSNH5AS3dXs-vJTD1hES7MHud1Uxg.cache +1 -0
  184. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Du/DuQt9UG7qQU7pbhDZOQwO0JZu1lY-7zWtctZGhrMhs4.cache +1 -0
  185. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EJ/EJXopIbv25LgwpTIDMWMKqSL6wuKZvxSE_Jqq21CVuU.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EK/EKtD0w3vIVVhsYpZpIo5ZHyfuxsaAbdn-yhrS1rEBUM.cache +2 -0
  187. data/test/dummy/tmp/cache/assets/sprockets/v3.0/F9/F9nBy9BUWIUzlJeZbClBAPDOF5ufOJ0A7zxtxJPEge4.cache +1 -0
  188. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FH/FHs31y9juXbRG4GOOz2iGfn9kyETkiDlbJWqxxn2Gzk.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FK/FK3Qvm8s4rLCqq5Qf7tTNWcNwJefirfcDrjSkpa-Fj0.cache +1 -0
  190. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fp/FpraLF0iAFSPJFf2_lNbv-CzvigcGwrNa_jU8dRJzrQ.cache +0 -0
  191. data/test/dummy/tmp/cache/assets/sprockets/v3.0/G7/G7y5hBmT-JXkJS3jIBfn5f41NNqTTbrtcNfUxqncGVc.cache +1 -0
  192. data/test/dummy/tmp/cache/assets/sprockets/v3.0/G8/G88gAVDPz_XwjG5bc40DRbsw9FP1C2UyEdSF1ypo0AU.cache +1 -0
  193. data/test/dummy/tmp/cache/assets/sprockets/v3.0/G9/G9jENb4qPBPkzkwXaP-PBspsimVBQEUTfKWIFEVEJ8k.cache +1 -0
  194. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GV/GVEKmZfkTd0Kn_nkJ0oyWZFLkmwCHt3W3zx_tpk_OC8.cache +1 -0
  195. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GV/Gv4DZthaTy27j7pCLfFUaeXgn2emeknBiyp-Yjru2pw.cache +2 -0
  196. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gi/GiUQ67SdKt-LAO9Lex8mmrMBpO_ZZ2qtOTCm47onZqY.cache +1 -0
  197. data/test/dummy/tmp/cache/assets/sprockets/v3.0/HQ/HQAkZq6I__awZd-mbL9xI10JjGry1rZSYDg2QurbArY.cache +1 -0
  198. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H_/H_YcXvMs9neCbHL5uS0EY93jQdXNpkr35xRrwi7APig.cache +0 -0
  199. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hb/HbgxhEW_ogqyOlaGeb1YJaxbCnVuM3LjCviW-PkcmSU.cache +2 -0
  200. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hb/hb1LaW-DjnunjsU1K6QUEq8So_wSKNGqzXMbciozB6o.cache +0 -0
  201. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hb/hbdtIQ4uncd1naO1R_xUhBeSh5nuDEb9XkSzzwRTN8I.cache +1 -0
  202. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hj/HjM4ZwqBB7Nk-K1PKfLg1yjbTRFC0aXsrnfkiWt0ws4.cache +1 -0
  203. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hj/HjQycNywhgVXRri0y3XHOGd2Ndhx1M5fYbs9XDydo7E.cache +1 -0
  204. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hp/HpzvKdlVwx6trqE8DsBH0gUP2UnQY4WGj_ksiipN-uI.cache +0 -0
  205. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hs/Hs0zBH7uiD1yutw_dl8TBGGgzmpl47NFWY1CpHbkizI.cache +0 -0
  206. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IF/IFS5YDB8xAWPptr6YD3utkTKtxiV4xgRTQLBJqzcuTs.cache +1 -0
  207. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IH/IHUJyJgnb-qzlh4xjjhDURxgI2ya9gCallv78_g2mSc.cache +0 -0
  208. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IJ/IJpjqbBNeUqOiEZGpSi1svIDaFPzRmakYCtviwGF7Cg.cache +0 -0
  209. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ie/IeV6v7HUZ0MDRQp7TiM7GlVrYZ547nYMiG4-sctOacc.cache +0 -0
  210. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ig/IgWciSW6NE--fhaSDclwrkpJQfX_GXYyVjDG6IMXsIw.cache +0 -0
  211. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ix/IxVVEu_g4_nGKSlD3fOM1J8nn4-Mr9R9N_qFY6WJdT8.cache +1 -0
  212. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jv/JVQlx2oYt9kZ9z6WQ18aXkyrCC2R0Ub9U22otWBkzfE.cache +2 -0
  213. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jv/JvFPe8HwxG202a8HcYkIh7T2XIWK8auwvYosSKwbwoM.cache +1 -0
  214. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jv/jv6yxp1qArkT7AaFWyWCIO2cr2CjDFR_So15qBUPPHc.cache +1 -0
  215. data/test/dummy/tmp/cache/assets/sprockets/v3.0/K3/K3MDaq_Ro8Nt9XABUmThPgv4G9se0CZgUzd-7EFKQVs.cache +1 -0
  216. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KF/KFdbQwKY8o5lBd9FWdywrWThK_XYHdDAjMB27bRPHXk.cache +0 -0
  217. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KU/KUgQEsOzwcrg0qIO_IKnnab7LXI6xzT9c36AuemIsCk.cache +1 -0
  218. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KX/KXl7wvom800haotvRD51M8mqhDAKGbPwjLz1IyOlUsE.cache +1 -0
  219. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KX/kX9MIPa0KicGwVnn2w1SnpKUrtkFa_qlpLv9Xb50V0s.cache +1 -0
  220. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KZ/KZITHzbMosPcvoMBUNeiZK5hAQGWFnvd0DfAZA1OqPs.cache +0 -0
  221. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Kq/KqcikpZFzEmDOevvSl20SYhJpGT5EttV9TnSr6a190s.cache +1 -0
  222. data/test/dummy/tmp/cache/assets/sprockets/v3.0/L-/L-rLbD8XzRGGf8_xMiJwNaUVddfko8DD5Odu2yKkOHo.cache +1 -0
  223. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lc/Lc6a5o_7RZcAO3qH50b23TnvX2eBQKn8SDmCiahXPyM.cache +0 -0
  224. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lx/LxR4JOnr_8sRrSHe6BZU1Yp-ILvpWiiraEKpZIWLj34.cache +0 -0
  225. data/test/dummy/tmp/cache/assets/sprockets/v3.0/M4/M4-QnolZZ9QNEnyN-xZXmoDo7IIZdg2brtHM3cH4Tps.cache +0 -0
  226. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MB/MByz9OZmbFdyofi7lAx8IZkRvDakWpFVcTMawCRtr4k.cache +1 -0
  227. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MM/MMzMVZB9pKn9N-j_pMkszfDWWbh0xaBt-EFlc6vdEcc.cache +0 -0
  228. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ml/Ml5JwAeYKf0HenBURunQvIO5dj7UrFwHmDSlO4W5y_k.cache +0 -0
  229. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NB/NBVFS8J9i4V5Qjvwg287ny_sUkla6uY6ybm34QPtJNs.cache +1 -0
  230. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NN/NNo6W9mzx0ZElMk4rFkYMBQ0JdJKM7xR7GWeQdvFpKw.cache +1 -0
  231. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NN/nNC8bF6k5KBqhwsBRHp41YQ7z0PIYhOF0JCsXbVJizA.cache +1 -0
  232. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NT/NTcN7vdDpCCb-rks_UuDvalFnecYlGq6Ef2cQTOu-68.cache +0 -0
  233. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Np/Npaote0OETS7KvJACkck2sGyog8r7x0qXVLg-Fb8F9w.cache +4 -0
  234. data/test/dummy/tmp/cache/assets/sprockets/v3.0/O9/O9LuTOlyTawsb8Z-a9v2xXa58D0qG8jRPnDwDX3mjOw.cache +3 -0
  235. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OA/OApz4zdyKysqaHUaTR0asc0SPTzLOKh1WPtOdfKbrxw.cache +1 -0
  236. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
  237. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ON/ON4ujxwVRC8zBl-BI6ALArYKqsQyglvwmFsG1QsU4AQ.cache +1 -0
  238. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OU/OUsur7GWiQSXKHiZfikkmaJ2tOAKjLSmek7Wa84LLlI.cache +0 -0
  239. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Oe/OeKVunLf9094gjOjYURmg3IVJQn84epg-DHjUrq3rSY.cache +1 -0
  240. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Oy/OyyGReIz7MKdIgmL_jYEP8OavJ8wp_DucM5MWvXgo0A.cache +1 -0
  241. data/test/dummy/tmp/cache/assets/sprockets/v3.0/P0/P01q_KJLEGN3sAyHP5-74irQrZ8xXOKy5KSdYpKSJQc.cache +3 -0
  242. data/test/dummy/tmp/cache/assets/sprockets/v3.0/P5/P5qhU-1rVkrKPkjBN7VFNg3tyvOUpfTwOnSuji2gmus.cache +0 -0
  243. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PJ/PJYpSOEpvY6U8aMLe1Xi0sxV6lr9qSw3syCgXpzZpAw.cache +1 -0
  244. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PJ/pJ6xwSVi5LvxONRWmG5QH0LsVE_u0UOYT3-GgJpmwmU.cache +1 -0
  245. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PM/PMfBC8qwv2jXFZaj0p8RodpWjxoItxQaTva7gRM0MBw.cache +1 -0
  246. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PY/PYsjPFyJEvAnONb-jCh8Mt-pqt1jyHFukma6_hieIiA.cache +1 -0
  247. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pp/Ppn3EfHr6yoJEQhrerMru8q1QtV4rMNmsrDQYP9-b9c.cache +0 -0
  248. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q5/Q5M3ZyOedu6LXnWGL1KPzP9d-m2mOgMgJ4og-3UzK3E.cache +1 -0
  249. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Q7/Q7Axrj2C5NJtqBXmrkbXZnmBfJXcEeaRvSmjVclo2vc.cache +0 -0
  250. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QF/QF-wzbPPHZdEptVstSYNiuGXaAWFQHpXqQeEhHOPpZk.cache +1 -0
  251. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qu/Qu9ufKA0-J0cE8kjpAhGgsScdkWU1-aN410sYNoXICc.cache +0 -0
  252. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RC/RCBYCsmm4ccRqFRSBl5MNQDl0vlnXJRoqZAk-iUuwTQ.cache +0 -0
  253. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RV/RViXp0prmsDc_34H4yrD4cfs6SVK2KNuKdB0DgtNkmI.cache +1 -0
  254. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ru/Ruvxnck9Bt5FBO8Fm4baI6pKPXLaw16Q-4Bgg0J_wdk.cache +0 -0
  255. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ru/rU8ApZ1fQvF58lqC5JwUArba-zYTxqJ_A_wXsnBKo0E.cache +1 -0
  256. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S1/S1hmqmNgDJ7Vl1YtKbNshPXRyzQp8YZMqbKoQYw8PDk.cache +0 -0
  257. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S1/s1KJTHkKhCNCiVfe9AEMlWxwePIdKLiLTZ3tZoyAkwo.cache +1 -0
  258. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S3/S3o7er2KAcXh4qQ0RASZaU9V-9ilME4rPWJJXMD5wEc.cache +1 -0
  259. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S5/S5X_DHIYTch5KbN1gVMGnpSnswHQgxK8Ru3kKpm9NQs.cache +1 -0
  260. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SA/SA9beYRzgN_5laVMyWHtBPqPnO_oIhqZr8lyVUo4tUk.cache +1 -0
  261. data/test/dummy/tmp/cache/assets/sprockets/v3.0/T4/T4MOvsg1O4rFXJspXsMivng0rC6QD35xLbihVO2ATj8.cache +0 -0
  262. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TH/THExDoOJ49McAHE6aT_fH1IP8gh8RZlP91mZx2hNByg.cache +1 -0
  263. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TM/TMKzA4-cYXQZtgJz9Vdid9YL1ZGjlBQUOYIfmjs5xow.cache +0 -0
  264. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Te/TeU4EAthLIhLOH289fqTvmKiGxLFi1V5HExPDWKXMrU.cache +0 -0
  265. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Tt/Tt0D5LpBmHYhqgzBtOTzJv10alxtF7x1O53Kpi0oFbw.cache +1 -0
  266. data/test/dummy/tmp/cache/assets/sprockets/v3.0/U5/U5FT_DjjF-dscvzkmHdVa5uyi1Wl8Bsa2mxl30BYASk.cache +1 -0
  267. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UM/UMA1HpAwOUPHhHbdihd6Iht0B8XoROj3FEKhlzSGz7c.cache +2 -0
  268. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uf/UfN7PkBRJJumEIwXHfyVS-4-OpiuCmP_miXezzeyMdc.cache +0 -0
  269. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uh/UhPr_dR0GPDvQUVwJis_hpg_5b1aFrAMmtcs8bjoje4.cache +1 -0
  270. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Un/UNNhnrlRiaIm8sl0m9TXdAF8mqpmwMCXckHzxkgVun0.cache +1 -0
  271. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Un/UnPb6pruLi_X9MOUDm5O0zrg0qsIyyi6JEPQDIAk2-4.cache +0 -0
  272. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ut/UtTo_u1Vbw5gvqXJvmKfgGcXYEOush9mj5A8jXQ7-Zc.cache +0 -0
  273. data/test/dummy/tmp/cache/assets/sprockets/v3.0/V3/V3NFtF0DzyQdJ_4Nhw1hA4-MRYCItlBzQqm9aABSzr0.cache +1 -0
  274. data/test/dummy/tmp/cache/assets/sprockets/v3.0/V3/v3AXorjUMhegGw-aZPY1jvP8yCOoh35JG8UiEX7ZN4M.cache +0 -0
  275. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VW/VWjzy3la81pQDogvSg8P6WH6m4ZsqXC3QhJ0PwrT2cE.cache +1 -0
  276. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vf/VfSXf9vusNYuyzKkdNziyenjblNhKxHA28CYd1NePn0.cache +1 -0
  277. data/test/dummy/tmp/cache/assets/sprockets/v3.0/W1/W1yz_uXN6zcvemNgFL-3MbqgvyXTdBVtCfxOI4ahZec.cache +0 -0
  278. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WC/WCkhm3Iog5jkY48jk7P3YbK-DdGpcGSSn8NC8Dongpc.cache +1 -0
  279. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WC/wCSLgI7hqdw3SN-0RBzuVHbextkww3WdQpp_rYkISgE.cache +1 -0
  280. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WJ/WJPFvUl4A0X6ehXk1sExRn5LCOvmv_PUfpMPoyeHvqw.cache +1 -0
  281. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wa/WayodFW9Z6cUn9cT25utsI7nt5iEUEwmT8lrXM07wSM.cache +1 -0
  282. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wm/Wm7DhgjnJ2CD0YYTpn8YgAyJQ0iLrNss5y9BfZK-E_c.cache +1 -0
  283. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XC/XCsO3t9MvuKvn7WFNQ8H9vQcGX7gJMK_QEdIRGUy1Pw.cache +4 -0
  284. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XM/XMMPCK5N975_vdRk-juxT7hZNV-KPu-N5C4aJagJYJw.cache +0 -0
  285. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XT/XTpiDwwZkgwNap954M1cqv8KZhM2NWxAct16PWqiH9E.cache +1 -0
  286. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xh/XhAM8jUomzjHehSalCCbozfLyM3PNtIGR9YSIo6wxgk.cache +1 -0
  287. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xh/xhd7uk8rZDIh-WU6Webw34InDVvAd8o_o0iMDBacPNk.cache +1 -0
  288. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xl/Xlf90JTM50Gl0rJA2TqM9FfDDiQW69UCrEnaQI0ooVc.cache +2 -0
  289. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xr/XrSET1mjEop-9pYFWzm8Z-mbiCH4_JLLsLWBuddwpvY.cache +0 -0
  290. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y6/Y63ZPmqo5SxQ5Mh_i64drdxFNLGX5oMXDK00Z-5TPtg.cache +0 -0
  291. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y9/Y9-P3IRKZ6fLlzjV-H9ejKPD3SUZzGeBilxIDAthugQ.cache +1 -0
  292. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YF/YFr5NwVi-rAS8iLanFxbb5kjfeLX_zH6aysgD9YN3Cc.cache +2 -0
  293. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YR/YR0sp_87RmmYYy_5z3GSl0dujY4V0l51yi1Ze0DYVTA.cache +1 -0
  294. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yd/Yd9czEByqdrA4yjI_yhiui8SL7F34O4CT9F8HLny8HE.cache +1 -0
  295. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z9/Z9sIdO4ajBUc2xhSbp9_7_TVK8n1QyzBmd6dM78m1i4.cache +0 -0
  296. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zm/ZmTiv9eJEHLZAIW7rorIfdawdObqhvWtHBtdnQB1SC4.cache +1 -0
  297. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_5/_5Lqlz0x4iJP7cxKZqD9mq-5AuX53Cf1xw2b_MhmR4Y.cache +1 -0
  298. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_6/_6iSd7AxcMyYtYl8N7uuQ11hk8b1_c3EpPdrx2ssRDE.cache +0 -0
  299. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_J/_JEcbyAq8k23MLBtiErSYElv8TIxk2NgFebmrxCr_Vk.cache +1 -0
  300. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_N/_NgHE-jaOhlMkX9msEAdBWgq7OrpaqRTbVavZ0gm0YY.cache +1 -0
  301. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_S/_SrtfRje2aAhNdMpMSLN7hD2m1-FqgX639PXG_-jq0g.cache +3 -0
  302. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_d/_dvo_ECQj7tNZJdn9b6iXQgExzvEFcPVzXmRYyVOWZA.cache +1 -0
  303. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_g/_g5tIVGfR-DePftmhMfYOLeWGWRdeGQZSkkrZOWzE8E.cache +1 -0
  304. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_i/_i_05JN0IooeeWdhusebliQ726hLeJ_nJrR-Oh4jttA.cache +1 -0
  305. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_o/_oKkX19GdAApvk1m_kJBf9NKw2M5zuopoCMyrSy04EM.cache +0 -0
  306. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_z/_zYc0_Ox7vjuYs-y4mEOr0lHjpUJAyHAY5Gsc2BKh1Q.cache +0 -0
  307. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a3/a3nEFbljo2Wozfc6x8vC7ydF52EuedegASNW7c_8ksQ.cache +0 -0
  308. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a3/a3qxfwkhYWwt6EK-8nfVFtsjELgkLHbUnZcp5bRX2FU.cache +1 -0
  309. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a6/a6QR-DFedzWeHfQkI7ZnBgyTkrum2IGbxAJmSFF_ZyY.cache +0 -0
  310. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a9/a9eQl9fE9X_oQgLuEEw8EQm8lMsVy1RKKX6zSPze5wE.cache +0 -0
  311. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aM/aM-VgyR8IO8Fe7XaLGp1L0CEqdsu9lL1yTp-XxS83Uc.cache +1 -0
  312. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aM/am_gqM0tWxGqVlSOyo7pdWQa93Cqy_pxCtBPj5hl9Ic.cache +1 -0
  313. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aV/aVSyjARRlbARV3i7iqyfLWYom4D0HISLTkH-9zJq3Vc.cache +1 -0
  314. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aV/aVtLy9ZpC0fdfTCfede0Mxhyf376dTax-FldL-LAhb8.cache +0 -0
  315. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aY/aYYCqxNKlTpzsZa9sqQht_pYiXcyv0EHHu6YPfkqbAs.cache +1 -0
  316. data/test/dummy/tmp/cache/assets/sprockets/v3.0/az/azLk_zqBlRIAgAFElTpfSext9gkewu9on2V03Xl4jxU.cache +0 -0
  317. data/test/dummy/tmp/cache/assets/sprockets/v3.0/b9/b9NCeXuw0is4JY9pYPkyT_22bVSHnYyHew1qJrQeEFU.cache +1 -0
  318. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bL/bLvD_U80aJ4Hft-NW5UqC57Y4akx1dmQKVChOvhJ6nk.cache +1 -0
  319. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bO/bOmpIqlXXgsiNt2GCZdrsC3fSC27CixHrZLM_SckARs.cache +1 -0
  320. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bz/BZWFQhR1NUxXIw3zNKMqRIBdsfBzsZaXT2JD8xOtfuQ.cache +1 -0
  321. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bz/bzzfxWiH2VzOawbcPEGH14jtTdiKvdglCFDDzzy8s5U.cache +1 -0
  322. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cA/cAgfy-peGQJEYv4kXpqhVio-6j2mlipH9aPtWZdeNvk.cache +1 -0
  323. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cB/cB3Ab7jyzoe0zUclV1XbICgPJ0fov5Peynmdv6bJiek.cache +0 -0
  324. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cI/cIUp1Ai-BcUs5tkaLvIBX-lWOW95ZwcXOxlqeNgYJlw.cache +0 -0
  325. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cI/cik6BpTFOUVPATCzKvrldwEvXwN9zB2HYddxuNtdgQE.cache +0 -0
  326. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cK/cK7s29gAcSl9No56Mg-pRYJqtVnDTEqPz0Urk2Ud1CQ.cache +1 -0
  327. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dA/Da3jz9BvVOxKZBA5ww3lB3ZDFv3oo-OSDmGXyhana-s.cache +1 -0
  328. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dA/dA-c4NLOR2LoCw_XdgtK7Mi9IxJTiXNGyq1gOhVIg-o.cache +1 -0
  329. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dF/dFOstaHSXfubtopCWnkZUadAUgNbaaRKQuF6TMma7UM.cache +1 -0
  330. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dV/dVYcWQ0qmMlx6egm_U9VuPakU-cSVPuwVorwZxCRgFA.cache +1 -0
  331. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dm/dmMcLLkTNu1YVhBfPp5216MTKAY20DJ_2yfXnvXZ-h4.cache +1 -0
  332. data/test/dummy/tmp/cache/assets/sprockets/v3.0/e9/E9uD_zKlgGPmeTjrd8jjlsuUgnoq7i4gC50ICifl2nA.cache +0 -0
  333. data/test/dummy/tmp/cache/assets/sprockets/v3.0/e9/e9z7UL2GcVLN3_bIvdxVp5MGls59i1UTXpzXDWTTHog.cache +0 -0
  334. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eT/eTzbQD4PCvjLIvyTMPWJRFGlGdFL28k0YEdfgMcrBQE.cache +1 -0
  335. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eW/eWQbPlTRXrddf0A9Q_0gzVpWRnIcI9EGEN8g4m2pEbw.cache +1 -0
  336. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ei/eixkm-DotGsg92JHKeRxMrmXhbRmLbdYIFIVmI_EWvM.cache +1 -0
  337. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ex/exWEJHi5ASZ76zx4iLvLUhvXsQTWKfM5Yz_7V8yPw50.cache +1 -0
  338. data/test/dummy/tmp/cache/assets/sprockets/v3.0/f1/f1koQn-yiZNI3sz36o_7RM0QXIxHlXBXmxKKzjdzjnw.cache +1 -0
  339. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fA/fA2cEH23afmcgadZgljh15rOb-2pdlFrSmKatJbq-34.cache +1 -0
  340. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fA/fAVsYqk4ogoJhTm8GygNL_jDG-sRso7QZTIE664hYVc.cache +0 -0
  341. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fJ/fJqv1rS9qoF1uhpdG2jzI3OiVs4x-022oeH_FiJZZhg.cache +1 -0
  342. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fM/fMz9ETGj2OQbwMaeGCPCpLMVdT57TYqIIYVyaAFEdM0.cache +0 -0
  343. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fR/fR2XVTrZMNuOJbXDhmMIfdW3b5g1LtXeGh0c7HC3gNQ.cache +1 -0
  344. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fY/fYcPA5Ewns66QItM1eTcKrNFoHdpSiyR6t2xtVnWwYg.cache +1 -0
  345. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fc/fcrQQN3Cuh28-rJYW3fYaJ7JzJb83zP9aix1WXlDk18.cache +0 -0
  346. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fs/fsypoHlza3x8sxe4FXVDazRqvBZCBLAFmP2lTW5aAIM.cache +1 -0
  347. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ga/gaandvC9kV1P3TSczVO-KDssnAXsMiwrNlPFmMwsEWM.cache +0 -0
  348. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gg/ggEcxbTx5PJt4vHdWKZ6qBj4NB50w5LZbRtdgGLTla4.cache +1 -0
  349. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gm/gmb1zkOL5aZCFVo73IPMzobFoheMscp66GoWlMoDZU4.cache +0 -0
  350. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gq/gqNQKCLhCUC4ChgFlwq7jBAS7SLwtfLM4Vy-NAZg6e4.cache +1 -0
  351. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gt/gtPtjI5N1DSB5P1bdK-bNIJqWUFvE0ehLOMVXgF2tCY.cache +1 -0
  352. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gu/guzIHul2knhPL8YUnKWOCfs-X9Dq0KvqUK-WEMHzaD4.cache +0 -0
  353. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hK/hKuUOawFepQqjveE7g2sVozolQcoBliNyhnunmPslsg.cache +1 -0
  354. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hO/hONP4oZGnRf5CRPcpFnIxcaSZYntuQuXkt8LNmkP8MM.cache +1 -0
  355. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
  356. data/test/dummy/tmp/cache/assets/sprockets/v3.0/he/heTtS3ZFj526a9bsM6T2u0GYqvdpqWOhGdT8A-tEQgE.cache +0 -0
  357. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i6/i6DHOT_Zcn_6hRHl7aNwxwy3ebGC6U5P_WGEbU-X_TQ.cache +0 -0
  358. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i6/i6HNUWZH5zteCFCe1R35B3gTH9cg1M8o_hffi-uWoRM.cache +0 -0
  359. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iD/iDuUWO0yUxAvq9ELEkCj4O4J42l4OkEVBbhit-o0YXc.cache +1 -0
  360. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iQ/iQ_GmXix39hgy5yhxUhvc-BhzDbx6E_qhnN8hpY6k3s.cache +1 -0
  361. data/test/dummy/tmp/cache/assets/sprockets/v3.0/is/ISA9HDXLcm6f-EPZwtZ3PvvTRcY1wGGQNq_e2avktNQ.cache +1 -0
  362. data/test/dummy/tmp/cache/assets/sprockets/v3.0/is/iszlrQzjh9-37lqIcffksyWK-hoGcrVOXONdOqjjL5s.cache +0 -0
  363. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iy/iym5qgUuFqEaTtoMJ4XXp2LbuLHBx76yDAha8UPqZB8.cache +0 -0
  364. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jB/jB2XvHmSPEbBzF7s4P-HzdKK1VgCHj7Xs37q0B1S2iY.cache +1 -0
  365. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jH/jH2YboIoaG8EdorJFbhedtxPkVZ9CN9AoiqqLJ6qWJ4.cache +2 -0
  366. data/test/dummy/tmp/cache/assets/sprockets/v3.0/je/je0OHchcJ6ofg69CiZNdjoy_gmdq_nS_hSf9EEApIxs.cache +1 -0
  367. data/test/dummy/tmp/cache/assets/sprockets/v3.0/k6/k6lvtEnXCFpENLvrJXxZiANe0MsmZcUa7-gtPaB81oM.cache +0 -0
  368. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kH/kHqX3aSIRVoHMx9XD_917KDmR-XgPfPEN_KzUXkBjnM.cache +1 -0
  369. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kI/kI6EjHeiOR9Y3bQap7RhQAaVBgaA-ALBFCBC0XVcq_8.cache +4 -0
  370. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kT/kTDRSPgjkgsOA96MXs8Lw0mVF8EjAf3hhEWQj0UQgKs.cache +1 -0
  371. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ka/KaIv5B0hZK_DGS5phYCInEVsozlzvdBuDQDFZ8pbEE0.cache +1 -0
  372. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ka/kauR7_UXXgOAep3iqfG3aX1w5EOokj-p9pWHqpCOh8w.cache +0 -0
  373. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kc/kchg-OoRYJdZqz3ELQQXZX1XCYp_ouQIol1cvjzBk90.cache +0 -0
  374. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ko/koYTd66ZXj_9IToRaMSaq5juT7JXradWzmkeanXpOTo.cache +1 -0
  375. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l1/l1pF3dK2_Ht7XCN9hyMvED-Hee8vOhw8HoeGE0MVCBU.cache +1 -0
  376. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l2/l2C55ez2bNOzRM7dQQUo3clI6LdrEtsYVTAgL6net9g.cache +1 -0
  377. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l3/l3tAw6XmXvpbhEwFRnym3bD_r7RPPekaH0Ki6ZtoDtI.cache +1 -0
  378. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lI/Li3yqj6JJKOH62Q4A62e46JlVIOnN69OzQbU0fjqxBs.cache +1 -0
  379. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lI/lIFpYLORV3vlP03olbSJgC-qJtkKtw8Ufb08WH6TjTY.cache +0 -0
  380. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lV/lV-w0KC-NGdZvAOndi4eI0-tfteOjxmc6orMHNZMX7k.cache +1 -0
  381. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lr/lrXR7t6IGiDU95dQ6xX4wmq9stUB33EYaE2k1-Dk2R0.cache +1 -0
  382. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ls/lsGa4OIoW8IQwKLVTCdbz0rEXdTepE2VoWsBf0YEAJk.cache +1 -0
  383. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mT/mTIp-1taV40mcDc6P6a-W3MshbqApeYzcMnaxuSzrgM.cache +0 -0
  384. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mW/MwZXEadj6mEJJ5fIDNDDXOHXIB62tZxA2eLvcoKfUSc.cache +1 -0
  385. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mW/mWXBx2uTKjhavJGG-DVkNOlyzVd1u3j9Psd4JMs5NPg.cache +0 -0
  386. data/test/dummy/tmp/cache/assets/sprockets/v3.0/m_/m_84UWrLCnvca3LjNwP9zpzUzLkyLNm8HVGZrKCcASw.cache +0 -0
  387. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mo/mo6LGVvPD2VMca_kw98GpSYtLm_dBdKCLSvx8tC3FNY.cache +0 -0
  388. data/test/dummy/tmp/cache/assets/sprockets/v3.0/n9/n9gl4h4rv028P0UQ8Y7_9GA3bTPFcH2gpPtcZKV31cI.cache +1 -0
  389. data/test/dummy/tmp/cache/assets/sprockets/v3.0/na/nagcAtkTnEic3bguZ-8Lsn3iU1u-G580-a5_PDGzcLY.cache +2 -0
  390. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o5/o54sA1modO6Y3X00t3XplFH-HWwgayKkd2xPk803wSM.cache +0 -0
  391. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o7/o75I20QPsWT6wv-65y7VMD2P1sqTtpq_Ww2SfpMFS6A.cache +1 -0
  392. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oC/oC0WlUAEOcGT1iVVLZAB9mZwWTr4UWuE6dQ_qzCXPU8.cache +0 -0
  393. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oO/oOKj-T-fl4jFWtgQ7OitTLIQmgCF6U7YJOFSbp5xPN8.cache +1 -0
  394. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oO/oOR47j8fCLlue8MCWBs1qUkeij729RfD3VqnETHF5bc.cache +1 -0
  395. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oZ/oZsjBPZxJNJD8wGvnqZmjwU4pbknZYuPMnY66OpQ_s0.cache +1 -0
  396. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ol/olgVIytSawox-_geaXjTRtdhtCib13NsNxcr6eertls.cache +4 -0
  397. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
  398. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pF/pFmW1gmAZibi_iHBifw4vbyZS0qtnVK5lJY3a_EZy_s.cache +1 -0
  399. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pW/pWkj-93urCjEEUbWRMvvdeX3hToMQCWFN2JnHFUHYyY.cache +0 -0
  400. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZa_XMQtdWmTpxGhxOHRwpLu-rMzIOspvsMJiEQjxJo.cache +0 -0
  401. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pl/plUR966kw0KQT_r2Vq9ObkjAEDXvj0zBpaC6Z5ITIW0.cache +1 -0
  402. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pt/ptTZ8Ht5vDgK1JbCYoDKGHClncG3Xz2S8gJv8ztMC2M.cache +1 -0
  403. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qJ/qJupxS-F8ClOwBELAcYPaKTwF8uynRas3GTvJlcC-Mw.cache +1 -0
  404. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qP/QpDtuKl4FCtnNOSVcI-3EGPJR-41pEu4hUFJZsRVFE0.cache +1 -0
  405. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPrQVxH3O5eViAPmtuJ74nXfavfCMxzR2JcMyPUvCbA.cache +1 -0
  406. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qk/qkgEs9D5Tyon0rlY1Seegd3C6fDWXT_hUUWp46CzeFk.cache +1 -0
  407. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qk/qkkjB0GmeEcWjyLPtf0A4R4hYAbaE0EiVp1vOTLzU2g.cache +1 -0
  408. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qr/qrHman0aUHfoCGYcw_DrhhbxAzoBhOoUX_MfSfmlxLI.cache +1 -0
  409. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rA/rAvN9noQ4Xjp7pSmzgJxlx3EXeyUhOJsPjz_Av61A3k.cache +2 -0
  410. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rg/RGRsOoh2xQOevC5DY7dGO17COr1IvdxATdm1ZmwlAk0.cache +0 -0
  411. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rg/rg78JyUVrQTIJ4ii1q-FyCPIEQL2DBFe-84uEFUdV14.cache +0 -0
  412. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rt/rtcTdKF7lUGOQoDgloqxt1rLHBdouff2cDvLpaXXjQE.cache +1 -0
  413. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s2/s2IEbMhwq-y3tfxXyuqb-TMzwJ8GELDKn5OUrJWG3Qs.cache +2 -0
  414. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sK/sKOq7fr7FpLJOm3aCHCF2OU1lZ5_hLgwpM4MnUeoYPo.cache +1 -0
  415. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sh/sh85gqIOq0XEXE45PbFkOABOPt0pa5qH5NpPxSO2rME.cache +1 -0
  416. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t2/t2YewDsCnLBElnAkDksUp6pK-kCXgCs0aW7sWBqnL7Q.cache +0 -0
  417. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t7/t75LiISsyHSR4Y9VaWSNXBsqxjLh26PUvEgzaLW3K7Q.cache +1 -0
  418. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tl/tlJ4WTPsKOI7_dsTMGH1muRNVL6w0RioL3dWe9Jtts4.cache +1 -0
  419. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tr/trIrqCe1yekofCwo3N4fUQQ7snQn3YHIMeiTqUSyCCo.cache +1 -0
  420. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ty/tyNzgeNTeJR6cW-W_VgjNX6ud0TordT-ov-pLCreQXA.cache +0 -0
  421. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uL/uLcTmzKlskP7_yOMj_yKE_fjgWFcxmWCg-2xCA3nIH0.cache +0 -0
  422. data/test/dummy/tmp/cache/assets/sprockets/v3.0/us/usl5OJRq3b0d-1APtgkD5RoBuNoRL6gZv3wrOReji-o.cache +1 -0
  423. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v1/v1t8N5WLBSnimJrn9UXH0kzk7ZmYQXfVJCr2tT7YIJw.cache +1 -0
  424. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v5/v5UkqiWWtuwiW_wAN7GjlePPTtJUdgix8tXYZ1Jj4kw.cache +0 -0
  425. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vE/vEpqAMl0wWv2y8ONxFYn8hDf54gkguSObFxaZcXOpAQ.cache +3 -0
  426. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKJRYj4JRd0HcWxcOkyP-9-97tYE7hNBdbWsJabLYEU.cache +0 -0
  427. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vL/vLx9S70tRr-sRpryc-nqe2F74FqRh7v8D6WupBQi9Q4.cache +0 -0
  428. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v_/v_Rcf-6UDGcEpf9_h2dle0m1mGQAarWR6X04yYsqs_4.cache +0 -0
  429. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vm/vmfopQdFnsKQzKuuu15SPllQY_H02O2Aq1th73TKW6Y.cache +0 -0
  430. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wE/wE09fu8QcVTYAZEexPpX1PAUQRz0Zy2F9lZhjK2KQ58.cache +0 -0
  431. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wF/wF4qGEvmS69h8DHCAI32EwT78k2cHViAjUkL8Z1I8E8.cache +3 -0
  432. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wh/whuYDNpoV7JQyT7AC5grUG7YQOpNBwHid6GKT7jWyms.cache +0 -0
  433. data/test/dummy/tmp/cache/assets/sprockets/v3.0/x8/x8uDBvd5o58FDCU4baEJ0fLsjiQ5piZqTaSMhm19Q2k.cache +1 -0
  434. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xs/xs_ncAMwUYeSKXDLm-TqM8gk-9H7XjFt1GsL3E68AXE.cache +1 -0
  435. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yO/yOikccH8pD0ufEjGWckfu4ooNJFW9yDhnhBEkw9z54s.cache +1 -0
  436. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ya/yaKaPg6TFrKRtz81rt4Ug2O7TBrN3wquaV-ST0JlIQk.cache +3 -0
  437. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ys/ysNZtLVJ7TzSH4eKZakVHOvr7hZhlg-4bLgeMl0LcpM.cache +1 -0
  438. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yt/yteX5leOLZaMFXIqq3hOcz_7Y6c11h5_RNCTlN09TBY.cache +1 -0
  439. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zI/zI_1Womd93w6dFYrsswj94ILgXrJha7zVoVoJFGMShc.cache +1 -0
  440. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zX/ZXAaYM3l4CeZZUzZMTxeDRj_Sy5zer8dGXT-5tnDRRM.cache +1 -0
  441. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zX/zXOPfSBUC4dF2kpBpk7m2wO-XJZ4mAswwrLjQMWsTVw.cache +0 -0
  442. data/test/dummy/tmp/cache/assets/sprockets/v3.0/z_/z_a8Us1cyUTvypL3FdkXgWbHB1ZKLt7e34p9lzfycts.cache +0 -0
  443. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ze/zeBwqDxHFJtBvdiJKVB_L0U80912nUj7lIY47B6LnNo.cache +2 -0
  444. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zh/zhu2-UioBuypMwbNOm1cBpbeOQtXlmS20wa4GuvLjDs.cache +1 -0
  445. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zu/zu35iDCejhEjZn_QpCGtRoT__vuoBlzUQycyyksxLMw.cache +0 -0
  446. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zv/zvkOvfSHi5VUjxkdl1uD-LdPNE15nNw4sjYcRlZ0w78.cache +0 -0
  447. data/test/routes_test.rb +8 -0
  448. data/test/test_helper.rb +2 -2
  449. metadata +834 -12
@@ -0,0 +1,38 @@
1
+ <header class="header--primary">
2
+ <div class="wrapper">
3
+ <nav class="header--primary__nav">
4
+ <ul class="nav nav--primary">
5
+ <div class="nav--primary__right">
6
+ <li class="nav__item nav--primary__item">
7
+ <%= link_to '#', class: 'nav__link nav--primary__link nav--primary__link--user' do %>
8
+ <div class="user">
9
+ <div class="user__name">
10
+ Admin
11
+ </div>
12
+ </div>
13
+ <% end %>
14
+ <ul class="nav--dropdown">
15
+ <li class="nav__item nav--primary__item">
16
+ <%= link_to "Logout", '#', method: :delete, class: 'nav__link nav--primary__link' %>
17
+ </li>
18
+ </ul>
19
+ </li>
20
+ </div>
21
+ <li class="nav__item nav--primary__item nav--primary__item--toggle">
22
+ <a class="nav__link nav--primary__link nav--primary__link--toggle" toggle-menu="nav--primary__collapse" toggle-modifier="--active">
23
+ <%= inline_svg "admin/hamburger.svg" %>
24
+ </a>
25
+ </li>
26
+ <div class="nav--primary__collapse">
27
+ <li class="nav__item nav--primary__item nav--primary__item--left">
28
+ <%= link_to "Dashboard", admin_path, class: "nav__link nav--primary__link" %>
29
+ </li>
30
+ <li class="nav__item nav--primary__item nav--primary__item--left">
31
+ <%= link_to "Styleguide", admin_styleguide_path, class: 'nav__link nav--primary__link' %>
32
+ </li>
33
+ </div>
34
+ </ul>
35
+ </nav>
36
+ </div>
37
+ </header>
38
+
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta content="width=device-width, initial-scale=1.0" name="viewport">
6
+
7
+ <title>CEO</title>
8
+ <%= stylesheet_link_tag 'admin/application' %>
9
+ <%= csrf_meta_tags %>
10
+ </head>
11
+ <body>
12
+ <div class="wrapper wrapper--wide">
13
+ <%= render 'layouts/admin/header' %>
14
+ </div>
15
+
16
+ <main class="wrapper wrapper--main">
17
+ <div class="content">
18
+ <%= yield %>
19
+ </div>
20
+ </main>
21
+ </body>
22
+ </html>
@@ -0,0 +1,223 @@
1
+ require 'simple_form'
2
+
3
+ # Use this setup block to configure all options available in SimpleForm.
4
+ SimpleForm.setup do |config|
5
+ # Wrappers are used by the form builder to generate a
6
+ # complete input. You can remove any component from the
7
+ # wrapper, change the order or even add your own to the
8
+ # stack. The options given below are used to wrap the
9
+ # whole input.
10
+
11
+ config.wrappers :default, class: :input,
12
+ hint_class: :field_with_hint, error_class: :field_with_errors do |b|
13
+ ## Extensions enabled by default
14
+ # Any of these extensions can be disabled for a
15
+ # given input by passing: `f.input EXTENSION_NAME => false`.
16
+ # You can make any of these extensions optional by
17
+ # renaming `b.use` to `b.optional`.
18
+
19
+ # Determines whether to use HTML5 (:email, :url, ...)
20
+ # and required attributes
21
+ b.use :html5
22
+
23
+ # Calculates placeholders automatically from I18n
24
+ # You can also pass a string as f.input placeholder: "Placeholder"
25
+ b.use :placeholder
26
+
27
+ ## Optional extensions
28
+ # They are disabled unless you pass `f.input EXTENSION_NAME => true`
29
+ # to the input. If so, they will retrieve the values from the model
30
+ # if any exists. If you want to enable any of those
31
+ # extensions by default, you can change `b.optional` to `b.use`.
32
+
33
+ # Calculates maxlength from length validations for string inputs
34
+ b.optional :maxlength
35
+
36
+ # Calculates pattern from format validations for string inputs
37
+ b.optional :pattern
38
+
39
+ # Calculates min and max from length validations for numeric inputs
40
+ b.optional :min_max
41
+
42
+ # Calculates readonly automatically from readonly attributes
43
+ b.optional :readonly
44
+
45
+ ## Inputs
46
+ b.use :label_input
47
+ b.use :hint, wrap_with: { tag: :span, class: :hint }
48
+ b.use :error, wrap_with: { tag: :span, class: :error }
49
+
50
+ ## full_messages_for
51
+ # If you want to display the full error message for the attribute, you can
52
+ # use the component :full_error, like:
53
+ #
54
+ # b.use :full_error, wrap_with: { tag: :span, class: :error }
55
+ end
56
+
57
+ config.wrappers :ceo, class: 'list__item list__item--form',
58
+ hint_class: :field_with_hint, error_class: :field_with_errors do |b|
59
+ ## Extensions enabled by default
60
+ # Any of these extensions can be disabled for a
61
+ # given input by passing: `f.input EXTENSION_NAME => false`.
62
+ # You can make any of these extensions optional by
63
+ # renaming `b.use` to `b.optional`.
64
+
65
+ # Determines whether to use HTML5 (:email, :url, ...)
66
+ # and required attributes
67
+ b.use :html5
68
+
69
+ # Calculates placeholders automatically from I18n
70
+ # You can also pass a string as f.input placeholder: "Placeholder"
71
+ b.use :placeholder
72
+
73
+ ## Optional extensions
74
+ # They are disabled unless you pass `f.input EXTENSION_NAME => true`
75
+ # to the input. If so, they will retrieve the values from the model
76
+ # if any exists. If you want to enable any of those
77
+ # extensions by default, you can change `b.optional` to `b.use`.
78
+
79
+ # Calculates maxlength from length validations for string inputs
80
+ b.optional :maxlength
81
+
82
+ # Calculates pattern from format validations for string inputs
83
+ b.optional :pattern
84
+
85
+ # Calculates min and max from length validations for numeric inputs
86
+ b.optional :min_max
87
+
88
+ # Calculates readonly automatically from readonly attributes
89
+ b.optional :readonly
90
+
91
+ ## Inputs
92
+ b.use :label, class: 'label'
93
+ b.use :input, class: 'input'
94
+ b.use :hint, wrap_with: { tag: :span, class: :hint }
95
+ b.use :error, wrap_with: { tag: :span, class: :error }
96
+
97
+ ## full_messages_for
98
+ # If you want to display the full error message for the attribute, you can
99
+ # use the component :full_error, like:
100
+ #
101
+ # b.use :full_error, wrap_with: { tag: :span, class: :error }
102
+ end
103
+
104
+ # The default wrapper to be used by the FormBuilder.
105
+ config.default_wrapper = :default
106
+
107
+ # Define the way to render check boxes / radio buttons with labels.
108
+ # Defaults to :nested for bootstrap config.
109
+ # inline: input + label
110
+ # nested: label > input
111
+ config.boolean_style = :inline
112
+
113
+ # Default class for buttons
114
+ config.button_class = 'button'
115
+
116
+ # Method used to tidy up errors. Specify any Rails Array method.
117
+ # :first lists the first message for each field.
118
+ # Use :to_sentence to list all errors for each field.
119
+ # config.error_method = :first
120
+
121
+ # Default tag used for error notification helper.
122
+ config.error_notification_tag = :div
123
+
124
+ # CSS class to add for error notification helper.
125
+ config.error_notification_class = 'error_notification'
126
+
127
+ # ID to add for error notification helper.
128
+ # config.error_notification_id = nil
129
+
130
+ # Series of attempts to detect a default label method for collection.
131
+ # config.collection_label_methods = [ :to_label, :name, :title, :to_s ]
132
+
133
+ # Series of attempts to detect a default value method for collection.
134
+ # config.collection_value_methods = [ :id, :to_s ]
135
+
136
+ # You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
137
+ # config.collection_wrapper_tag = nil
138
+
139
+ # You can define the class to use on all collection wrappers. Defaulting to none.
140
+ # config.collection_wrapper_class = nil
141
+
142
+ # You can wrap each item in a collection of radio/check boxes with a tag,
143
+ # defaulting to :span. Please note that when using :boolean_style = :nested,
144
+ # SimpleForm will force this option to be a label.
145
+ # config.item_wrapper_tag = :span
146
+
147
+ # You can define a class to use in all item wrappers. Defaulting to none.
148
+ # config.item_wrapper_class = nil
149
+
150
+ # How the label text should be generated altogether with the required text.
151
+ config.label_text = lambda { |label, required, explicit_label| "#{required} #{label}" }
152
+
153
+ # You can define the class to use on all labels. Default is nil.
154
+ # config.label_class = 'label'
155
+
156
+ # You can define the default class to be used on forms. Can be overriden
157
+ # with `html: { :class }`. Defaulting to none.
158
+ # config.default_form_class = nil
159
+
160
+ # You can define which elements should obtain additional classes
161
+ config.generate_additional_classes_for = [:input]
162
+
163
+ # Whether attributes are required by default (or not). Default is true.
164
+ # config.required_by_default = true
165
+
166
+ # Tell browsers whether to use the native HTML5 validations (novalidate form option).
167
+ # These validations are enabled in SimpleForm's internal config but disabled by default
168
+ # in this configuration, which is recommended due to some quirks from different browsers.
169
+ # To stop SimpleForm from generating the novalidate option, enabling the HTML5 validations,
170
+ # change this configuration to true.
171
+ config.browser_validations = false
172
+
173
+ # Collection of methods to detect if a file type was given.
174
+ # config.file_methods = [ :mounted_as, :file?, :public_filename ]
175
+
176
+ # Custom mappings for input types. This should be a hash containing a regexp
177
+ # to match as key, and the input type that will be used when the field name
178
+ # matches the regexp as value.
179
+ # config.input_mappings = { /count/ => :integer }
180
+
181
+ # Custom wrappers for input types. This should be a hash containing an input
182
+ # type as key and the wrapper that will be used for all inputs with specified type.
183
+ # config.wrapper_mappings = { string: :prepend }
184
+
185
+ # Namespaces where SimpleForm should look for custom input classes that
186
+ # override default inputs.
187
+ # config.custom_inputs_namespaces << "CustomInputs"
188
+
189
+ # Default priority for time_zone inputs.
190
+ # config.time_zone_priority = nil
191
+
192
+ # Default priority for country inputs.
193
+ # config.country_priority = nil
194
+
195
+ # When false, do not use translations for labels.
196
+ # config.translate_labels = true
197
+
198
+ # Automatically discover new inputs in Rails' autoload path.
199
+ # config.inputs_discovery = true
200
+
201
+ # Cache SimpleForm inputs discovery
202
+ # config.cache_discovery = !Rails.env.development?
203
+
204
+ # Default class for inputs
205
+ # config.input_class = nil
206
+
207
+ # Define the default class of the input wrapper of the boolean input.
208
+ config.boolean_label_class = 'checkbox'
209
+
210
+ # Defines if the default input wrapper class should be included in radio
211
+ # collection wrappers.
212
+ # config.include_default_input_wrapper_class = true
213
+
214
+ # Defines which i18n scope will be used in Simple Form.
215
+ # config.i18n_scope = 'simple_form'
216
+
217
+ config.wrappers :hidden, :tag => 'div', :class => '', :error_class => '' do |b|
218
+ b.use :html5
219
+ b.use :label_input, :wrap_with => nil
220
+ end
221
+
222
+ config.wrapper_mappings = { :hidden => :hidden }
223
+ end
@@ -0,0 +1,7 @@
1
+ Rails.application.routes.draw do
2
+ namespace :admin do
3
+ get '/', to: 'admin#dashboard'
4
+ get 'styleguide', to: 'admin#styleguide'
5
+ end
6
+ end
7
+
data/lib/ceo.rb CHANGED
@@ -3,6 +3,8 @@ require 'ceo/engine'
3
3
  require 'ceo/rails/routes'
4
4
  require 'ceo/paginator'
5
5
  require 'ceo/iterator'
6
+ require 'inline_svg'
6
7
 
7
8
  module CEO
8
9
  end
10
+
@@ -2,3 +2,4 @@ module CEO
2
2
  class Engine < Rails::Engine
3
3
  end
4
4
  end
5
+
@@ -3,15 +3,12 @@ module CEO
3
3
  #
4
4
  # Examples
5
5
  #
6
- # iterator = CEO::Iterator.new(Apple, current_page: filters: { only: [:id, :name] })
6
+ # iterator = CEO::Iterator.new(Apple, current_page: 2, filters: { only: [:id, :name] })
7
7
  # iterator.total_pages
8
8
  # # => 7
9
9
  # iterator.current_page
10
10
  # # => 2
11
11
  class Iterator
12
- # Public: Returns the current page.
13
- attr_reader :current_page
14
-
15
12
  # Public: Returns the total pages paginated.
16
13
  attr_reader :total_pages
17
14
 
@@ -147,6 +144,7 @@ module CEO
147
144
  things.select { |thing| whitelist.include? thing }
148
145
  end
149
146
 
147
+ # Public: Returns the current page.
150
148
  def current_page
151
149
  (@options[:current_page] || 1).to_i
152
150
  end
@@ -1,3 +1,3 @@
1
1
  module CEO
2
- VERSION = '0.1.7'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -22,7 +22,10 @@ class AdminGenerator < Rails::Generators::NamedBase
22
22
  end
23
23
 
24
24
  create_file "app/views/admin/#{@controller.underscore}/_form.html.erb", <<VIEW
25
- <% # "f" is exposed as a form object %>
25
+ <% # "f" is exposed as a form object (example below) %>
26
+
27
+ <%= f.input :name %>
28
+ <%= f.button :submit %>
26
29
  VIEW
27
30
  end
28
31
  end
@@ -1,5 +1,6 @@
1
1
  module Admin
2
- class <%= @controller.camelize %>Controller < AdminController
3
- # leave empty for basic CRUD
2
+ class <%= @controller.camelize %>Controller < CEOController
3
+ # Leave empty for basic CRUD, or change CEOController to AdminController to
4
+ # override basic CRUD.
4
5
  end
5
6
  end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class Admin::AuthenticateAdminTest < ActionController::TestCase
4
+ describe 'controller inheriting from AdminController' do
5
+ before do
6
+ @controller = Admin::ApplesController.new
7
+ end
8
+
9
+ it "calls #authenticate_admin!" do
10
+ mock = MiniTest::Mock.new
11
+ mock.expect(:call, false)
12
+
13
+ @controller.stub(:authenticate_admin!, mock) do
14
+ get :index
15
+ end
16
+
17
+ mock.verify
18
+ end
19
+
20
+ describe 'when #authenticate_admin! is not defined by app' do
21
+ it 'returns false when calling #authenticate_admin!' do
22
+ assert_equal false, @controller.authenticate_admin!
23
+ end
24
+ end
25
+
26
+ describe 'when #authenticate_admin! is defined by app' do
27
+ before do
28
+ ApplicationController.class_eval do
29
+ def authenticate_admin!
30
+ "hi!"
31
+ end
32
+ end
33
+ end
34
+
35
+ after do
36
+ ApplicationController.class_eval do
37
+ remove_method :authenticate_admin!
38
+ end
39
+ end
40
+
41
+ it 'defers to whatever the app defines as #authenticate_admin!' do
42
+ assert_equal "hi!", @controller.authenticate_admin!
43
+ end
44
+ end
45
+ end
46
+ end
47
+
@@ -18,7 +18,7 @@ describe 'apples admin pages' do
18
18
 
19
19
  apple_name = 'Red Delicious'
20
20
  fill_in 'apple[name]', with: apple_name
21
- click_button 'submit'
21
+ click_button 'Update Apple'
22
22
  assert_equal 200, page.status_code
23
23
 
24
24
  new_apple = Apple.find(@apple.id).attributes
@@ -35,14 +35,14 @@ describe 'apples admin pages' do
35
35
 
36
36
  it 'should error when validation is nil' do
37
37
  fill_in 'banana[name]', with: nil
38
- click_button 'submit'
38
+ click_button 'Update Banana'
39
39
 
40
40
  assert page.has_css?('.field_with_errors')
41
41
  end
42
42
 
43
43
  it 'should error when validation is empty' do
44
44
  fill_in 'banana[name]', with: ''
45
- click_button 'submit'
45
+ click_button 'Update Banana'
46
46
 
47
47
  assert page.has_css?('.field_with_errors')
48
48
  end
@@ -4,79 +4,75 @@ describe 'Apple admin pages' do
4
4
  include AcceptanceHelper
5
5
 
6
6
  describe 'index' do
7
- before do
8
- 30.times { Apple.create }
9
- admin_page '/apples'
10
- end
11
-
12
- it 'should not error when there are no apples' do
13
- Apple.delete_all
14
- admin_page '/apples'
7
+ describe 'without apples' do
8
+ it 'should not error' do
9
+ admin_page '/apples'
15
10
 
16
- assert_equal 0, Apple.count
17
- expected_text = 'There are no apples in the database.'
18
- assert page.has_css?('p', text: expected_text)
11
+ assert_equal 0, Apple.count
12
+ assert page.has_content? 'There are no apples in the database.'
13
+ end
19
14
  end
20
15
 
21
- describe 'correct attributes' do
22
- let(:attributes) { Apple.new.attributes.keys }
23
-
24
- it 'should have the right number of headers' do
25
- headers = page.all('table thead th')
26
- assert_equal attributes.size, headers.size
16
+ describe 'with apples' do
17
+ before do
18
+ 21.times { Apple.create }
19
+ admin_page '/apples'
27
20
  end
28
21
 
29
- it 'should have the right header names' do
30
- assert page.has_css?('table thead tr th', text: 'ID')
31
- assert page.has_css?('table thead tr th', text: 'Name')
32
- assert page.has_css?('table thead tr th', text: 'Fruit')
33
- end
22
+ describe 'correct attributes' do
23
+ let(:attributes) { Apple.new.attributes.keys }
34
24
 
35
- it 'should have all IDs shown' do
36
- Apple.all.each do |a|
37
- page.has_css?('table tbody tr td', text: a.id.to_s)
25
+ it 'should have the right number of headers' do
26
+ headers = page.all('table thead th')
27
+ assert_equal attributes.size + 2, headers.size # 2 function headers (edit & show)
38
28
  end
39
- end
40
- end
41
29
 
42
- it 'it should include a new button' do
43
- el = page.find('a#new-apple')
44
- assert_equal '/admin/apples/new', el['href']
45
- assert_equal 'New Apple', el.text
46
- end
30
+ it 'should have the right header names' do
31
+ assert page.has_css?('table thead tr th', text: 'ID')
32
+ assert page.has_css?('table thead tr th', text: 'Name')
33
+ assert page.has_css?('table thead tr th', text: 'Fruit')
34
+ end
47
35
 
48
- describe 'pagination' do
49
- it 'shows 20 apples per page' do
50
- assert_equal 20, page.all('table tbody tr').size
51
- refute_equal 20, Apple.count
36
+ it 'should have all IDs shown' do
37
+ Apple.all.each do |a|
38
+ page.has_css?('table tbody tr td', text: a.id.to_s)
39
+ end
40
+ end
52
41
  end
53
42
 
54
- describe 'pagination links' do
55
- describe 'first page' do
56
- it 'should have a disabled link' do
57
- el = page.find('nav ul li a', text: '1')
58
- assert_equal '1', el.text
59
- assert el['href'].nil?
60
- end
43
+ it 'it should include a new button' do
44
+ assert page.has_link? 'New Apple'
45
+ end
61
46
 
62
- it 'should have a link to the next page' do
63
- el = page.find('nav ul li a', text: '2')
64
- assert_equal '/admin/apples/page/2', el['href']
65
- end
47
+ describe 'pagination' do
48
+ it 'shows 20 apples per page' do
49
+ assert_equal 20, page.all('table tbody tr').size
50
+ refute_equal 20, Apple.count
66
51
  end
67
52
 
68
- describe 'second page' do
69
- before { visit '/admin/apples/page/2' }
53
+ describe 'pagination links' do
54
+ describe 'first page' do
55
+ it 'should have a disabled link' do
56
+ assert el = find('ul li a', text: '1')
57
+ assert el['href'].nil?
58
+ end
70
59
 
71
- it 'should have a disabled link' do
72
- el = page.find('nav ul li a', text: '2')
73
- assert_equal '2', el.text
74
- assert el['href'].nil?
60
+ it 'should have a link to the next page' do
61
+ assert all("a[href='/admin/apples/page/2']").length > 0
62
+ end
75
63
  end
76
64
 
77
- it 'should have a first page button' do
78
- el = page.find('nav ul li a', text: '1')
79
- assert_equal '/admin/apples/page/1', el['href']
65
+ describe 'second page' do
66
+ before { visit '/admin/apples/page/2' }
67
+
68
+ it 'should have a disabled link' do
69
+ assert el = find('ul li a', text: '2')
70
+ assert el['href'].nil?
71
+ end
72
+
73
+ it 'should have a first page button' do
74
+ assert all("a[href='/admin/apples/page/1']").length > 0
75
+ end
80
76
  end
81
77
  end
82
78
  end