rs-active_admin-state_machine 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +170 -0
- data/Rakefile +17 -0
- data/config/locales/ru.yml +4 -0
- data/lib/active_admin/active_admin-state_machine.rb +1 -0
- data/lib/active_admin/rs-active_admin-state_machine.rb +1 -0
- data/lib/active_admin/state_machine.rb +9 -0
- data/lib/active_admin/state_machine/dsl.rb +75 -0
- data/lib/active_admin/state_machine/engine.rb +6 -0
- data/lib/active_admin/state_machine/version.rb +5 -0
- data/lib/active_admin/state_machine/view_dsl.rb +34 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/admin/admin_users.rb +20 -0
- data/spec/dummy/app/admin/categories.rb +10 -0
- data/spec/dummy/app/admin/dashboard.rb +33 -0
- data/spec/dummy/app/admin/posts.rb +21 -0
- data/spec/dummy/app/assets/javascripts/active_admin.js +1 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/active_admin.css.scss +29 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/ability.rb +12 -0
- data/spec/dummy/app/models/admin_user.rb +7 -0
- data/spec/dummy/app/models/category.rb +3 -0
- data/spec/dummy/app/models/post.rb +29 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +64 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.sample.yml +25 -0
- data/spec/dummy/config/database.travis.yml +4 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +38 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/active_admin.rb +211 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +253 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/devise.en.yml +59 -0
- data/spec/dummy/config/locales/en.yml +10 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/config/secrets.yml +2 -0
- data/spec/dummy/db/migrate/20130817004304_devise_create_admin_users.rb +52 -0
- data/spec/dummy/db/migrate/20130817004306_create_admin_notes.rb +17 -0
- data/spec/dummy/db/migrate/20130817004307_move_admin_notes_to_comments.rb +26 -0
- data/spec/dummy/db/migrate/20130817005638_create_posts.rb +11 -0
- data/spec/dummy/db/migrate/20130829000200_create_categories.rb +11 -0
- data/spec/dummy/db/migrate/20131025231118_add_super_admin_to_admin_users.rb +5 -0
- data/spec/dummy/db/schema.rb +62 -0
- data/spec/dummy/db/seeds.rb +1 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +10482 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-4/-4a2vA0wrf8mWY6BVS8V0OWe7y52xfOJq3ASGDuQU7g.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-T/-TpFi5C5b08ArUFulbKmF3bv1rvD1t_QK4LML_LGVK0.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-x/-xpI3mHaHVevCSh2H_9ch5-7q2iuTxgP0g-2R_P9kks.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0F/0FNmyNNrU75_w0CV_7caSNAuOGoR6AtHaa52Nvg7n-g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0G/0GOwsvGTPfVHrfl-6fQ14W2Nm9Z0WUJKLVJSeFa_N9s.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0_/0_DrjUFdZfOY8m7WVmysTqXaqvgzD_IQ8_k3nCI0tDM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0c/0cwraeoJB1sfon4iD-1xym5zh6UTkPvgbyJRhh2Tghk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0q/0q9OBYQfASgaLOufJ9-q2Ut93u3MfQuf3GSHr6DtdWQ.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1X/1XOJcjuFmQgXPR4xGiAnEysBf_f8SKBg7mn2xj9omn0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1b/1b1r5vSeNldzVvd8h0PyaaBWZMfuw9n8ahTBdJf2AWk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1b/1beEhFKFC2N5NSANHYcObQdo0hWqlrufsMhry-Nz81c.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1h/1h079VW_pW3cwz5tH-bYK3upp1Qi8xuRo6uojaUj020.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1v/1vc-9I8GYGHdIBZ55arO3Rg-jOyluTUnuN5ivlVuPWA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1w/1wi5O5HPfdQdmhaJR1Ot6B7yU4tHn4WzDg3W8F35gVg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1y/1yiEEBJs_Zm9gpqgjnq_ty3Gk1ipwlBip-w4NF1AZb0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/20/20ZeVyi26K0RnrvbyeFR4dcx75Z0Xx5cVjR1v_DDPyg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/27/27BdY8JkF2nF3uvpB0bFJQPPFLk9q5rtYgE2Z8kinBw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2E/2EKit3TY1CAKyvpAxoDZ8VPD5gUWGmbxYwOjRS-3If4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2L/2Lb-UtDIsD2IoweKODYTkBD9-hVJNJWBuiOOoOEIoYc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2T/2TLhm0SDzdogncoDRduUUNq_WdqC9uRVsuu_E3b1ZGk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2T/2TwxwtPczIJMqW8x-N3EvZNMFcJqdcBldFKaBP_Z2G8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2U/2UrvcU5Ek-q6cZ_xFO1u2Bgdxv_2sRvEOe3Cx92NIoA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2Y/2YiFZE0Tm-paJiMwnDClJOBODdNVcvDc3lQEv8VXKDs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2g/2g1E9nh8s6iBldRtwmv7Uc_xTXE539qfga61CvucY3E.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2o/2olarzXfQRjKl2SD4SWMLYY_2V33yJ7Y7b-JJ8RpgYc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2p/2plajzbh0Dag8Aa1h21sTRsZZI-Z3J1WJXaiypBydOw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/31/31hiZ011AD8i5hEcuwJ7rWpHau3byHlDQ_v3bmSXnRs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/34/34LI994H6J8v9ZN4C4fz25NMrGoHpq9HGbR3v7Ufjno.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3C/3CAUrh262DdE0fRCYraCt4VGEqrzYtKeKyQv4c5iw5E.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3I/3IZavIxKArhvy1IJ_2blQ16yVO0ZTNC8RH60yF9ZEVc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3N/3NddWUu5OXDlZk1_Q4Mai0-I-m49YjvQnkXSHrAK-WQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3V/3VaEP41aX7QxPKgPfKVvB3BP_ThTGqZyA7UJk1hM_vw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3v/3vOct6FuCmH7WEBQDeKWlOWf0DoQr8d-eqBji4X8V6w.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3v/3vfsdkWj8ryR3jW2p1mFEH1Hlpo6Q42oibSerWwQKN8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/47/47I9ksqIfKq3ZKpNMiqajCBSF_1V5weHMCRmu9DHjNA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4L/4L7zfwcjPq2QFoCsxaeV7ZN6lvoQmf1tYVUOn-7q7j8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4Y/4YrT0GAVviUzX_xBXOs9_PrrN04_4y6d-S9wg0xviYQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4q/4q7H3r2oBfi-1hdIFOBejXJXDcMMiBjaaSk06Q8c8o4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4q/4qkHmU4k0bvC8-3eEn1lAcePi2jkY_lRZxKedhvyI4U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/59/59kdNS8RezmbEaCaJkl5L3VVWe3JBo0muXqN-LlekSc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5E/5E-GodD2k2assdmVar6dZwen52x5Cud70GC3HVU_iz8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5J/5J3_SpPdjZuV9sdyo20FX-bfSVK9zFXcqPXgu23dGjo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5R/5RVyw1TSFRCEdg4jeRdjmayJMid7mzMdOPtESzYtN60.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5W/5WFMhL10RiVy0PFpj7tfHXfspBmi6NvgFYF6vrLUZic.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5d/5d1hNl4pdNZICjqAtVRCEcnSomNfUSxJQk7mEgVh9x4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5g/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5r/5rvP--bCc4aBjLHX0n7R-HAgXFFXaa3aVnHM18HVNdU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5z/5zBtneMOgwnT4NP2HxwIlrwCV7C_7cNIH4V7Z_Y-4SY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5z/5zGBbe9hKlOOvOFk6Tw1aFwkVqNZWOebiHf2f5fJOrs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/65/65jsMMbN9-WEWuiBTPnDB3GVcqzIq9peXz2m3No96Q4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6H/6HC7t9IWhG0wNdspLJvvY5l9GO7lXl_jyjzE_PG4T_Q.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6K/6K1n-is9nuNCk7CEEF9rseSEpPIkCcbk2IECYkWWRp8.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6X/6X6LhqMF482wAfIPYXUo4quu2hUoLzrLq0-Md-Y1bkM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6f/6fATNfLWTwpybwIDOkjl43nuee1svSLdWv7QmfRP51g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6p/6p8AjRMb_LllDXyg1J1bQUKORfKZ3dvlE4PQS5iH-Ic.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7-/7-Ma5PTi63JfFzI6E3hKQwKVa6RDgLzixoTfikK2fnk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/77/771Mpru9QfnvPx5d-i3mVuK3jcnS3tVaz1vwYkDvG_s.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7A/7AVGGDXsu8VYRB-EP-WDW03DlqE6yFtFeGOYDqig5p4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7C/7CZ6qHPRRPG_UHE4TweHm1ut7gOmJhfDAOeXQMWp_t4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7E/7EwrDzQ1H75xiUDgw5GI0hGwT_POr8CpzT3DG3pzElQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7k/7ksJbghz_kiNAHquDIeoZjyL_c7jhxfKyH_tZoe0KsY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7l/7lxEZktJ3kxGM54eNwiYRm0kKl1KLCSiSknB9j8hijo.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8I/8IM07LAmdFqhIXHHP4qT4f-kNAOHpYY5vQg-YIOjcCM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8N/8NnjMe5TgI5rXOJsxgrjnaRQNCrTPji7TRMjfwIWFdw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8R/8RzLLwAZiLTGLfsmgxal4mheIGYwo0apGBby0VHQqDw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8X/8XbdEWlayllyqKB1qvcsd7GhWOukjcAuyCbOBu2IGXQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8e/8eOmea1k2Pifwt_qVx7hmbRFzKdb7V_5dbd0lOicUU4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8f/8fdfKODDStyP4EfU9H0_KIRaXGvIwgzuygDKHPCAZqw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9C/9CVmbEBxBjQTq44aTP4p4KSYWMeP3YmP31jH__-d56Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9T/9T1RvleHpXYQygUuMlmyfITpVEgBYqdXjF1QgwYB5nA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9ZbPLi0oLTZNN3aSX_2DhoVL9rafcmpB9luzxcVW1WA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9q/9qaFCSKDbv3tIt0z65u3JqU7by50doY_RGLKUid18mw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9v/9vzaKZkOzxkRWz29rBburdzD-1hHGUymQ_S49JnV-Tk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AS/ASXfNgb-8q4r3-jPIne0VDazMimWBHbRHtdStFzWyHU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Al/Al4heetlBSljy2p7AfdhS6zOjnh3cuXEgqDPcr_ArhY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Aq/AqmfqOIufqP0J6d6eI-xQJ7CG-LAoryqfy1aDTw-PEI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B4/B4AMi42yroN9tfgi6gAlafLQKxfQBaSJ_yp6V5uc-_c.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BI/BIbIRrjQTGcPWK18VT8hebhrDiyR-CEso-05MIdAnnk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bf/Bfg4UMpV5d9dpFJzsljp30VVjiwC8srbvTB_duX8b7s.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bi/BiwQTlQMBMNn249a4eV6_hiamhAyppHgygqz3tYzp4M.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bo/Bo_ltwXafOFlv2fONDD2XxO5qFzDc7KmhP3-FS1I0YQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bq/Bq4FiMDYUuA0ts5xiE5gmM84_Fd-xXrSRwxqPU56ZD8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CD/CDY-DZrZ9qawY82vcrVWzv6qTSdD5RwB78fx7PVQvic.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CJ/CJXrgyX3yXMtJS_MzfpDAKLkNpE39D9l0GRMTwwUtyk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CK/CKiufW8WhLy_vZ43DDovaj723REYj1Mo6wl9T07MDU0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/C_/C_DYq1hWOk7MyWDZZFmm6lZ4pD1iCoyxZeLYsjzMzTw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cb/CbXSSI849n7j6eQEjP5zlxww-9oQw4Dy1ISXWynAFw4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ce/CePu7EF7SIPYtzaA0LHPfgJTQv3utNT8BLbCiIhNka0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cr/CrZNLM3Avyh5laf1dYsIhN3Yz_ZzUzAWTyEYYf5toOA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cu/CuZ0NsGaUQXGgwv-5kzY3MQH8FNaIxJALKmwDCU1FX4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DH/DHMDaKha-ZOVrA0HxnuA8mI2MAx28F8KL6uV1eHxLtM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DO/DOMXImsHBQ6A1n6ugOOGhNeTbv_70WGah7wyc4X7Z-U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DV/DV2Gt5V1hIubgHU9ojeByXQ0UDNi-Tf1QbyX8LOBcRQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Do/DoOGn0YOGK9gVdhPoMArhqUyjqNKV-z3oBRsAFe844A.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E-/E-A-2OU7oxgSaiZK32Ci0yKIA50bHTrL4wmuLgqp8hc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E-/E-adCeiIuAg7XKXK1qKicF1DZZdmlGrDbQGXvoS3AW0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E3/E3aRaxEVDenaHwN_81XvKNWe8UNmsyyyo07cZqeiFP4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E8/E8x0JYEUObNj7v0O6RoWnrTupuOv2i1HnxewmDtxKy8.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EO/EOtijm29-1p2dmQ0VIURnVR5Rcygzlwb_oulLdN21hM.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EW/EWge-aNuBt8KnQLbEr44he2fmX38knzmt6yroH8qL5M.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E_/E_gk3yRsJ1Exe7u4z63O9M_L2qrpHWLLcOf7I0KpP4k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ew/EwSfgVIRYfGvNSqhBA8quSAlFsCnWl74inNmCyGGkgo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F0/F0UMJ4oS_dDhDI1ny4v6b-ENVeNijaGyGIPXvnWOZ_A.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F0/F0ui4NuuvXTx9PWRwE0qlKH6ZWI5qxqyne2_FZNmtFE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F5/F5n0zHEHj-2zlc9YIkZ9yRW_c4V1em0ipTJR5Mevq98.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F5/F5rZtvBQJqjNZLjgCKg29pe76z8cv-uoqbobIg8mdVU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F9/F9euzlNK5h-aTTdEfrDZGkLalQPAUWrhYybrVi66H_4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FE/FE7hVUT_jJ6yPTK5iKMMlHEZ4LuCUV_ZamjsDIDoHGg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FH/FH_5llzXiUjbGOG8YbSmr3y86XN0GY6_D-AREFYYJOY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FL/FLDquncwZL8trRG4jnhNe90orfvfRzm-ARe7Eh0XWgY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FL/FLFGfh1VJ_edf1lJoX0QKnhFO26zNPi2uVxzJa0pYDE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fj/Fj2tFj2vfmsG4fns4K1ccvMbJH6WimD0iu6JMhamAgU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fw/Fw7TdtBs0dtiMXxjCUtoOI4SYrwqLmd1QI6c8aCAJkA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GZ/GZfjXMwmAk96RL3CJFcZHRm9PbWANXlS5sZxTpmvkDQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gi/GipEiVC54cz4ofKpI89ua2eX8jWkSwHRn-2qZoEqtXQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gm/GmISJp4GJXrvjSZbonfDC6lcpZM-wVwXU3Ih5jVj2RM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Go/GoztcmL5w7e8Dx9wRGGO_e42HzYipOmq9yIbA3KAArw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gp/Gp4-_Bi9I-g4ZniMjwc59n4tyIRh0Z9akZv8rs-2jZY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gu/GuBR0YhQkORHtyzePA8Ge07nS3BRczKZD18QMWmocQU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H6/H6PZyJ_D1V_Quof-fJue3SpGBYDsVFwwWZiLMt0T5OA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H7/H7Cp20l2U7pARFHDpDDfMg6M-DO_c7GxktATYkcTpo4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H7/H7Fm9rL8KZS4ALNOV3EIbKwubS7D0gZn0limN-rCsSU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HW/HWIthUxa0eVafKIeVIrBiJaGtDE07zvY2l_cwGaWuyA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/I0/I0B9YwnpFz5_MA_8yO0fPZSqdZdEg6VS7Xn19emMXXo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IB/IB1dIAZh8kPIhArsoJWC2LmmvcgQJ2A8CC96xjp_wzM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IS/ISVdp6EmMBEvp9PoC8F4AbvKuhn3uctnIJRwE0KF_pU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ig/IgWyuMSbrBmxH_6yp-9ONGtp19CVNSc1opyZtwoVDIA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ik/IkVSAfONoIwcPKGQSpvC43gv8RiASIlN9bFl-L-dFFA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/In/InP5MCLxgvXpGVHaMAMvsnvjRReZcRVT_frSWH9AXV0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ix/IxbcACxJ-qZGYueKeYANEKInZM3nkzdUONM16FUquZM.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J7/J7EWFb9kC479LbFPnAFhj4a7L6htDLCDzHBRFKxgF4A.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JP/JPnTzJz6NVn8AUq3vXqXvH1Ikd8Q_isiNcH28a5hBzY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JT/JTh_CxOmujY6kQp5Bp2qK2p8mELFyOopV0rwDpGKJPs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jg/JgOZd3t8iouvjtLSJnI899xlnTvsA0DT1EDZSmReZMs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jl/JlVG8pkTo0oxI_W49oJYGj-iul6Ah303aX7SuXGMY3k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Js/JsF8Vszdwub-tEYwBG7tCDDReeZ0RjFfCPBqaKjgGrU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jz/JzOOLVGutFfCoBGO6oyKC9cqEzGCg1IZSGiUzCpKEXM.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K3/K3gK4dPTwQWv3Lf9jkm2qu7mgFbsExXXxLue6STLgFk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K7/K7X84Mr4ex8l2x1kGp-ZdWs7t87B6su8t7sR49KFCAY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KF/KFJuCz0vJGV1OB120nknX1_WZU0FBh8eUNtC3BI_J5g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K_/K_2GqODqVp1dn_OUCW0CdE0mppmjgDe0s9YBiAt-tqU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ka/KahVYgcB53e_jSKhv2KS8Fk8ELIy9PyQQzjlQu5TGkg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kf/KfwGc2qpDpLQy3ofKJYrGCDc1cK9tuZ_jMhTzPWcUj8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LD/LDEj7BSUwg9Iz8L-1tq0RFpRQGXEyAVN1ua_trTMZ0I.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LG/LGgXI7K03l4ZCBFAl5fKuvMzPorwH1JJy4SePwZ59aw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LM/LMsJ5NXKaggej4b9ME6gdy0LknjSyJ5epfjgGw4rJDc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LM/LMy85zJjDWW2WOj28qcM64YU4TUo7p1GGS1xiFBikHg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LP/LPp1l-lrZR9_mBDoZKj-FhrRc7E8ngQuh4HJrWWgOWI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ll/Ll4pVbc-wRqzAt75t17DvaGGNQaSCTINutAuxgZL8Us.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lo/LojyiGX9HUNcqbJAyhz5iRlymND6bWcDLyPBUKKYXB4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ML/MLMYg1bCzZlEp9UXFB_Eadq0TaR82G9qHKD52QtpSFA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NK/NK3mITRek-1OTcB33N9JGzRz3yEbfKnarr4xPhj21as.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NM/NMZyPHHxSvlDmIQzeXAU41Lih0Vv6mZOMESle2MF1S4.cache +4 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nv/Nv3h0hutE3Hx69dR1-jyVnaynVMuJfUAaaOyHUCUtfQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ny/NyWMUr-kU6y6trWrI8LlxzJj-QYaHcrDNpzsq7jHxUQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/O6/O68B5C8lPKMgtlP35RSp9h9mEeKRjHAzy9p8bLNtoUU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/O_/O_EY1hhvhp5em6Th2Lf2zQZAZNyY2l5wA9BRzxfm7SY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Oc/OcQ2kJqgsWceNL9Ua5XsPkloIMGqLTmtv5BWDPUQ6Ms.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Og/OgUE-psB7Zpp1ADTz1_v1682A_yuxJGKki9R08pta7E.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Os/Oslx8aGZH8QdVjdv4oxKrd-pYS36BUfLVvgxdRSEX-8.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PP/PPWEJETmCuqCF5NfRQyZAIMBPVycGmFhKjrAgoDdLMU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PR/PRa3ixZGdDwHhGLHrjkfGt3Wmh_W6HBvyZMjv7BTUbA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P_/P_xbwnSwtSwCd7EgPAZly_kqDOy5Rq6TD0e5IYTiYxo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pt/PtDWYBM5tD7iEuguqbR8rMEPGl4af1nJ2t2ks_xH3ts.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q-/Q-Q-cTV96ni4D3b90xsRDJm-jJ1DCHuGmZFyGTAyvZQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QE/QEfbQoMBW1zJmfm49mh46fTBqGHjvaQjKlTQOuqKssY.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QI/QIvhN9BPMQFLZFhkNJsyCCXvC2padv9pWPcSu4LHrRU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qf/QfUBUe34_hRrZIIqGRyfMisJYuIafuEPg13_doro5u8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qh/Qhxg6wo4EPEGSGiSRdzb40HauqmPmKxE2sf1nFqjDEU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qw/Qw7RslFsj_TnnF8KdzsMd3FEh2CoDUAEY7YL4NPzKCI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qy/QyJpbvPs4bp4QlnOiFh0ixc-IBDUMA4tNZId8wFQM7U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qz/Qz4OadvMqXnjRajyKlU8MRKvRBciAPjPdi3wR5TkJ1A.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R1/R1NpIGlrvGhtG5xnjpXDqBr2lKxmKu433ZIjtUx7JPs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RC/RCWmjEGuAlK8tfTW33n3L5wsI_xmbC06mYuoF0AH57o.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ri/RihCUWOrwDY6roPctnMZImqsS8c6V0Q4dabzo34So1Q.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Rn/RnP3faQb8J_JZk_ttv4krlgVjlSy6ayzdZFJD5KnxMg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ry/RyS05VmCAIBzekw4zvAzlSgHFCNmau0nRIxhAPC1xUo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SG/SGFXVTbWzBEBGz2O1IKd3o5lVG7xfvYaM6-6hzNSomU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SO/SOW-J2LWMNas1iYnkYnF-pA-fd-UP0Tf-i7vaNkhMhk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SS/SSRzNLuUqNN7s0idXjtDPzjDgmkZoVatPxh6FNu-D7M.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SV/SVzHA4OefffBvLOfjMArf8-3a8hYlIJ2TnN-uI4E38Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sb/SbMTU_ll1Jm4KSrCISkC4gYBACqPpb3yaqlSBu9Km-0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sd/SdBhPl2a7p9TUBxloBJNEr4ruGlokYkMe-ubpWmWRQc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Se/SepdY4jnUfOWMKcBpXRFANCwmRkb3--o-NaLQd46rgo.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sg/Sg2SXgh9XKtuAr_vRsm3HEJxwvwv04tS6OQmK4qXmhc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Si/SiAo3u1JT4nv-VVsUkM8T2Q2ho1kDj7MViNNtKjV3gw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sw/SwTe9VCyV6pCaTW0EIKs3SwPT0ZT2gcDHOk9-zssV3Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sx/SxinJcCx6VKwUP-KR7JC4QuZWHpjMElYRy5dtDQTLIo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T2/T2ATkpzWepRg9zGgqIvRXFpciTJboKiq9CbX2j21JBI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TS/TS06qM-_3QP2iwX1VEwnYSvKsEyIrOlMsdLqjApogD0.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T_/T_avTKnNGcGTX3m9zsnKHtW_Sx5MIGhEdLH1EwHL4nc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Te/TeF0nOv-iVhd_5TtThhX81RAIAEDwBCOkL5Z0ZF7oh8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tt/TtBZufGd_oi8PkUYx4ThFTxyyYSIi78Pue4a9Lk9ro0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U1/U103FBVoqGS85C7JLzdJfsfXDb7wo2iFaMzbUM89rVM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U5/U5AzA-f8OVd1fuoBF1GHJPZo-y1QcJllnnEGOQcd2nc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UL/ULh-J--aXepTos2EOgzF3VycjVGlI2nb0VK0ikbDrHU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UM/UMScSgY4g4G8SwYPJ8p1UgWeFvnlzTlWXbYzQ5y0n3k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UR/URxrxe2CBcyJkZwdZvXfdU3hJ-_B0jn99Gp4Mt0_6I4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Uc/UczSWgt7YqLB7gpChBzEhGyxpHzYNKX7jkOxuyraOuo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Uo/UoW3FyyHYS6nUkmj5FvUz802GbAjhL4gKLW0o17gO9Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ux/UxzJo0qsRdExXsQ5Lw1GMTFh1WZvvwVIMoxQuOTjgGU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VB/VBlP6H3g4cHHQJ7tImj-zx4xmVXtGIChj_7PcldZHfg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VF/VF-lfWnWQ2Kvifk9FM77xCmfCKRV6olp0Gr8dKq9sUA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VN/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vl/VlzcrfXBEHJ5xmCAfrRVtdq7tr29AwGMvVod6SZcXDc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vt/VtPmB1OGxwIoVNdfrykTIpOMx2eAuUCqEgMaB6YKWGA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vx/Vxi5odvUaEy7y9ooIqfyzWk0yiaPNO8I66GNGLMIr7I.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W4/W4379TDFk9IkiGRCs-LrpboSCVyIRfHEyfactJuk9Z0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W4/W4kDFlIKZhbHNfyH-1b5bwqyYtHF2sKDz2qSOyBPB5g.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WA/WATvyELzDPe5ZE1-3sSJA_1qYjC-Mh2aFOo9YIFmQl0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WE/WE5hJGE0uSdvow-5BnueTPWs8iSz3-TKGCvsyrgnwYc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WI/WIJHZP5bgfOPZ7VfxbEUWZYQaQntCap1kh92GfF2Ej4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WM/WM0CykCsboLiRrnWm52pzeXeaitXYuigwY0dnYbooec.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wb/WbcCusRNVTYOpey5FpvC1hRRb6xWEEclGs7918YO5R8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wg/WgsEKJBtrA49AZEbX36B7rLluOak3Fq8FQspgKfU-x8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wn/WnHSGlhOsMrG0J10XSuMEvxzVoJ4F65AgeR_6jwiWK0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ws/Ws0My7I4j2JgcRk5z7OljX0uMnnR3_Rht17rZzCqqIU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ws/WsjZocx4LLvMw-1ACJlK0ruh7QDPfj5BwIlsK9KV-Wc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wx/WxsvbeF2oV9rbHIbFoh9lggwhWWH6tISFxPT18n4AkI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XI/XI7ZQ-61RgllMEVeNcJiEUD04YwIFR3PfyP-tob_GJw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xd/XdZYpujsSWZZPYLmjXgU2TYmP28SggGESsGghUKhTKg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xh/Xh_qoxXawztPuL-oBQmER6dXxJJmdpPZoLodXwp_TRA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xu/XuagFcwtkndwltcnVLmqNTV1Eq3XkxN10RijkH6wRCk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xy/XyDy3PbjT64Ym0PLwdiCHXoPbfiyxTkPkvVVjVdt8I0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Y1/Y162kQudkByupKMf_LmHoIqG2uvvmhDdICnt03k6jbs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Y6/Y6a_wkcNEE6gMurLIqy4S0_VZ5gDSNd4Q5rM0PLn6j8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YC/YChG2barbyMHzXvZMPznfY2uPNWhw-0JPd3RBgkIIC8.cache +5 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YG/YGRbz1bHhIb1-ouPQ9kMQrFsx_f6jdD4Xm_m2tFjzQk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YV/YV8kWfUZpzvtFr6CX_hwAqB9zg_QA7CNg6IWicLuA08.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YW/YW_hJc-1Us9YVT3FjXa9MfyNJfFmEx9dO555STi6i1g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Y_/Y_d-JdLVXEjVXf41T-HZspCOrysn23iDFT_lvaINENk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yg/YgS7wX7AtoeB15oPveh-weWgp2DgUn3UrnaujiLUODw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yj/YjU1OBASQQ2K6AhHWrk78wkvL3W-viN_wxDX4GEftM8.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yl/YlT-3QKOzPyAe5BePBRWgnxT_ib_FDH3Ii8aFsYL6Oo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yp/Ypfue_5U0Mw7FabRYUgPc6Cq0XDa8HCx3ym5X5OhN_Q.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z0/Z0ETGn5LFAfDMAsZO-WrUm8YCO_nHqAQkxPcT82yvTQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Za/ZaRoYJ67Jz6yBYbdqa8tXktiq9IhLGtwXvA_4KwY0ac.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zd/ZdsyLp9zBK9MmTG7Cpa8foyjdhmuihO1kNuA2zLE1z4.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zg/ZgupWQAjxYcErSUIYKEZIpGbjzfaEJTJ-175i6LYmPE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zi/Ziyd_hDELfK_dorY2ro2uaMN78vT5rA02xTxQkgDRg0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zj/ZjJdv3OSkw2FSTIbXBfr_wAayQr6omT5miTKP7cWLhs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zu/Zu9ETTt1LFCDyO1Vq_hrRVRlpIUWcl-wUfDWhgJ2FGk.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zz/Zz0z4NBC6rNG1oKStOiab8S0sgHMAYIGAYjclVhtI6I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_7/_7A3GiNv7dNumzQtNUXl1s-16jWK_GpIOmYZJbV2fks.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_A/_AeS8-gRQcDmTtj7ZbbAGHWz73w8OzE54KVjZgZH1UQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_E/_EEwvtQ-J1ujVSxCmj_QYTh1cqoTEW0hzhFbuV-XPdk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_F/_Fc2AYkyyAlSxiiMFjlnG9JnP4JgnD_m7D7fRrWFtHw.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_M/_MiQQwnxlcuOwK089y05NKxGdvutaEbDLnv8dxrLo0Q.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_f/_fiIAD6T5gNYyTy390I2oAmGLtfKQaO7yOxra__OrdI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_v/_v867aRpfBdZJQ6bMGMk1akTnZUCLjQV7-gFcQO32Ms.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aH/aHXfT9afwp6IVvk_2yhSKqXUykbW-FpYXugMe0Qufcs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aJ/aJ_eI5asizYgsaoPzfVR8BvyDFq1DmxILISpaRdaO1k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aT/aTM578KknJTP-QnbGy_Rf-FQgt_2qbhuvxdbQIZKHO0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aa/aa25dawalJiQaiENMaRq65DvjYBuGq2gNRZ0uK29Mvs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ab/abRdfYNGtkMgQNgrh-Mk7FSIb5p35fhYsjaJLv5OspI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bG/bGZ1UzVlupmqoh8pjnmQmNhwW6q7qon6E-rbuPu1Dbg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bH/bHsbbgdmS5VYEhAYEFHTSi63ll_459vXEoiI5vn69AE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_OvfdK8ouQwciqy7APMjzA8VC2CcY3BPzDtbpPkD9M.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bg/bgneT5TOOsB7UNr-V6jRChArc4FBQOnEuYfmqZnmF00.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/c7/c7w-7vnQkGPLLCxjIqkdJecj8vMi4Psel8sRA3zO5UM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cY/cYu9ocg2w2uOTaYzBbcK4y7tKYIzJ2pKrqSi_0dZLaU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cc/ccvQpONmjFeGzhinMWBpKwrY8aWpOfuRx3K5uGf42_o.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ch/chwyE8cXwBO23c1VOuU0MAEcUfr1OnFNKUiIVKTTZ9g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cn/cnHcg4AFOsu1rrjyprV7nHuUdUWb6bZMoU7erQInQ1M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d2/d2hSfaiooi0Nj7QoxtiRUnaXVWmYF3OiPErWNq-Swu4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dC/dCMWwcTqFWW318Tj-dZ8pmL9EJ1W9EU7ouwKAwcHxtk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dV/dVrNQQHH0a6DU_17XFlTgLZqfdhGZNaFrBwCxdxtkCI.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dW/dWRrbgrxeOjxZvncSeauThNprrIKtIV9qX9zIwUKiuE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/e-/e-dwuWG8rarPkpLrKnyezJk4mfd0WOGiPPLlcPQk4II.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/e4/e4bVPCGl5-GCpo3S0PhHZr6H8K-E33BlRX63BnVXT38.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eN3YqWXvB0Lo1o22kCOWZd2BSR-cqRgd-9FnQN-fGl0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ep/epU8d68DuWMfTuLJnqbpwV7DpG4RYOkPMXckKYUZ-Vg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ey/eybNBLNr27XbMkOr8apDkDvK3josfup6VZUsU2t0zu0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ez/eziesYn4iYTQaebRHjnUekt7v3ikbgeDCkmDaFnYPHY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f0/f0PEfgE6QjGJxUSMXJecHJ2V1QP6bjeMOs-o31-Zr2E.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f5/f5C1v0KWm_e18UOGMOPB-LBISf8r1MkG9fX41YHrkPg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f6/f6Sck8q0KiuCF_UjTy3cuTN_H0HSSBz4Nd_yVKoUVUE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f_/f_s_Kb3691MSaAXq4-w_-GvwbTg5wwk-spl0WmtEiXg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fg/fgEEmgshqnbAJ3Gl18iyRQUet8Yi0thw3Xo3R_nvma8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fk/fk-ag1aOzdycLSj11KrsOmoevsX6NTGGV-kNdJO3jvU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fp/fpS0xwQ1aWGJ8DgZ3QIuy7Bhs6D0EtzPFEMwO7VMfoM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g0/g0GhKM1GUfS272fXFxUGPSUK2HFW0z14jkXXklzSmNo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g5/g56e9ehOGHaPjwsKQmElQjGB_T23kbSfFPICEgb48g8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gG/gGsPhQoKhOMzeD3YDoUxvFAflC0UAQBX1HiW5xDzZTg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gK/gKUCGbJF2tNShnDeG_2KEL6vF4rc1NW7TzppIM2bW5g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gP/gPcvCwrXY7y375Vv2K2DBtZJ-vbRGF7ZmYlz98-TpX0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gp/gpK93AiXTm_VoaFGGq1uCJWGJIONL9lo8vEB0_SMuzU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gt/gtbirgZC8FB_cUebOkF37L4N8G6NmrKoTrcktEvsFiE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gu/guOWhuLHvES-xZ5pD_3OZv_EoPQiDtiu1lbO7TEAZbg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h0/h0_MQWcCnyXbdK52D8doYOX889VPcvHZMuYqyqDtGfs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h2/h22NVcUDNqKBvBaEf8pBlfnJq_tmbVJI6EyZCkLGljI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h9/h9eHwQtfWRqo7g7w1HgJa9NZ_qhJnZYqhHPOyFKJIAs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hC/hCiQmAulOc6HVSmfoeLnl2p-jkxJgkRF7bmSVheYGd8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hF/hFkWGdq79hzma8kuGeJPc0mogFxbpZX0XgXqBEFTZ1I.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZHTih9Dhtdyf0kZx3-uxe7Eifo2xo3QyUM77hTE_-I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hn/hnbqxsbmQWVgNypTs50oe4p2aFI92uIXx8t1s5rSRLs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hn/hnnb_T9kIEFwnRH_lAaTDhHBcHcnKjS7f-mVQSMEHA4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hr/hrbogwVRff_CDSLP0LO3nvwhScWRup5HiDRyb5vChXA.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hw/hwxHldBAquDoXmJzVJJK11DX7H9tNjpeDbPZkCp4heI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hy/hyxGNTTz-GBpVyabJ9iX2uMkw-qcXRlFvqrFX3N_oxY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iI/iIXRjwlSYp6smFNQmAKGHYlOBZ-sQiQv6KMDpm6JfIU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iQ/iQUAFBqPa8tgHvbrnKGlFlYnywOzmFn4i3HbPsP-duk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iR/iRlAnkB_91a5jpAAv6eex3IlkyU-x7W0prW86htaU2g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iY/iYI1vn9brruktCjw8hdUImtybnWSVuBiB5VHTJkwUZw.cache +5 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iY/iYecM3U3W58rv_KPI3liEL6HVi-lBSELd3xgGcaHOl8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jT/jTj7O0cQDh-BNez82hjlBH01vtOJUDUhZ2T77dvunTc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jZ/jZEAWsT72Gi3TLHfDmM58PJWIKfFjEyawDYowQfgejg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jd/jdW7ptj3lO0KC3AspUU22RZpyVxdhltwsh8nmFDiQJo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jk/jk3TXfYeIMiHN6WqaepDkHmCCQ_RZv8x2IbH0JzgP1s.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/k8/k8i29ZzzuIgK6iAR1qU50z5978nV_Q2RkwgZsQWATYU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kY/kYxMZ5J5ws5TxeylLcce2GqfAm-mJ4q2YLLCl-o0g0o.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l-/l-dAoj8L7XgAdJZhTJFDySDI6BvLgdTYo0cRV1X8VAg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lK/lKxw1i0aOiMKufIqpJnKZQfzdBnXnWJuRURfVvVDaAE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lR/lRv7G0uuk9uPn8YwQlgJ666e-yGnQm0GEDOfbeGC2pE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l_/l_X6uGDUTip78YoyFLcM0ZAlwneZWFquYzmkvO_Janc.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lf/lfQBGefSMBG7A8X3XsracLOSkELu_jM3BZvQl2wmfow.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lg/lg7IJQRGmL8uw1svpFuKTB2C1uMtRHkZQcudjOEkUE0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lg/lgKCge1v8dXItCM4TuW1TDoyOqREexi07nUNweHFJqU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lt/ltXm6ZmOkbUWcz3HGXArBHv3Z5rbQLicRCA06Xz-N6c.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lu/lumh4lW0r7V0Ot2J-YxDk2GMwGswY4amNOhTyuWKVi4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ly/ly1EhM0fTtsowQ6jVLhlwrjgiGrcOAv6UvPymmkjpFQ.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mC/mCWbgPb05gINwN5jEXnxc4tXYj26k3-DWutpyOIQI7c.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mL/mLzZdLJ1YSbwwplj14U9eENjEp11ILAu40bh8AxYBnM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mV/mVbKcKVvufMvEMr4CVLq2XlKHA-F6H6jPdU-nNM1qgg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mW/mW-Mz5a8-WBYwkKuPIy9XBFfxUmO9oeTOoZvW_VY48o.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mW/mWTBflUdD28xi1q0lruxMQ54XGf4e9QBPs9LQET0k7k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mY/mYU5PMJugbamE_gB3FD2PmHxLajZcwmOUh8vWyxmKOY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/me/meLdClyRIBTe-Vx2bGRT36XNX4rdehSXDBjZuAGNA1U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nU/nUJfUr2Xreqpmh50vWQYhRe8ahqOhgAn4YZyfgM5sSk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nU/nUsndFQVgiUz6JaCmMLu-Im8j22YdtZfj4hRQpsNAHc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nt/ntrNydNEXUAOrPY7dI8P5Pncb9jKQ87nc070D7KTINs.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nu/nuD6f2yw1gVkcKTgUnmfhScYPvYAzBiT1_MRqce7fy4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nx8uiQtqSoiAjQy4PkBpHNQNZFYhKRWjSffCHPgh890.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/o8/o8qo4DHpakNFBUuV7U_TY2l46ArlS5Go9C9DfpsxxwE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oI/oIjMPgZQTkuYreOwLeIcmZWij8epj-sdd0tShijmBbA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oI/oIxQFEIhKmFFUfpDk4q_9wA4f4mM4ihliXdIvmTKeZA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oU/oUYdgo8GiEmIdRyRHAuWfYjA39czjfrWprtbFuASGXU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/od/odg6fI0-J1nWrSL-qeW5orqB9QDn_8Wks0m-Y08JvK8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p6/p67ZyWbdYsmHgTWx1nCQk6f6TNB4AVpV3-mD7TSPKZ8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pX/pXZ3TJI-72LeA7F7quMvgJoPXivi_3EhBDcDuaz_f6M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p_/p_6TZQVccwR1lJcJZlOes6YhnRgkj4AIKOxGPPbayYo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pc/pczyTesN5l9ljG8G9AGWfBgM_g066wkw7q8hswVGoL4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pm/pm9UW1IAlvzk3fZ3wEF58DSlmjj2mu86478osZ4uo28.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/po/poUCBmuqC4H4DV5t6Occ-xrn4sOZxhmrVmmHNxS5uJY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q1/q1mYEq1tge3ROy4eIwgUzWb8f4-W0T1MsIA0PEJb7MI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q5/q57t-rUyIP4xDrftZgBdhrbzVLwNVTPBQj5D3YJSMKI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q6/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qA/qAsfwqgRQ_bEZQ6OHTjip6t5E2toW-V_wif0IdjH-Zg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qB/qB2S3dZvCR8pz5hhJcCQDqD653YBSwmrbWL-NGkEuDY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qN/qN0i0wSIYuXwne_SOHOlrHIr9qKq2t_3czjHUEg1oxA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q_/q_HKTv4P9oU4lCjM_v1grmhTdchwpNIHPoN0GAhq9Uw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qb/qb_fpjal2FtIehL4rpCll9ttfrp_S9370GuzEz9_jdk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qd/qdMldhLC5j_XogdwX3k5FjciTK0PKW2SK0dGw7XXcV8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qj/qjm7ARuYwQdWLpqelmI7Kzv1OA5IfQcHlpkJEFIY9as.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qk/qk3-BqiY89tsSky6M_MmRtSV1bGBW_P3gsKiGHIBeyY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qp/qpuCtOKbwldNByXhBPhn6wWkEv7yEqZD1iJjE238YF0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qw/qw1xFV116rG6xYI84O2_TgLVe5WYcxMOsp6Z5wmtsI4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qy/qysidS2__r-vzLwQsWy-iXL9LQMDqdriLqEQnZol0x8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r0/r0WhOpSyeUwdj6vRxIYExdhWXLS8S4vlORJWAcyHXwM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r8/r8-s6dWNSQ_F5n0kPk3_ImDypnS2gsvGckkCMIIynkY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9EeOC3Rt2X3r0CwXV0H5SdeJNQeIVwj137fzV3HL9g.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rO/rOyFCIM6P51j05Nqd6ay2LX0-nmx20_sPvdeUKjEHa4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rV/rV4cfRPUYyfuYSLbytHe3tcSnuhtf4CXms3tBahRtdI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r_/r_kHFdLinmlLdtMWSrs_gxRAqG3gdvflHjbJxwjp_6k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rh/rh55fFcC26RRvUAj5kpl5NlHbaOJWIvoCdIHESRTrho.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rp/rpUOl1LCdxis8peFhp5TUiokAJFj-Wv_kOxxh28lFdE.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rt/rti_lQcdwL5lNhlo_QWJbz6I8IhvKUqc6ntGeRrkfFw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/s4/s4Q0B25RQmbV07iC0QYQugl7MyZSnEiJ1RS0SjY7P5E.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sB/sBnWCHrA08SShxRV7ktLZH3X0yoxg7jJz0URelyLQHE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sB/sBnq1saJzwt_BAVdvVEHTD8nT0SBQ8gn94zzfkX4CDA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sW/sW3i3PIZG0GzWB4By2Moh0dh2sYnzgB_DSy1lBQ8Klc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sY/sYXSFHuY2o74FRg9-24qGdnIdsgZ8n8SP032IBbkF-M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sp/spiDc-tD9Z_s14Q9yG8vD4Vno4YxvqELz3malOrcX6o.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/t6/t634oIEMXkeHqZOeXBKfTJwLs-jJ-PG7L2ws_uNekvg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tO/tOtuKVX1NkQgggouwXCCRgaC9-2Xciru_zwdC2CSzuA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tP/tPHO7ScbHez4I0b5y3xS75uyIDiKuEUpI-LjCwT-h90.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tQ/tQBiAq9rgWYzQdELmZOhVE6ei0wc1zihj7u00V5Ameo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tY/tYi5o_B4K32-EOj80hWayIr8r2hKpX32FFLnacRPVjA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ti/ti7XSq1H3aTqlXX-52j3gzkBMexZppHQLqOGOfgbysc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ti/tib4k97p_nMtyNotFKNil1OiiVdUs5uPslSP0UC-uM0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tl/tl9CqlwjTtDdn4U54f05oaC5AJRv5DAsLIBl1PhDcMM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ts/tswqwNOnHPWLOnZHmYgf89H0jcFpDKx1oT1nxJoagi0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tw/twdx3qjjkxqUdixJZRrSUE1a48f7ezx8iVzmD578dUY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u1/u19VpnVunPdkxuKAtDCeoJ1f48arltnBurm1ucwf-YY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u3/u3L8Ovi1G4RR_pCDLNAmtyd4MZog-1XhiFrQVpuRBr4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uP/uPS_YJpYu-P6-8tLtKmLYC3FsAqVDcSxeni2PgSksRU.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ua/uax3xfv3wWEYnaVv0BSksktaEJh8XfghPa5vEIzbLQo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uh/uhK7OWjhvu73HV_ZyPuGw04FRIw8rMCZXnt00oOJd9I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uo/uo7WxEHCkdTQ95MyrRIUR9-CZGpvFCOPALdlQifeBe0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uq/uqLg5d_yK48IwJmBZDCQq4KG866dPcStZU8EI5oq-Ys.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKgsKqh_ZxqVwep1v0oeKkz8WdoDPRtNCfeJlqyiCEE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vR/vRowX8BxniH_r6ohkORiAAK31G9ul56Nrmc1E6zQX_4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w1/w1OAYF68x1cadQ47D2pa_IHXI1-lE3OQbnOfX3S8h2I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w1/w1nV56G78AzDhzbmfqe9RHC3INImcxRWJ6RpUmOu0zI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w8/w8bJIQvBVIt9MigkI2atKu9WB5S1QdVCauO9xIYgDtM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wL/wL-K23pyvF9AEkQW7kyphL7uJ_lmqGUT4qiD_sZqSuc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wx/wxjx6LWuIcb2Dmd8VVUZPVA4zj9JivtrI7qFJs6zOsY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x3/x36hOKaH__gHHXvA9t7M0CAbloZjxiqGJuYxBce5W_k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x3/x3ZqRwoNu9qsSxflJR-_WUBnYM5U0TNJCivF2tysr2c.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x6/x6dAF375_w3ybk777fYvTuGvVCEUnpkdfQ4-8d9seqw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xT/xTUw2hnSIqB5GqO08QPZBhpIv-nMJpvVMVMGnjfpO0w.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xZ/xZR_sWqrBUkKFwWbH4NoXhEtlZk6nmOg_etJTf0mMpE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xc/xcqHONmG4xq-SE1gS-iKmPXVaGH6mX2icQP5OMgaNb0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xc/xcqsS3X7LXFIwa2VaWWm9rZpNuBjOUX6PjUWIYpLB_E.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xp/xpgUYfhLGFoyIa4ysNkPycb-ZxlKOl96QobdFWR_l94.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yB/yBHQ9tvJ9aSF1D8Nr02uSh1w2hTqeF3affZQdkzFNuc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yY/yYETkgf2e6Dyv-lFeLHSbeh9EWI1jQxV_sxScyofNaU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yh/yhoRM6qoDW8zqNkcUHI4IJjRrnCJNNY6TRzxbe0Mxbc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yh/yhvGUtUOHujaz0P5RR4W79zhdVAt442zN1VSxHnYx2U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ys/ysO4Rtmf7Xe2Wp2ja0JXte2Po7GZkJQ6IKBVivz5nCo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ys/ysenUcKyo2J-uReXTppVJdtmbk51Eb3ppiiQCYAUAk8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z2/z2DfSUM3cKBPVxJpvK7MZZV4-dAngCZwQvz5m5LzuHQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z5/z5KChsfJfSn91toqcknAOOVUUEDFt78rCR5ZZzLzwgc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z5/z5oNfEuUHIkVdLoGbgCzbEVt3o3IXxvqPa8PKAylaCY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z6/z6uROUNyfCWRhuPDgp_8qY5gj8pIOwJOsJAqecQDT00.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zU/zUoyRwZdHnIseDSd5wXJhmdr6ylmXpQUnVA8TF6EOv4.cache +1 -0
- data/spec/dummy/tmp/development_secret.txt +1 -0
- data/spec/factories/admin_users.rb +8 -0
- data/spec/factories/categories.rb +17 -0
- data/spec/factories/posts.rb +13 -0
- data/spec/features/authorization_spec.rb +23 -0
- data/spec/features/custom_block_spec.rb +25 -0
- data/spec/features/js_confirmation_spec.rb +53 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/post_helpers.rb +22 -0
- metadata +1237 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: aebbe809cc79dd93dc61d2280f1dc5571bc4d064549b9d2621090e86bfdc9330
|
4
|
+
data.tar.gz: 305aa0eb722dfa13c3a2472d295b88d78ac95cc7a7b28daba7ce522ecfd9a46c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f36244a2ca12126524c13ba73bffad10b77a4e045a9b74a2772578ebe8f006727b89588ba1a4cfa818e3b203140dab6318f2c49703aece2156a831f5e8b5fcfb
|
7
|
+
data.tar.gz: 877599ffd90db7ead8a26099e3fbdc7df339c6abd2eaa13b581560c9f9fd53526ca44f9aacf2231f0d1f98dc56f5655212e137310d6dc709de204fe421c6c324
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2013 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
# ActiveAdmin-StateMachine
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/rs-pro/active_admin-state_machine.svg?branch=master)](https://travis-ci.org/rs-pro/active_admin-state_machine)
|
4
|
+
|
5
|
+
This gem provides an easy integration between the awesome [state_machine](https://github.com/pluginaweek/state_machine) and [active_admin](https://github.com/gregbell/active_admin) gems.
|
6
|
+
|
7
|
+
## Features
|
8
|
+
|
9
|
+
This gem provides you with a DSL extension to ActiveAdmin that allows you to easily define action item buttons for your resource to transition through your state_machine.
|
10
|
+
|
11
|
+
* Integration with ActiveAdmin authorization adapater layer - the button won't show if the user isn't authorized
|
12
|
+
* Provide custom permission to authorize against
|
13
|
+
* Provide confirmation message to prompt user before performing
|
14
|
+
* Button only shown if state_machine can transition
|
15
|
+
* Localizable button titles and flash messages
|
16
|
+
* Pass a block to customize the behavior
|
17
|
+
|
18
|
+
## Installation
|
19
|
+
|
20
|
+
This gem requires both `active_admin` and `state_machine`. Add the gem to your Gemfile to get started and bundle.
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
gem 'active_admin-state_machine'
|
24
|
+
```
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
### State Row
|
29
|
+
Inspired by and borrows some code from [activeadmin_addons](https://github.com/platanus/activeadmin_addons/blob/master/docs/aasm_integration.md) but for state_machines instead of AASM
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
show do
|
33
|
+
attributes_table do
|
34
|
+
state :state
|
35
|
+
end
|
36
|
+
end
|
37
|
+
```
|
38
|
+
|
39
|
+
## State Column
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
index do
|
43
|
+
state :state
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
The name of the state will be the class name (rejected, approved, etc.), but you can pass a hash of options to map different states with tag colors.
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
state_column(:state, states: { destroyed: "rejected" })
|
51
|
+
```
|
52
|
+
|
53
|
+
You will need to define inside `your_app/app/assets/stylesheets/active_admin.css.scss` the following:
|
54
|
+
|
55
|
+
```scss
|
56
|
+
.status_tag {
|
57
|
+
&.rejected { background: $rejected-color; }
|
58
|
+
&.approved { background: $approved-color; }
|
59
|
+
}
|
60
|
+
```
|
61
|
+
|
62
|
+
You will need to define a state_machine in a model, and have that model registered as a resource with ActiveAdmin.
|
63
|
+
|
64
|
+
**A basic model**
|
65
|
+
|
66
|
+
```
|
67
|
+
# app/models/post.rb
|
68
|
+
class Post < ActiveRecord::Base
|
69
|
+
validates :title, presence: true, uniqueness: true
|
70
|
+
validates :body, presence: true
|
71
|
+
|
72
|
+
DRAFT = 'draft'
|
73
|
+
REVIEWED = 'reviewed'
|
74
|
+
PUBLISHED = 'published'
|
75
|
+
|
76
|
+
state_machine :status, initial: DRAFT do
|
77
|
+
event :peer_review do
|
78
|
+
transition DRAFT => REVIEWED
|
79
|
+
end
|
80
|
+
|
81
|
+
event :publish do
|
82
|
+
transition REVIEWED => PUBLISHED
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
```
|
87
|
+
|
88
|
+
**Corresponding ActiveAdmin resource**
|
89
|
+
|
90
|
+
```
|
91
|
+
ActiveAdmin.register Post do
|
92
|
+
|
93
|
+
state_action :peer_review
|
94
|
+
state_action :publish
|
95
|
+
|
96
|
+
form do |f|
|
97
|
+
f.inputs "Post Details" do
|
98
|
+
f.input :title
|
99
|
+
f.input :body
|
100
|
+
end
|
101
|
+
f.actions
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
```
|
106
|
+
|
107
|
+
In the above example, the `state_action` method is defined by this gem and provides you with the following functionality:
|
108
|
+
|
109
|
+
1. The `:peer_review` is assumed to be an event in your state_machine definition on the Post model.
|
110
|
+
2. Calling `state_action` will add an action item button to your ActiveAdmin resource on the `#show` page, if the user is authorized to perform this action via the ActiveAdmin authorization adapter, and if the resource itself returns true to `#can_peer_review?`, which is provided by default with this event in state_machine.
|
111
|
+
3. Clicking the button will call `#peer_review!` on the resource, and redirect you back to `smart_resource_url`.
|
112
|
+
4. Fully localizable, provide translations for `"posts.peer_review.label"`for the button title and `"posts.peer_review.flash.success` for the flash message when completed.
|
113
|
+
5. You can pass a block to customize this behavior.
|
114
|
+
|
115
|
+
### Custom Block
|
116
|
+
|
117
|
+
```
|
118
|
+
ActiveAdmin.register Post do
|
119
|
+
|
120
|
+
state_action :peer_review
|
121
|
+
|
122
|
+
# Block to be called when submitted
|
123
|
+
state_action :publish do
|
124
|
+
PostPublicationService.publish!(resource)
|
125
|
+
flash[:notice] = "Post published"
|
126
|
+
redirect_to collection_path
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
```
|
131
|
+
|
132
|
+
### Custom Permission
|
133
|
+
|
134
|
+
```
|
135
|
+
ActiveAdmin.register Post do
|
136
|
+
|
137
|
+
# by default, permission would be :peer_review
|
138
|
+
state_action :peer_review, permission: :read
|
139
|
+
end
|
140
|
+
```
|
141
|
+
|
142
|
+
### Confirmation
|
143
|
+
|
144
|
+
```
|
145
|
+
ActiveAdmin.register Post do
|
146
|
+
|
147
|
+
# Lookup 'posts.peer_review.prompt'
|
148
|
+
state_action :peer_review, confirm: :true
|
149
|
+
|
150
|
+
# Pass proc
|
151
|
+
state_action :peer_review, confirm: ->{ I18n.t("posts.peer_review.confirm") }
|
152
|
+
end
|
153
|
+
```
|
154
|
+
|
155
|
+
### Using without state_machine model
|
156
|
+
|
157
|
+
If you really want to use without a state_machine on your model, you essentially just need to provide the following methods, contining with our `:peer_review` example:
|
158
|
+
|
159
|
+
```
|
160
|
+
class Post < ActiveRecord::Base
|
161
|
+
def can_peer_review?
|
162
|
+
author.present? && !published?
|
163
|
+
end
|
164
|
+
|
165
|
+
def peer_review!
|
166
|
+
self.published_at = Time.now
|
167
|
+
save!
|
168
|
+
end
|
169
|
+
end
|
170
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
|
8
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
9
|
+
Bundler::GemHelper.install_tasks
|
10
|
+
|
11
|
+
require 'rspec/core'
|
12
|
+
require 'rspec/core/rake_task'
|
13
|
+
|
14
|
+
desc "Run all specs in spec directory (excluding plugin specs)"
|
15
|
+
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
16
|
+
|
17
|
+
task :default => :spec
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'active_admin/state_machine'
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'active_admin/state_machine'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'active_admin'
|
2
|
+
require 'state_machines'
|
3
|
+
|
4
|
+
require 'active_admin/state_machine/dsl'
|
5
|
+
require 'active_admin/state_machine/view_dsl'
|
6
|
+
require 'active_admin/state_machine/engine'
|
7
|
+
|
8
|
+
ActiveAdmin::DSL.send :include, ActiveAdmin::StateMachine::DSL
|
9
|
+
ActiveAdmin::Views::IndexAsTable.send :include, ActiveAdmin::StateMachine::ViewDSL
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module StateMachine
|
3
|
+
module DSL
|
4
|
+
|
5
|
+
#
|
6
|
+
# Easily tie into a state_machine action
|
7
|
+
#
|
8
|
+
# @param [Symbol] state machine event, ie: :publish
|
9
|
+
# @param [Hash] options
|
10
|
+
# - permission [Symbol] permission to check authorization against
|
11
|
+
# - http_verb [Symbol] :put, :post, :get, etc
|
12
|
+
#
|
13
|
+
# Will call "resource.publish!", if "resource.can_publish?" returns true
|
14
|
+
#
|
15
|
+
|
16
|
+
|
17
|
+
def state_action(action, options={}, &controller_action)
|
18
|
+
singular = config.resource_name.singular
|
19
|
+
plural = config.resource_name.plural
|
20
|
+
|
21
|
+
options[:permission] ||= controller.new.send(:action_to_permission, action)
|
22
|
+
|
23
|
+
confirmation = options.fetch(:confirm, false)
|
24
|
+
if confirmation == true
|
25
|
+
default = "Are you sure you want to #{action.to_s.humanize.downcase}?"
|
26
|
+
confirmation = ->{ I18n.t(:confirm, scope: "#{plural}.#{action}", default: default) }
|
27
|
+
end
|
28
|
+
|
29
|
+
http_verb = options.fetch :http_verb, :put
|
30
|
+
|
31
|
+
action_item_args = if ActiveAdmin::VERSION.start_with?('0.')
|
32
|
+
[{ only: :show }]
|
33
|
+
else
|
34
|
+
["state_action_#{action}", { only: :show }]
|
35
|
+
end
|
36
|
+
|
37
|
+
action_item(*action_item_args) do
|
38
|
+
if resource.send("can_#{action}?") && authorized?(options[:permission], resource)
|
39
|
+
|
40
|
+
attr = options[:attr] || resource.class.state_machines.keys.first || "state"
|
41
|
+
path = resource_path << "/#{action}?#{{attr: attr}.to_query}"
|
42
|
+
|
43
|
+
label = I18n.t("#{plural}.#{action}.label", default: action.to_s.titleize)
|
44
|
+
|
45
|
+
link_options = {}
|
46
|
+
if confirmation.is_a?(Proc)
|
47
|
+
link_options[:data] ||= {}
|
48
|
+
link_options[:data][:confirm] = instance_exec(&confirmation)
|
49
|
+
end
|
50
|
+
|
51
|
+
link_options[:class] = "btn btn-large"
|
52
|
+
link_options[:method] = http_verb
|
53
|
+
|
54
|
+
link_to label, path, link_options
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
unless block_given?
|
59
|
+
controller_action = -> do
|
60
|
+
events = resource.class.state_machines[params[:attr].to_sym].events
|
61
|
+
if resource.send(action)
|
62
|
+
flash[:notice] = t("#{plural}.#{action}.flash.success", default: t("active_admin-state_machine.flash.success", action: events[action].human_name, resource: resource.model_name.human))
|
63
|
+
else
|
64
|
+
flash[:error] = resource.errors.full_messages.join(", ")
|
65
|
+
end
|
66
|
+
redirect_back(fallback_location: smart_resource_url)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
member_action action, method: http_verb, &controller_action
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module StateMachine
|
3
|
+
module ViewDSL
|
4
|
+
def state(name = "state", read_only: false)
|
5
|
+
column name do |resource|
|
6
|
+
render_state(resource, name, read_only)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def render_state(resource, name, read_only)
|
11
|
+
state = resource.send(name)
|
12
|
+
s = resource.class.state_machines[name.to_sym].states[state.to_sym]
|
13
|
+
ret = [
|
14
|
+
'<div class="status_tag state-' + state + '">' + s.human_name + '</div>',
|
15
|
+
'<div style="height: 10px;"></div>'
|
16
|
+
]
|
17
|
+
unless read_only
|
18
|
+
events = resource.class.state_machines[name.to_sym].events
|
19
|
+
resource.send("#{name}_events".to_sym).each do |event|
|
20
|
+
ret << link_to(
|
21
|
+
events[event].human_name,
|
22
|
+
send("#{event}_admin_#{resource.class.model_name.singular}_path", id: resource.id, attr: name),
|
23
|
+
method: :put,
|
24
|
+
class: "btn event-#{event}",
|
25
|
+
style: 'margin-bottom: 5px;'
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
('<div style="white-space: normal;">' + ret.join(' ') + '</div>').html_safe
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,261 @@
|
|
1
|
+
== Welcome to Rails
|
2
|
+
|
3
|
+
Rails is a web-application framework that includes everything needed to create
|
4
|
+
database-backed web applications according to the Model-View-Control pattern.
|
5
|
+
|
6
|
+
This pattern splits the view (also called the presentation) into "dumb"
|
7
|
+
templates that are primarily responsible for inserting pre-built data in between
|
8
|
+
HTML tags. The model contains the "smart" domain objects (such as Account,
|
9
|
+
Product, Person, Post) that holds all the business logic and knows how to
|
10
|
+
persist themselves to a database. The controller handles the incoming requests
|
11
|
+
(such as Save New Account, Update Product, Show Post) by manipulating the model
|
12
|
+
and directing data to the view.
|
13
|
+
|
14
|
+
In Rails, the model is handled by what's called an object-relational mapping
|
15
|
+
layer entitled Active Record. This layer allows you to present the data from
|
16
|
+
database rows as objects and embellish these data objects with business logic
|
17
|
+
methods. You can read more about Active Record in
|
18
|
+
link:files/vendor/rails/activerecord/README.html.
|
19
|
+
|
20
|
+
The controller and view are handled by the Action Pack, which handles both
|
21
|
+
layers by its two parts: Action View and Action Controller. These two layers
|
22
|
+
are bundled in a single package due to their heavy interdependence. This is
|
23
|
+
unlike the relationship between the Active Record and Action Pack that is much
|
24
|
+
more separate. Each of these packages can be used independently outside of
|
25
|
+
Rails. You can read more about Action Pack in
|
26
|
+
link:files/vendor/rails/actionpack/README.html.
|
27
|
+
|
28
|
+
|
29
|
+
== Getting Started
|
30
|
+
|
31
|
+
1. At the command prompt, create a new Rails application:
|
32
|
+
<tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name)
|
33
|
+
|
34
|
+
2. Change directory to <tt>myapp</tt> and start the web server:
|
35
|
+
<tt>cd myapp; rails server</tt> (run with --help for options)
|
36
|
+
|
37
|
+
3. Go to http://localhost:3000/ and you'll see:
|
38
|
+
"Welcome aboard: You're riding Ruby on Rails!"
|
39
|
+
|
40
|
+
4. Follow the guidelines to start developing your application. You can find
|
41
|
+
the following resources handy:
|
42
|
+
|
43
|
+
* The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html
|
44
|
+
* Ruby on Rails Tutorial Book: http://www.railstutorial.org/
|
45
|
+
|
46
|
+
|
47
|
+
== Debugging Rails
|
48
|
+
|
49
|
+
Sometimes your application goes wrong. Fortunately there are a lot of tools that
|
50
|
+
will help you debug it and get it back on the rails.
|
51
|
+
|
52
|
+
First area to check is the application log files. Have "tail -f" commands
|
53
|
+
running on the server.log and development.log. Rails will automatically display
|
54
|
+
debugging and runtime information to these files. Debugging info will also be
|
55
|
+
shown in the browser on requests from 127.0.0.1.
|
56
|
+
|
57
|
+
You can also log your own messages directly into the log file from your code
|
58
|
+
using the Ruby logger class from inside your controllers. Example:
|
59
|
+
|
60
|
+
class WeblogController < ActionController::Base
|
61
|
+
def destroy
|
62
|
+
@weblog = Weblog.find(params[:id])
|
63
|
+
@weblog.destroy
|
64
|
+
logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
The result will be a message in your log file along the lines of:
|
69
|
+
|
70
|
+
Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1!
|
71
|
+
|
72
|
+
More information on how to use the logger is at http://www.ruby-doc.org/core/
|
73
|
+
|
74
|
+
Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are
|
75
|
+
several books available online as well:
|
76
|
+
|
77
|
+
* Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe)
|
78
|
+
* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide)
|
79
|
+
|
80
|
+
These two books will bring you up to speed on the Ruby language and also on
|
81
|
+
programming in general.
|
82
|
+
|
83
|
+
|
84
|
+
== Debugger
|
85
|
+
|
86
|
+
Debugger support is available through the debugger command when you start your
|
87
|
+
Mongrel or WEBrick server with --debugger. This means that you can break out of
|
88
|
+
execution at any point in the code, investigate and change the model, and then,
|
89
|
+
resume execution! You need to install ruby-debug to run the server in debugging
|
90
|
+
mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example:
|
91
|
+
|
92
|
+
class WeblogController < ActionController::Base
|
93
|
+
def index
|
94
|
+
@posts = Post.all
|
95
|
+
debugger
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
So the controller will accept the action, run the first line, then present you
|
100
|
+
with a IRB prompt in the server window. Here you can do things like:
|
101
|
+
|
102
|
+
>> @posts.inspect
|
103
|
+
=> "[#<Post:0x14a6be8
|
104
|
+
@attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>,
|
105
|
+
#<Post:0x14a6620
|
106
|
+
@attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]"
|
107
|
+
>> @posts.first.title = "hello from a debugger"
|
108
|
+
=> "hello from a debugger"
|
109
|
+
|
110
|
+
...and even better, you can examine how your runtime objects actually work:
|
111
|
+
|
112
|
+
>> f = @posts.first
|
113
|
+
=> #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
|
114
|
+
>> f.
|
115
|
+
Display all 152 possibilities? (y or n)
|
116
|
+
|
117
|
+
Finally, when you're ready to resume execution, you can enter "cont".
|
118
|
+
|
119
|
+
|
120
|
+
== Console
|
121
|
+
|
122
|
+
The console is a Ruby shell, which allows you to interact with your
|
123
|
+
application's domain model. Here you'll have all parts of the application
|
124
|
+
configured, just like it is when the application is running. You can inspect
|
125
|
+
domain models, change values, and save to the database. Starting the script
|
126
|
+
without arguments will launch it in the development environment.
|
127
|
+
|
128
|
+
To start the console, run <tt>rails console</tt> from the application
|
129
|
+
directory.
|
130
|
+
|
131
|
+
Options:
|
132
|
+
|
133
|
+
* Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications
|
134
|
+
made to the database.
|
135
|
+
* Passing an environment name as an argument will load the corresponding
|
136
|
+
environment. Example: <tt>rails console production</tt>.
|
137
|
+
|
138
|
+
To reload your controllers and models after launching the console run
|
139
|
+
<tt>reload!</tt>
|
140
|
+
|
141
|
+
More information about irb can be found at:
|
142
|
+
link:http://www.rubycentral.org/pickaxe/irb.html
|
143
|
+
|
144
|
+
|
145
|
+
== dbconsole
|
146
|
+
|
147
|
+
You can go to the command line of your database directly through <tt>rails
|
148
|
+
dbconsole</tt>. You would be connected to the database with the credentials
|
149
|
+
defined in database.yml. Starting the script without arguments will connect you
|
150
|
+
to the development database. Passing an argument will connect you to a different
|
151
|
+
database, like <tt>rails dbconsole production</tt>. Currently works for MySQL,
|
152
|
+
PostgreSQL and SQLite 3.
|
153
|
+
|
154
|
+
== Description of Contents
|
155
|
+
|
156
|
+
The default directory structure of a generated Ruby on Rails application:
|
157
|
+
|
158
|
+
|-- app
|
159
|
+
| |-- assets
|
160
|
+
| | |-- images
|
161
|
+
| | |-- javascripts
|
162
|
+
| | `-- stylesheets
|
163
|
+
| |-- controllers
|
164
|
+
| |-- helpers
|
165
|
+
| |-- mailers
|
166
|
+
| |-- models
|
167
|
+
| `-- views
|
168
|
+
| `-- layouts
|
169
|
+
|-- config
|
170
|
+
| |-- environments
|
171
|
+
| |-- initializers
|
172
|
+
| `-- locales
|
173
|
+
|-- db
|
174
|
+
|-- doc
|
175
|
+
|-- lib
|
176
|
+
| |-- assets
|
177
|
+
| `-- tasks
|
178
|
+
|-- log
|
179
|
+
|-- public
|
180
|
+
|-- script
|
181
|
+
|-- test
|
182
|
+
| |-- fixtures
|
183
|
+
| |-- functional
|
184
|
+
| |-- integration
|
185
|
+
| |-- performance
|
186
|
+
| `-- unit
|
187
|
+
|-- tmp
|
188
|
+
| `-- cache
|
189
|
+
| `-- assets
|
190
|
+
`-- vendor
|
191
|
+
|-- assets
|
192
|
+
| |-- javascripts
|
193
|
+
| `-- stylesheets
|
194
|
+
`-- plugins
|
195
|
+
|
196
|
+
app
|
197
|
+
Holds all the code that's specific to this particular application.
|
198
|
+
|
199
|
+
app/assets
|
200
|
+
Contains subdirectories for images, stylesheets, and JavaScript files.
|
201
|
+
|
202
|
+
app/controllers
|
203
|
+
Holds controllers that should be named like weblogs_controller.rb for
|
204
|
+
automated URL mapping. All controllers should descend from
|
205
|
+
ApplicationController which itself descends from ActionController::Base.
|
206
|
+
|
207
|
+
app/models
|
208
|
+
Holds models that should be named like post.rb. Models descend from
|
209
|
+
ActiveRecord::Base by default.
|
210
|
+
|
211
|
+
app/views
|
212
|
+
Holds the template files for the view that should be named like
|
213
|
+
weblogs/index.html.erb for the WeblogsController#index action. All views use
|
214
|
+
eRuby syntax by default.
|
215
|
+
|
216
|
+
app/views/layouts
|
217
|
+
Holds the template files for layouts to be used with views. This models the
|
218
|
+
common header/footer method of wrapping views. In your views, define a layout
|
219
|
+
using the <tt>layout :default</tt> and create a file named default.html.erb.
|
220
|
+
Inside default.html.erb, call <% yield %> to render the view using this
|
221
|
+
layout.
|
222
|
+
|
223
|
+
app/helpers
|
224
|
+
Holds view helpers that should be named like weblogs_helper.rb. These are
|
225
|
+
generated for you automatically when using generators for controllers.
|
226
|
+
Helpers can be used to wrap functionality for your views into methods.
|
227
|
+
|
228
|
+
config
|
229
|
+
Configuration files for the Rails environment, the routing map, the database,
|
230
|
+
and other dependencies.
|
231
|
+
|
232
|
+
db
|
233
|
+
Contains the database schema in schema.rb. db/migrate contains all the
|
234
|
+
sequence of Migrations for your schema.
|
235
|
+
|
236
|
+
doc
|
237
|
+
This directory is where your application documentation will be stored when
|
238
|
+
generated using <tt>rake doc:app</tt>
|
239
|
+
|
240
|
+
lib
|
241
|
+
Application specific libraries. Basically, any kind of custom code that
|
242
|
+
doesn't belong under controllers, models, or helpers. This directory is in
|
243
|
+
the load path.
|
244
|
+
|
245
|
+
public
|
246
|
+
The directory available for the web server. Also contains the dispatchers and the
|
247
|
+
default HTML files. This should be set as the DOCUMENT_ROOT of your web
|
248
|
+
server.
|
249
|
+
|
250
|
+
script
|
251
|
+
Helper scripts for automation and generation.
|
252
|
+
|
253
|
+
test
|
254
|
+
Unit and functional tests along with fixtures. When using the rails generate
|
255
|
+
command, template test files will be generated for you and placed in this
|
256
|
+
directory.
|
257
|
+
|
258
|
+
vendor
|
259
|
+
External libraries that the application depends on. Also includes the plugins
|
260
|
+
subdirectory. If the app has frozen rails, those gems also go here, under
|
261
|
+
vendor/rails/. This directory is in the load path.
|