formalizer 1.0.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.rdoc +207 -0
- data/Rakefile +34 -0
- data/lib/formalizer/errors.rb +15 -0
- data/lib/formalizer/form.rb +127 -0
- data/lib/formalizer/form_field.rb +322 -0
- data/lib/formalizer/formalizer.rb +253 -0
- data/lib/formalizer/utils.rb +61 -0
- data/lib/formalizer/version.rb +3 -0
- data/lib/formalizer.rb +5 -0
- data/lib/tasks/formalizer_tasks.rake +4 -0
- data/test/dummy/Gemfile +5 -0
- data/test/dummy/Gemfile.lock +12 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/images/acme_logo.jpg +0 -0
- data/test/dummy/app/assets/images/formalizer.png +0 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/javascripts/fill_details.js +2 -0
- data/test/dummy/app/assets/javascripts/home.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/assets/stylesheets/bootstrap_yeti.css +7109 -0
- data/test/dummy/app/assets/stylesheets/fill_details.css +4 -0
- data/test/dummy/app/assets/stylesheets/form.css +20 -0
- data/test/dummy/app/assets/stylesheets/home.css +4 -0
- data/test/dummy/app/controllers/about_controller.rb +6 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/demo_controller.rb +103 -0
- data/test/dummy/app/controllers/home_controller.rb +6 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/fill_details_helper.rb +2 -0
- data/test/dummy/app/helpers/home_helper.rb +2 -0
- data/test/dummy/app/views/about/show.html.erb +6 -0
- data/test/dummy/app/views/demo/index.html.erb +7 -0
- data/test/dummy/app/views/home/show.html.erb +22 -0
- data/test/dummy/app/views/layouts/application.html.erb +24 -0
- data/test/dummy/app/views/shared/_navbar.html.erb +16 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config/_formalizer.yml +102 -0
- data/test/dummy/config/alternative_invalid_config1.yml +41 -0
- data/test/dummy/config/alternative_invalid_config2.yml +1 -0
- data/test/dummy/config/alternative_valid_config.yml +42 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/form1.html +139 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/invalid_html_formalizer_tags_without_ids.html +5 -0
- data/test/dummy/config/invalid_html_no_formalizer_tags.html +5 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +7 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +7107 -0
- data/test/dummy/log/passenger.3000.log +2681 -0
- data/test/dummy/log/test.log +4830 -0
- data/test/dummy/passenger.3000.pid.lock +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/test/controllers/fill_details_controller_test.rb +7 -0
- data/test/dummy/test/controllers/home_controller_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-Z8-x8TP2IpXxzIQCnPJmwpJQLBA1vkQZIs-v5IqO1M.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0QhQ_r6EX-PaO37-YZcRkQsrNuiQ2lMZ78kOr9nizbo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0gaoXk74LdRQaVC-V6RnHNTFukvBZK6P7TSCKGK3iB4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0lmMGqilvmPepfDYe-P4TPj8HP55nK4OJgU_A7JN3vA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/10FjxP4BObnBgDu_BfPbcN8u9gBcUtffAu43bKi18OE.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1E4iNysYJh97M_YQ2yLOmaIpv-TrGgZMuC1GG79zjPo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1LojJt0HPxdTxk8roqIik_rXQ4lXs1dds-NUPqBSLQ0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1TzpDaiXe-zq-W2i_uxXwiRngAIoS4lMkMV1YF_-Klw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1ZIYPPoIRMG1j1vxQhisia--vKTZrc14_GQdwEsFQsU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1ZylVP7ZDoGvLc-wMWjmTFaWqlB0BOGWbbESKK_O5zg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1zeTrAPOtYLg-JXxWQtphNiGAEZjECivNLOO2qHmZak.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/29NJdbsFyjUzJAXIzHCoilXDeM55NW6O3cuuRoMir44.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2pIrDdq-LQAZYsU3rnabBAAF3KoaUqd-UddqjLj6tig.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2t9hRAvHgc_FJbWXTMo1S0F6rT4U9Doze_q5dKJ-fIQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/30olZHQQ7WZTO-OTXByCyV6vQvD-jRNTxeLSKLexBZw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3E_mWo1orMy9qt95H9QfIEPkUy47lB7SEZHViXEsFqI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3WbrpN7fxH07Jo9_3u6T1QT3aSs8f0GtBY-tXlyMFGU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3c3Nfn_SaD6FvHwA8eTWTzPRLztBsPQsm4lP92p1Zgg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/4Qy3ua1ZxecQRiTw0N2X_g5fnog79TcUHR2OME4vIPE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/50srOL95A3hQiQ4Qny9El7UtyBykNpLQqwIDQoVhHk4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5BIJNXi8oXVWoLSkdp4lc3Th8PwMrk4bvez8RTabMuc.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5GwtVhuOkq0utxLWUiTqEU3Onyx3OrVgux-7uDhK0Ew.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5O2LYVux25geVSYTIjv2zA6Mm7Q7_wM0QxCacxCn1A8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Pgc4M14GZWEeVTkkd04jQEJpdqVAmyqi9glF6vb73I.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5QCJCh3vy-_xBXSLbJhjpsNpLjMQmgHC7KlC5EBldL8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5QPZLgIEGL9Ktghpx_Usd-LEixQ1JmmMc8h5mpkosD0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5R-MvIULCjePz0cM8aamgI1CGUxcfDuzJlmIivuhkuk.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5zHbuyCXcodrnyA9RJb5M2roj2pmi7Vak-F3kb7AGxs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6E0UuAMaaJmKYV4WHiNr1cBWr-mwujiNLKJYbZBy5A0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6EI0VFQ3N3P7AOjW8AEjrXZdSuCnCv-fpZ64e0bjynk.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7CXKpj5B6dzyBoSsGgu7moPco2r0i9PbwzVXo1lHozU.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7FxuwZmru_T0Zx8aNR3TleboQkZy5z3NeGNrwPzP7cY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7Qzcd1UvRnkRnZ5b54SSviAKsURjRAGoaK5yTsg4MxA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7aFBjL4if-asPUbvotQpxcJTzMgAX9LsHAQVCppeSXE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7lvyiihvB0xNdKRsf1KPaqFm_3Mipw8d1db4V8lJteA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/813bj5I6yZb-wXefodCetOCKEDEL_2AbNx1a02m7-KQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8DY9xobqxlwyWnYa-twKg1BMFu42a1oOfvx2Zk8-QRg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8kChD4u9SX9-EQY63SO0-ergLuOvDIf46vR60I3T0qg.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8rlj1JnFHejUL3raWFeliRWCPWCnJdn3UrlKHovKdbs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9BUi26Pi2HjaBwxW3xqwhp3-Nv9HqvKnYi-RR8KcuWk.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9L0RNb_fbisaw_9WsSFYANfhgTuQtvP-91QSEjXNmY8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9XgPoYN_JsGzZkpXeM3pxQXrYH26-9gSsoxEp6HpEUM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9j8hez9pHdCQdcwjpKeoYVrBmVfR4ASBCJUtaO-CN5s.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9kTCjSGFbe16SMqnP158MuUj3D28soCZdwKuAsJzbUM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9lx_5ziCg-eDu1m2pR0-AVevZkF224xRlIvfaq7PCUo.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9ztFL_5lRP0EpvY6Yd8zo0LH5wpnuxoAxDa5ffRhyC8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/A6zGVTNPc91lU58ffj05A46ORdomivGj5lc_q3_XQQQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AC-yaYeOXxlIdUwTDpTd_TdSmK_-ZGilXZPaleWhVm4.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ACsvcWXFkXGo_dZSWRNCzv6q67NHrhjltwMF4SyKs1s.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AMY65tvjndTjQ3V_ZahdJL8X2zj93DU2o7K5FPvxu1M.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AfnuA-IDSQtDAo9XtkPxxczSKB-VlblUrZXAKCj-QaQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AfqP34F2lwUisVYv00aFZKJ_aiYs8smx4j36oeW-S6k.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/B4oFb3TRenHH4JcduyCvGTFxZdU3-VvTQ1LDvm_-iIE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BUMVcNGlZ_mEthsPogkRuGobQajJknMTlMbRrCDEWw0.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BhtNyi5hwiVF2UewLiIUG0mEvA4dTsuA9OZfLInxiaM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BrL6mwK6Wl92bBsvnD7AQvHWBpWjUC9-hVUuew9XT28.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C-JhuIiVv78piyuXHnljYWwor7hg29mRYWxbFgsSRAQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/COs9Zo-3ILgYwVitDgIYCUYqG71jyK12ukoiV9DgXGM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CTUWBa7w8yk1eBR-vVnNVN1dD-U9aUQCm4RvF-RIYvU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CXmlgiMLFXGktY7o_a-zXGvORAwhacWo9qzuYfEGE1Y.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CYZk3DPZTVGkS2PnZvMUwL2FZdyXbaP3rElZ0sKlTZ8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CZI7jT4PWrphGBTddtX9G0MlBskacV4xNnNIiJXLNgU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CePIL6yNvdNcXUbCs39xoB8mYs4nnVdGrFW5R5CKggQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CjHnZuWbfmemr8OwunPxBX2q82kfqQrpyzZqQlgByb0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ClbLBnTjKQ2M71bFPm49Q3mL6f1ezJqft9rA3amsQFw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DKPWCuG8-WIOXIo8ZtYEQSW_cfaaGpNJh811CN497o4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Ds9pJpmDkvJOvR198IUwYc9ULGPmil2iTqFiFiGjlTk.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EDARLTaT4IC1VOfwV6baowYKbgOdR9-vtVU6QyLQTjI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EFQva92FBkqJrXlwFMm0pOyMbmEIDZZTjKfNSL_SkZc.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EHfXjykHNwJnJ2mPC_X-9u5XQ-lo3m4lSyPzw-raCms.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EK94JTjppaz8RHle7cCnC2-AtPXwdJ8yDkUP71ZUnek.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EwckOCeKfibFMJk1ykog1VSiAkRxFPJRomR6UnhspFA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ExtPB6HexdzjWLQJkCzrB5IkQF3ZZXpBa9IPQROeLIg.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/F3oiB_iZ467uXhAv4IjoV5eZSm-bwgS6xUjszPD5e9U.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FLTgQmbIJNhFOAe7KHjPgxgSVYkYlXH0Zluo0g-u5hs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Fns9pIxUWrPU5h9kFlyKS-PwKd8HxU5Q5XOD4g0BDeo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FzziiFjbUsrpb7SF0ce2ZkWkxLwjo1wA24G0hXaeIkQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/G4BoLpM5zXXaRM_wF7w6DGkOQj0_e8uQ6g6DT766VrE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/G8NeUk52Hnr7bG_HKvsYHrwPVbf5CBK-faalsc0CqhI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GTCjnTkoJck-uQZ8rDMK4r714HhpzeJkNtzPFQV8DwA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/H-vLBWd7GFBKYhIfIvjrh_ybAYrwqt68JLUd2byKlKM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HC8vOhiwVnfoGJvnxqt_LC-wzGgzV4N0m9oKKtx7N80.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HF6WTSaNGkbbpYZKSQjL5V4qNzevXksPfMsclnueSZA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HRQDr4TsPyfcN8NC7b3hmZJH11mUY7vTjoscEUdlesI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HWkb49cHyNx6KuEmVwRc8kLyFRR8KSqwIWuRirwMe4A.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HYCvQ7OACArsJevB7clpYUhju6qbdSyS_lPA0HTzxcE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Hi1YUR3014PHRusUI2Psm51L3qSNb6NNtUjAoqdBgJA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HkivVuo1QbHiVAZRwxz8KISg7w8SkVsLvXXPjTyo1RY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HtjMoz49NTbpPgQ5E7HuoCduA9wa6_NbwM3PosrO2S8.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HuK4Oh3hKlvMS7sKaJ-1IJset3TEcndPwPSIc44otsw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/I-8CERt84_2ELVeGVTwnLrIVeXtiYNjz9MKKpaE9a1k.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/I-pscSbe6WWQ-Hy600ABZdc6wMYC1utqCHCpXRgHkck.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/I4X_-Wfk9tSNv7Y7DN1stcfdEmVP66GhbIg4rBGTvJk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IIHFsCskfZ8wud0ArVYadcEz1sCwDNST_CzhdRQ0ymw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IN3zcsPPiYWRXkoyEdQTWYZdobUm-hVZPF-RsyKSLZo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/INv_HAthrzDkm_D38eTGnh1Fv0Vj_MuX4fgbbRyXIuI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ITHO1axalp1rHmqR3YvaIkjcAvn_b-ZDcFHAwd77x8g.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Il6R5QNZ6BNMpHu2VKbgxYd7kLnD_VBlXj4sNW3Ogrg.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Ip3sIWGeNobzJVqwWB-9uzzRqvRzIl16lYYu2LwYSkg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Is-w-V5glNAuSJQI6LlVgYrsrBpTkB8UuMyvC18kGP4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IyqWEHJrFKiApIk9ykMM4aexL6XjINdu8SM_hvODC5U.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Iyr9ur_AZWlgQioN9Q_0ZIHzk8eAR2gcP9rA9U53a2I.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IztqlpUnlF6g-AK41uS64ADOb_UqrV2XPKipfwMZtng.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J33O-gglLsJXTRsiLsEaZnkx2EejYpaY3xgL08iGtGw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JFyms6REaLPLPGIhMN9PGqjy17pfjTRUVf7eZu9Pxco.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JIHTpeIeHLyoisKIzpqO0eHdGhi5nEKWj5-RcVKRCM0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JW2xq5zPnik9gBTiiH4F_youPivdygFAzUOO8MbWgkM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Jd-S8kl1kAIMxvyCcIuOA7ZGbyL26f82Ye-3R_XSjdo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Jze_hM1mFPXNRoOoJw19TGQvSkWHNCf3QMNVc0ziz_Q.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/K6SnboDPlbuabJPpTZ0JPk8gO6RFUZBqZ86JAtADJEI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KA5cXFlW0WDZ_VC_cWZZYScTtlyiF3RVGqBEGU6eiWk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KDwg9dU_fSHgpLW4os9qv5BQy9zdS-M9s6Ayd-AANVc.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KEmMrd7MCPJPBEXnAmcfU3NSj_picTq8W8sdG9tqrqE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KIkXGvm2JGXJ5o2qXMFuGbgz6qMOB6A_YxWOUPIHKK0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KXINFsNMK_ckYGMJQGJfbFh6Z6epFg9k-5Qhs9rW9EU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KZT5maABQpPM8h1-x2KELDmK3nd7nKk-gcX_gjMgt2M.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KepueFEdf6u-gcEmbP_Co4sI430KiPrpm0DZTrdbZUU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KhI2DHSuQgZjCK0ekRDtvbZpOwdYZri_CwBZ_JkxvOQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Km_xMbxQ71ubb9QRITDKX704GvVKFUCbb0nUvxa8thQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LEKS-dzBMjc4eTyBxtrkhH2mBdtswpViSIhSflnSWt8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LVNi0m_Fz46uZMQdhGs_Xp2qaC0-FvTGXGkvKC4t4d8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LX1cGvPp6Q6XjdGWjj9TR7J4-zLSGXBgJ4V46lvreMU.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LdWTufB1ksbF48SkjjVFQaGOGLZhuR67aZdg86lyIlU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LdznozvZmzSQM-vN4gpeVOi7BnxMKo9wORxcV6AV1C4.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LrSqV9e6t5RRqIrQNqg7rJNyEmu18afM4pmQogLkpaQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/M0uQOpQsd2JJzwD9B8xFoWKkOeXsEv989W442_j6GWQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/M7D8w6LkvEVOKTQGUh5UeMFsZH9VO0AcqcYXjP_pBUI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MDLy9q5bNSELATVxXwYNiE_EWIk6G54Vvp6-6Nqe5GI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MZlIjxVbEXORmEiPpu2WfhYYmXabfs-Mx0CK13UOI68.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Mty8gekO-EN4nBDIU6_1vSciYe3nym8NZFIu8Blar-o.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MvmfAyy9rh72Z5qHWYe-P86KDG_4TypMgkIvJ9H_VZg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MyIKfP196ecHA5x66VvwST274efdOn68xI7gr7-yO_s.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NVDHbW4cQm1BkVqKaV_UZJCoUGOjV__cQDP_BkY28PE.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NZYfENdib9jQ0mLkOwrrHkyePDmPSnsyNBF09R3RjDI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Nw4FfwPy0V6hfEuMiecmCowRpPVW72JuqlU1XiIbwIY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/O42pf20jdFJ_g5abvA826QHjbBd_O80pk4MWxW-tCsA.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OAJRpn8VLCOm_jZEmbk0pORgSlL7gp4nFifMo5niF-8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OGtnLVkXIOrBNwwxtlEOXYAU-nA5S08TDyFelKR3iYA.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OO7RmvETdJCl6nDgMH22qEwqpy5SjZ2MMEBlC6tG8hI.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Osvd5BC9KZ-hK4npyrYgEsra8aCVLyBTWo66yXU4904.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OzJXhurZ1BYWL9zrfbxtEKM1oEzmIl5xNWB0kEDMcOA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PCOy1GxF5pveYHXcBMOi91KB446LiGmPMI1UFX8g_-Q.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PbS6_clOuwqA9I6Ve1r-WHw9oyXHcbXLmbpDmHQShgc.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Q4TMVpJ3X6XrShazzrnMrNim1_G-BNe0VdCulR7F-yA.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QHu3oOt0N98TteMY5zXqcj1z97xn_5N43EfY6Pi9kL8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QMaS77aFhjfvAlv3pTOkHY8huXHTx0qwk-Q3XC-LUuw.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Qr1oeXB_1KGcnRFsaYAvIrsxKqj1Qb7vWnTRmgXk_VA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QtA1YtaH67pw0mVtsf1tkme50FTIriYFZ0ho543Qa3A.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/R4DimiN58ox6KgjnR2eQwODucfhsWMz41f58AEW2fIo.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/R6PcDLPOUUtOP-BD7s_Ur0xv3uF6iMce62QfJ-box9g.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RCYWsl0xUIU2nNKGL8x7couerrGdH06aVPyqe4T3v2g.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RPaoa37GUXAxFdY8fAxaqrBcqpO344RueeI0-aokr-4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Raj9vOIqeGhMSGtu8Q_sPxFPdkVVSvpAJq2eZjkurSI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RasXSipZI53ixic83Lh1Gyxf7EZ-ZsS-xs6MTSlr23c.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RhDVv9RZb-Rf9b572V-Tby43AKU0VobRcA3p53frD0w.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RoSdinmQMNdbk42r-5aRk-ZSpex9SGn1M9kToboGRlM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RtPqr-xCyExVFKXPLlXveg3hS48LPIvlyGbMoaE9A48.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Rv0ZOQezk-pppzUrdpvYZIs6NI_EYwa-F03k1Dyv6LM.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SJW0DP3AhW7DLwnpif11zo1ebaTOSKFyPK1dGObgwec.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SSs8xG34aB14Vj5PMy_zMyWZ_CI2NaiP7aUF4hIX4oQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SejMpuiBooXU6eBSfO33CrjJR4wNjWC8zkm6I1GAeos.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SgOybhbsgRVeyoYJJM-c3kEvJYV1gxpuo7rN-mb3Tnc.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SnzRk78-FyJIzk7pMe4SIbViUnt8al9lQ5Gy8XhFrIY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SuILTE3Es0N_r-36Ddu2E6h49WcwH_-RsZyG4SPwKFQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/T25N6kK7z1ktWO9T4A9GAKDxA8uV_40I9iCK72yJAzg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ToO9q9KZUkSycEPeq45MeeteesODn-nUiRkc_2K4Odw.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TpYQkHppriVPoi8yZlS7pr6M0VR-8bgS68niJd5mA_k.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TseCU3hhL2Yp_9cVEW4ZfF410Uc5RsRl2WJ2e_RKzYQ.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UGP2acGAePQXO0CTCNSktz3KFcnj6TVRjK78o3_-Z6Y.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UTA-dAu39ywx50aKbw-_vIHLbrENV9O11MIOmfAcqwY.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UUuqFAvUHy8E32lwI0UKWj0JDvMFXin1lOZh7r_CFU4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V7-8OhEYcV91Tjl1Mp92Zs-q6tVYY_NoXBRZQB5vROo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VP-5hBBPrMcJGIIn6HqbMSqU2AOAWb_2b7BAWcdrc1c.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VQj8MeqFcSYovlGUK0G9tMS2Xu_WouD5nZPyKyiweq0.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vlf9_BCT3w6tU64yjiuvN-opIYynyGIFGSKW8Bb5isw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VnoinoejmNyMusctCLIfDXuFCSEi8usJC8m6xDhUjq4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vz_XyP4dxLytmt1nM75kFGT12PZq3bNYSD4lvdLEetE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/W9RiVsPehgaZrUMdd9IMxV6tWIOaJSUJC3FkXb1X_B4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WRHdYa7fEbFVL6yef8rtmfO7EkmHLP7mvLYrFsydc7M.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Wma3mCvAkft1gb4iskpJcSKJAxs20F1f9J2E4aG1a58.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WqdHTk7KRwHNiGDY3E1WbSwBE2PWrTEC_HKQ2dgQh_4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/X6fitKDo9k84hcsJAAFipPaeAqWy6LI4yN0xoXUMI-8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XETabnfMEH6v-S1S7wAPpqzzyrusq2-gKEj9xXfazWQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XObHVKJOPQbhJIypQ3m2F7cKPAyfUl2i31t0ZpyyNPg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XPURjd_micKqrq3ZsfPm4DEg045aMh0u2t6H0Kg9Yvs.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XimghOZesEI6BcweyGe411shS-dhkXGeXfICxpTMaP4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Xq5ZUgEeXuuZ_LjabsqNrD-0Go3uQ_Cyp61HWjTc58U.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XynXdkOeORTqM8SLwd29IBzqweNuC8cwHaKDU6aCSK4.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Y2JXHdR1Qwb4e3EeE4Ez_zsdxDGOIBwOchlk5EROlTE.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Y8R1Go-ZDdkrGFky02NN7UnMEhQk2DqxsvSX77Fa6FA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YHkX1Dz4-_N2HxZ5NqTKZci_3AXSvWJeJA_i_31f9kA.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YJbah_vlhgRdgT_Teq1T0fCbheSTzHIoHemg9qXindA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YRwMHi7FPQbp1ciWNBf8zVdyOOQZ90gZxW-FGjsbo0M.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Yck0uONNPexAbm2FyBPrfd5yIS7zF6qget0qv5CjsHU.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/YkwiLOME0K0S68fJF1m4B59vHPfCrL1XkvKuU4REXOU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZDVfJezxW8_ZZwk-cwh-Xi0vzlaptRAdhzieKE_zUFY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZKHvJwMZX4BDjok7en1aRFmYUMIGKxP-2WLxxfmV4_0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZKMpLctz8nAvAMaFYwxiwBLh_0HFVR00Ef2Tp-L9gk8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZKaeyFbyv_L52WIc3QtQXTKgCIpwbTR-uFJLaTMGqMw.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZMXh61oyO92eyHwgIArcoEU68tdVc-dasYwTUiSdsv8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZOf3jjmjGkvVrLqqqgnNzuiOWpkOmQ9MEIwXhtswC5M.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZPgHNAJhX0yVATfQVK4g-l9clGnQ4JK6uUQSZr3izJs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZirvH1uELJOGqJ_P7CHUAeE_P7jHfDV-kVS3hqudqrM.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Zl_4gLKgfMkcF_M-9_ZEbdVsN5G3srKY7ntGrMlSrHw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Zq028YKPdCngXVGfBnaVxR3ggnSLIXPPQmXKuOrf8Rc.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZrHurvGsuXiJ-LyErQBL_Z09EEVtYRzmGCuik1pCbMY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZteKWxvlB9lz_cw0HUFX-gLZnyvx2Zl4yndbIQRAjqk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_CyPKbQqBzpjkvVSPJCuRZ6LPST2L8lNbl3pPaFoHJ0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_FzZXs9cOynmEHX2NNQ-CN3hBm85EZozlnqahZgW0p0.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_RxurG4mXmoQvbBTBfr-_LxySQdZ2vRVo1x3z6BTIM8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_VTTW4fptVcLI6EEhHyBd4Z8Sqh8TQQ3-xQmcBCdhFo.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_VwqClblffKCdAP_EdTPlIsw_a4CtoYdZWrIqsvTEOQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_qTdVcypJYB06uIuozk0oFgOO-20TwjPvSXO_We2SFA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_qXTu5xPKA0W7krxy7i26PqnCiZfom_FyzNgoRcfhrY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/a-ZMeoDAaumcckLg0ikJ4VOpG4myE6TpW8NhkwHfEEY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aTBvblCTpM9NO4FybG9Gj33dec5S6b_XUwAccF1aZYs.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/adco25PKONAOLm-3rk6IkBIQCnbQZW4Ho6gjCtHDkDg.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/auxxd4pZZ_TDPxKd6Z1PHX1KB7GK6XR4zZCkpSTjTIs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/b39zQHTjF26g2idhY9yeVDdpi0l5AHiJJI9GRYqF6mU.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bD4HLMG-9D4qPG_FjmXWFZ6gjrSWcpls07sjaZ-O7w8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bNzI5dnyYKL0_36QaiWo9c62YPQqItx7pKCGRUy7FfE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bO-oLvkRTCzyfG1n2yXs_z-XnWJGQkeq6Epi7htFc9I.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bTc-0wBzb4QwDigu6Db7NvQ_N2V40lyAP7vDnJ_nlH4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/b_F-ynokmpMl3NS98JLR_LB9VDh0YOK0UaWye7i8USE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/b_LqzZ-8tBIFMmv6e6UBt-bbUKJ2xvZ-REx5pGyx8iI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bx9uG2b5bzutb2J4T2Sa544N5DYCTwy2P6WBGzuxs_I.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dMTaD6SlQOW5HeTJA4GTKwarCYmPyQiARbMyV_vB4d8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dTT1R1UEP8uYnzF7i__RYmTDlUukDJ3xN_20-_05KEI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e1v0O2JKkRHQlw8TKb1w9oZB1vemT5pyrEti-lMF5b0.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e61CL-jArxF-LrNCE2KXgDQRs24C51uEjlx6Bi19Gao.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eUu1MwUf-0AQs7dOY9q--kK5o_T1G5PiS_K2T8YR48Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/evKXHHSZhFrDfQz8cjp24eCW4GxCo7dGht_7kIJvzBM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fBscfaT8oxs7Yqm_nTectEFY7MEPIC4905izon3ZfkM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fQXVskLewjixaid5c-_oVGxkq-f67ZCyGJS-4elUdCo.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fRuioQRNW0lMfz61Sc-O5z8cQlpP7T5UYGqcs0Q5M7k.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fcB3WIgbOvDMnOx21ZxJod_7X6BgByfRZnnqXb8jeCw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gBLeBlrK5msk-pYd1S99yFV_lV_9__zpaH8xxhlsN3Y.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gHfAw7eXqwbHMSaPLwMnsJ-2rpS4tPojjzPflsNwjS8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gUNIBdCSgztu1IV1u2Iea8rgbpdr7yfMU81jtrXab_Q.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gZ1A1--Asdejq0JC1PUTTgUEDPpV24UMUvyGvPF9qLs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ggyLrLMGVAcFn7w9p1lH-wrhmfBLSbIBYRoAosZgBx0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gnsisTlVaZW5O8yedgMtd39R6RiNWwEugCpxg7Fvhgo.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gsT50j7JKHuZpK4IhejdLyeaKfQHfRPi4cKFSX40xbM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/h36EXMrbHvbFBnm3LtD7G3AszmR4XAInaarh8jjchvo.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hI7K5kfULmC1N0zMvxGOCfdyDMLMqzTZ_0g-qE77V0c.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hV80P7h6cMezrBztIgEAn7INoQ7Sw6p_rnUGxg6SLfI.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hWu1uKCWmWR3s8-5BJoduM8XHlqgUs1A22oqy6cIioI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hYh93QS-0IpGwtz77I27Poxio2RxvCbdfwUU5DUDDac.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hdQmfiHfKbGaIkA-eep2f0S9_Vk4Fx_3495ZFE-5lvg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iApklbYsz6wjnGnGAYDDvoryAu-x8xdYWFRCRICxkyg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iRiaNr-fBLM-F3JuE14i-viRO27IlDgf7wSSP8iBX08.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ifSFOIuEmyYMVEx24wla5z3sjbPQaa7ewQjWZIVK5SU.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/inz6emggkYiVqCt-Bij5_ONj8YKML_oysO3SH3AXlfw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iyALEPjIsWnyk6QHQmKHjw40Gom36pc6D2lMAVG5HAY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/j4fhwqDyIcPq-vVaM-r8IG9pkWB8unxSH-juX-2a5GM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jH9EdS7oritO7nZnEh6YwafCgT5JGaZfCBFZ1KgtDl0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jHeuZcbZgSPINIRRpB1khLlwKgjZWxOOvdlnNFfSEkQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jL9LsrMlRmTbZOafIXj6ktFICgnHzgXQKlvs44HvaS4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jXAa5hghD4VHps1S-0rMrQYRXN8BBXvdn9E6IF0WjNE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jpHebb6f41gfqFBkL022mjpgGVahPL8Ekh1lLg2IlIo.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jvbwlV4plHlp9PGnxZ3OUSBxRathaXrVgIYbETC4TLA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jxmh-q1ZW56jxojXdgi4lN0tIeaRlxXbjGoIMg9vz6A.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jyqD2PEbsUGGdyIgbi8qzfxkUEXQcMx9KLnzPk5d0cg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kKKd-AX4C2iQMZWzKs1fRBdZZ55e-EPGa0KG01lpges.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/knnWBtJbi88d3b8x6dF6p4ULZW3CRg2iKMjOlzyl5U8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kwNkwoshx63tQMuxFAI9_pmzzwkd0kQcAKGx8dy62r8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/l4Ffy5jgVLu9dt8-l5Kfc1HJe4d97NaNA9FVK3-EgZ8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lG5HoTNviW0JZhvB2jX5FK_qt5yd2zvhNScWeyOxSlE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lph3uDhnwIX4t1R9-tVND4IFnhJqL1LqQtMrvfG6w7s.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lzBnHrVdWXPgCGDMWeM697bVZm_TnCs0-BOLGSabSHU.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/m95yq-mMsjThZfR9xAkTGkdo_JkJ9U7FMuGouKiLeYI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mbXvxeAfJlLiWH1ENKWs5K35rGtCFwVC7Zh8iz0VxKc.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mztptfmRewdrtufZGYsHIP-cUobPQ9-KjG8g7J9AlEI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/n7XFj-ICkjn7X4nWPnxX5kW4l2h-GofBeWkFwm3kwqs.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nTw9g87OxunHhH1pqowngHCQQOw9DK2BmQ3M60OJ15g.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nXvRhnR4EVKPvqpL5ybixATwGqSAAM3GnqoreQL7lOM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nd-bTF0GF0iq3FYx_gfrcw2MYqKJK3_u3qX_P-MB53c.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nljNEWVMdSyfIlWTqKa0VgxX1eArA7WWm0aLUeXwZ50.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oJA9-RKuPg1FyZ19t-ngXaxCLfAwE1U5oWuLrpbKxXk.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oMUQEHW_ZczsOgceMbyny4zS_7JDQR4LVJsqDC0n1Qg.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ofQEceU5jwHsMGUYlKsSKWsbhIcZmqkyDTIZMXnPSZw.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oixKGcg4vjgjJVhlFVvaKQBguqvPhw-ieoH9mAkHbQQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pSu5LnLEpj6V7FhekaIzJ2IqzRZo0Ez4ZENr0VAe7TI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pcaV3zSe0X--5yc8sSWV79jvBtMWBE8wQa-qWdHCVxE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pfpeQRAl8pvI-oF3tjHTK0DO1xmDYrOBNahm32WF9k8.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pnW3u_1AN48ig6ngefI89y96xoSlvnJurx-e3J-leoE.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pyglm4tF6LyPZb7zZ4zXxFkSJNqS7k6t2EfdGyK4nEs.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qHufjeN07K5cjvundz8j9byD1bx0_zHs8RVtt8CPelc.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qRbG64Am2J0VJubIAD6GsUncqHCDtXdp7GpeITfNk40.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qapMpzLzmfsKUVfx8heiDDl_aM2eDpgGIgMOFmGDzgc.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ql-oqp5mf_wnLFbkuDE5LgWxgPTkowkRERBa9J1Ufz4.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qp_pHvhopL_R2ArATeOwTF5IuErK2mmfscIjmi0du9I.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qr43tN6jxdx2nBuZzVh0W482kex6JzpRT_Jlg76vs4w.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qz280481u2bUSM15O8fjWQh8hRz2x9qLLz9yoJ11N_U.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/r-s_eJx0epqP7zZY6vKtRB-IX2wsSvsotT_p-p3r0kA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rHmecJHt_CBXvz20fbtsdk8OgoC9kzNTumxJ9P9syMk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rx120TUndw4AbM88UBSGpYJDA-eXMy3CXjIepvputuo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sHQrRWJLOYIiRDclrVXPviF4RjD612SRu8kt77SUiHY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sLvNEi7VzgmnhJQZR2jc22RIAUd4IZUEhz-ZF3L0s0I.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sV7IPxJP0BDm_iFz5Ye0I5GUbqToWPGafxxHzruqn4o.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sgTRuK6vzO49r6Qci597WQXim5wOcnfMY8b3Wj9WT54.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sgxkvOxkALoZe-Fr8m9-ZlEmRI4Dki2eR9-L4NxZs9g.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/slMNWTYxn6-pY7ZoQgwD7OirDZ-_JNhoINpkhSM8JpU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/snCjf2nATp16sbihKkc3WmJKwrM-Nf6uyHD4lvkhYBI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ssS2x0Wl67rwXHaVHsh6CO7ayn9fQ5saIwATKN6O-nI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t7tlINbMNG_NUzXHBaszeCQI2VRXov1jsG8gGGFGjK8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tQFwNvTvB7WSc1MNrrrlR2npWEGH6-4H9ZQBt53ihrk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tYFbDrMNElXwgmisit50aNXJvRU2zlIFk5g-EJ1CQTc.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tbmMu3ukwKaE0BjbtkJhphibnWbw_syO40zEfULJcwQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tiEnLwHMkjzRHoNu0gppx2GSTp6HvRuMkp-2Oqbe1ZQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tlN7GHZ8yK48bJWEK_4Cweb3dif5L4wN7NnoOKHL5ro.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tu3RdLHCMPI-LywuuixWPMSuKUR4--X_j4TI_rdV760.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uAmF6E3JpcBzFORYg5hyetm0KtLM3wLjBGuU17UWlv0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uyBTtu4gN_KBmzSxbVUtmM-v9o5B5gccXFhLYlhZLrc.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uzCihE-AR8X_6E7z1wNEtuLj-cVjaFBTqADSON-tTQk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vGc3WFFBAviuYcm6LJ5gcu5NtbU8muNyHCOvpZyU2SQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vQMIiaadoH60k_hYUYeiCYJjRLpHKm-gG7uHD1wqPfo.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vd1KC6jswqrOuvnRtTRD89GERlj2Yip2SZaLZBndMWc.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vrpQ-4TWh71cU-S0YXR-Z_GHzbQdmQML6DcHOlDxFs8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w1UmGVnv7CKA4yH1W1WrIvOM5Mg5CKAwMhkDa9H-wGk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wJQv5wdvs9wuczaJi6QdbPilkpGYi_NfQwtTC0LfKBM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wNVcsMnZLVVRwxoib0AL-Pss7tzB-1stHUlDrzpQceU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wOrRYBx4PnokGHsz8brJHk3CsBA_R5QtMxcXGacWx08.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wR0ZldWRUBI76kaGAshsJ_ExZYfvGUIofuzRJHhsXsA.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wRDw4YT27lmkKhaxdAnGp9pC4Z3qjiGcDuvoRNK8R1I.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wTNryqjmrX_JP9rznKzF2y2a2YrSyzzgma8K9FG3-O0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wkb-pWvPH2suUNI4gli3yDzco5HXEof-eMU1KvildcI.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wnUKZCI4IN78eoQeCsmk_i1KICUeR5377bgTIteGP80.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/x6XzpqRQR0k33t_wGetXxFR4RNnG6mrp0FOBKcl4jb4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xBgeZhWxNu0MxtqsstirphbvHYba8SKFl6iWeFh92rE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xBn8xD9ZqQS3Ny4c1qGktFCWWCBs5TZ2T8NGu-mA3co.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xFaJO3VyqCmZEFPdJ-P4DXsHfFcZvUjgM7CtiN81zyo.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xK2dbjxrVzOePTatsreZ4nnh3ClthCqnPSehyBuO2ZI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xN9mBpSlxZ4JLyc0q561T_SLLvqnIpXprtk4baJpCjs.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xgMGrsGgELUI1JBrlpZ6cAciwQgg2K2RHVNWfTJplqU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xoKDo_P83JYN3961boUtbDxcu7sgJI75E3jrJuVLsMs.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xtTEgatYUqNva-IT6ZqzWf5TESvI6ZpZtdqApKObz00.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yJKiLlva8DyyyKYTNUpTFJpylQoL56pi_IW4vZkyqj8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yJnRPnw0vpepiXdtY3aVTpcLkpLuy8-6OSfuxlXDIqI.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yTq_Kw6ZznYtfUwEVQcnwQcZMvk8LG97iLYfiu6G0So.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yYWy53efsOhst-Z42foBwjtw0if-f9D7G48WxIxl29M.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/y_iYPVLd6X40_N5VUuMQ9_her8ChEG_3389tfIkdXAg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yiCGj-7Lcf3QQiNEWZvEGKPvEYmeDOVICqO9RxNFuY8.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ypbYZxdZm4IRZUBKtmDkBCX-uK7cb5LTzau4qMdbn-Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yqRpn4nfsiyFK9SduAt_6SvG5oxNX4yGdAkuLWQIMF4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yxZppbEFzuw0ceHGlPraaFSyHauQhC-W27YkpGOat4g.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yzDL94QvKghx1HWV0_j4knxWP50emPZz5acLQPAFkyk.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z5MJ3dGP-oEQ4OicSFvpF6LC2Hiu_N5X4OXUvTcEkJQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zCHY3Px9vEvHp49LVEcJwirmOzwBRmXHVAuhJZekyEA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zUgR8-T7pENJvFOubVNhutku2rwfui6pbfr7P6hUf70.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zW-P8B7lOQSeQCGunKH30LiXn0QwGPBZGKGmUed-6QI.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zXbpClElJq8zwSwvf6-afJPNib2fisrkygDE8IsFQ6g.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zXeO3OESUCMsMCtlCty57A32WQ-yiiDDC_keencK8JE.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zXnjRyD6hCOEmKVRwgAUzbSSUOtnw7fkIPr_pmAPu6I.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zcVf7iNuAXXr2uTNmOFUONY0W_n__zGDC7y924dOd7Q.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zdaei-ObMqKCqfd60KURUHbIOgzJB9tcnY3bQxNiBj8.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zq3uZtzIUcUfsdw7NltjSkoNhDYP0_tt36dmJH6DPPw.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zttbDN8QAQl58qoFYUOMY429NdXLuS7mSN3tLlL1GTc.cache +1 -0
- data/test/dummy/tmp/pids/passenger.3000.pid.lock +0 -0
- data/test/formalizer_test.rb +59 -0
- data/test/models/form_field_test.rb +127 -0
- data/test/models/form_test.rb +117 -0
- data/test/models/formalizer_config_test.rb +35 -0
- data/test/models/formalizer_form_field_test.rb +39 -0
- data/test/models/formalizer_form_test.rb +34 -0
- data/test/models/utils_test.rb +30 -0
- data/test/test_helper.rb +20 -0
- metadata +991 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 94b90630cb3140399143eeefbeeee946382188fe
|
4
|
+
data.tar.gz: df814abe6674add20dcd7a0b714e7467d86b9338
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d7484667ad6f4d7a8da81e311397a336c6911e7e88c78884cecfba91daf5146d3e58205ac06c89b7573f6ed78f7f6d2f2f77f2e2dc4f32cdedcf9f9e8b126dbf
|
7
|
+
data.tar.gz: 6ec3c25163f40a963dc05ca2225fb203d4e756ffec4cac155191d4f0e3c578403e1a43760e5bc627a96c2c38f988932663edef25df532282344783c5b72a5901
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2015 Tal Yaniv
|
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.rdoc
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
= Formalizer
|
2
|
+
|
3
|
+
{<img src="https://badge.fury.io/gh/talyaniv%2Fformalizer.svg" alt="GitHub version" />}[https://badge.fury.io/gh/talyaniv%2Fformalizer]
|
4
|
+
|
5
|
+
{<img src="https://raw.githubusercontent.com/talyaniv/formalizer/master/test/dummy/app/assets/images/formalizer.png" alt="Formalizer flow scheme" />}[https://raw.githubusercontent.com/talyaniv/formalizer/master/test/dummy/app/assets/images/formalizer.png]
|
6
|
+
|
7
|
+
== About
|
8
|
+
|
9
|
+
|
10
|
+
Formalizer is an open-source gem for simplifying HTML-form filling and exporting:
|
11
|
+
|
12
|
+
* Store blank contracts, agreements, disclosure sheets etc. as HTML templates.
|
13
|
+
* In form templates, wrap blank data with <formalizer> tags:
|
14
|
+
* *before:* <code>name: ________</code>
|
15
|
+
* *after:* <code>name: <formalizer id="name">________</formalizer></code>
|
16
|
+
* Get user data from any source, or simply let Formalizer generate user-input forms for you.
|
17
|
+
* Formalizer will replace the template <formalizer> tags with user data:
|
18
|
+
name: <formalizer id="name">John D.</formalizer>
|
19
|
+
* Filled forms can be exported to PDF using {Wicked PDF gem}[https://github.com/mileszs/wicked_pdf], or to raw html, for additional styling.
|
20
|
+
|
21
|
+
== Install
|
22
|
+
gem install 'formalizer'
|
23
|
+
or add to your Gemfile:
|
24
|
+
gem 'formalizer'
|
25
|
+
|
26
|
+
== Demo
|
27
|
+
|
28
|
+
Clone this repo, edit the root Gemfile and uncomment the last two lines:
|
29
|
+
gem 'wicked_pdf'
|
30
|
+
gem 'wkhtmltopdf-binary'
|
31
|
+
|
32
|
+
Start the demo:
|
33
|
+
$ cd test/dummy
|
34
|
+
$ bundle install
|
35
|
+
$ rails server
|
36
|
+
$ open http://localhost:3000
|
37
|
+
|
38
|
+
== Usage
|
39
|
+
|
40
|
+
=== Configuration
|
41
|
+
|
42
|
+
Formalizer looks for +formalizer.yml+ YAML file in config directory. If exists, it will load the configuration, otherwise, it can be configured programatically.
|
43
|
+
|
44
|
+
=== Very basic example
|
45
|
+
|
46
|
+
# config/formalizer.yml
|
47
|
+
form_fields:
|
48
|
+
name:
|
49
|
+
name: Your full name
|
50
|
+
gender:
|
51
|
+
name: Your gender
|
52
|
+
field_type: enum
|
53
|
+
enumeration:
|
54
|
+
- Male
|
55
|
+
- Female
|
56
|
+
- Irellevant
|
57
|
+
default_value: 2
|
58
|
+
forms:
|
59
|
+
simple_form_example:
|
60
|
+
path: 'An HTML template that requires a name:<formalizer id="name" required>_____ (required)</formalizer>, and an optional gender:<formalizer id="gender">[male, female, irrelevant] (optional)</formalizer>'
|
61
|
+
|
62
|
+
To fill the (only) form template, we need user input for name and gender. Here is a quick flow from user data to filled PDF file:
|
63
|
+
|
64
|
+
formalizer = Formalizer.new # will load YAML configuration
|
65
|
+
|
66
|
+
# Filling fields with values, regardless to the template form, so they can be reusable to another template form. Since we configured gender to be enum (zero based), a Female value is 1 (0 - Male, 1 - Female, 2 - Irrelevant):
|
67
|
+
formalizer.fill_fields({name: 'Michelle Markus', gender: 1})
|
68
|
+
|
69
|
+
# Exporting to PDF:
|
70
|
+
pdf_file = formalizer.export_form_to_pdf(:simple_form_example)
|
71
|
+
|
72
|
+
# Inside a controller, you can push the result to user:
|
73
|
+
send_data pdf_file, {filename: 'simple_form_example.pdf', disposition: 'attachment'}
|
74
|
+
|
75
|
+
|
76
|
+
== Under the hood
|
77
|
+
=== Forms, Form Fields and tags
|
78
|
+
Let's say we have three different form templates:
|
79
|
+
1. Cover Page
|
80
|
+
2. NDA
|
81
|
+
3. Purchase Agreement
|
82
|
+
|
83
|
+
All three forms require personal user input: Full name and address. NDA and Purchase agreement also require recipient's full name and address. We end up with four fields:
|
84
|
+
1. Full name
|
85
|
+
2. Address
|
86
|
+
3. Recipient's Full name
|
87
|
+
4. Recipient's Address
|
88
|
+
|
89
|
+
By having user input for all four fields, we can fill the three templates altogether and export as filled PDF or HTML files.
|
90
|
+
|
91
|
+
Since Cover Page doesn't require recipient fields, we can group our forms and fields in tags:
|
92
|
+
* *with_recipient:* forms 2 and 3, fields 3 and 4
|
93
|
+
* *without_recipient:* form 1, fields 1 and 2
|
94
|
+
Now, if we only fill the cover page, we don't need to pass all the fields:
|
95
|
+
pdf_file = formalizer.export_form_to_pdf(:cover_page, 'without_recipient')
|
96
|
+
This will make the call more efficient, as it will pass only 'without_recipient' fields.
|
97
|
+
|
98
|
+
=== Form Fields
|
99
|
+
In YAML configuration:
|
100
|
+
form_fields:
|
101
|
+
[field_unique_id]:
|
102
|
+
name: (required) Text that will be displayed to user when generating an input form.
|
103
|
+
field_type: (optional) One of the following: text, boolean, number, enum or multiple. Default - text
|
104
|
+
tags: (optional) one or more tag that this field belongs to, e.g. 'without_recipient'
|
105
|
+
default_value: (optional) default value for filling templates without user input. Boolean field_type: true/false. Enum field_type: the selected value, zero-based.
|
106
|
+
enumeration: (required if field_type is enum) a list of at least two options
|
107
|
+
|
108
|
+
forms:
|
109
|
+
[form_unique_id]:
|
110
|
+
path: (required) a file path to the form, or actual form html. The file path can be absolute or relative to config directory.
|
111
|
+
tags: (optional) one or more tags that this form belongs to, e.g. 'without_recipient'
|
112
|
+
|
113
|
+
Localization:
|
114
|
+
form_field name and enumeration can have localized version. If not stated, Formalizer will use Application's locale (+I18n.locale+). Otherwise, use this syntax:
|
115
|
+
form_fields
|
116
|
+
gender:
|
117
|
+
name:
|
118
|
+
en: gender
|
119
|
+
es: género
|
120
|
+
field_type: enum
|
121
|
+
enumeration:
|
122
|
+
en:
|
123
|
+
- Male
|
124
|
+
- Female
|
125
|
+
- Irrelevant
|
126
|
+
es:
|
127
|
+
- Masculino
|
128
|
+
- Feminino
|
129
|
+
- Irrelevante
|
130
|
+
|
131
|
+
== Generating user details form
|
132
|
+
|
133
|
+
In the above example, we had four fields to be filled with user data. We can generate an html form for receiving input data:
|
134
|
+
# Creating a Formalizer instance
|
135
|
+
formalizer = Formalizer.new
|
136
|
+
|
137
|
+
# Formalizer::generate_fields_form locale = I18n.locale, form_action = '', tag = nil
|
138
|
+
simple_form = formalizer.generate_fields_form
|
139
|
+
# this will create a <form> with all four fields
|
140
|
+
|
141
|
+
# more specific versions:
|
142
|
+
localized_form = formalizer.generate_fields_form(:es)
|
143
|
+
form_with_action = formalizer.generate_fields_form(I18n.locale, 'post_fields')
|
144
|
+
partial_form = formalizer.generate_fields_form(I18n.locale, '', 'without_recipient')
|
145
|
+
|
146
|
+
|
147
|
+
== HTML images and styles
|
148
|
+
|
149
|
+
Binding happens at the server, so we need absolute file paths to images and css files. See the demo for specific code examples. Basically your html can look like this:
|
150
|
+
<!DOCTYPE html>
|
151
|
+
<html>
|
152
|
+
<head>
|
153
|
+
<title>Cover Page</title>
|
154
|
+
<link rel="stylesheet" type="text/css" href="/assets/form.css">
|
155
|
+
<meta charset="UTF-8" />
|
156
|
+
</head>
|
157
|
+
<body>
|
158
|
+
<div>
|
159
|
+
<img src='/assets/acme_logo.jpg' />
|
160
|
+
<img src='https://raw.githubusercontent.com/talyaniv/formalizer/master/test/dummy/app/assets/images/acme_logo.jpg' />
|
161
|
+
<h1>Cover Page</h1>
|
162
|
+
Name: <formalizer id="recipient" required>______________________________</formalizer>
|
163
|
+
</div>
|
164
|
+
</body>
|
165
|
+
</html>
|
166
|
+
|
167
|
+
Formalizer will know how to use external URLs or find files (css and images) inside your app's assets directory. If your files reside elsewhere, you will need to give an absolute file:// link. Formalizer <b>does not</b> convert style/css url()s in the current version.
|
168
|
+
|
169
|
+
== Advanced: Using Formalizer programatically
|
170
|
+
|
171
|
+
So you want to skip the config file and DIY:
|
172
|
+
|
173
|
+
# Creating a Formalizer instance
|
174
|
+
formalizer = Formalizer.new
|
175
|
+
|
176
|
+
# adding a form from a file, located in config directory
|
177
|
+
# Formalizer::add_form (symbol) id, (hash) details
|
178
|
+
formalizer.add_form(:form1, {path: 'form1.html'})
|
179
|
+
|
180
|
+
# creating a field
|
181
|
+
# Formalizer::add_form_field (hash) details
|
182
|
+
formalizer.add_form_field({id: :field1, name: 'email'})
|
183
|
+
|
184
|
+
# filling the template with user input
|
185
|
+
# Formalizer::field_field (Symbol) field_id, field_value
|
186
|
+
formalizer.fill_field :field1, 'john@doe.com'
|
187
|
+
|
188
|
+
# Exporting
|
189
|
+
formalizer.export_form_to_pdf(:form1)
|
190
|
+
|
191
|
+
== Contributing to Formazlizer
|
192
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
193
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
194
|
+
* Fork the project
|
195
|
+
* Start a feature/bugfix branch
|
196
|
+
* Commit and push until you are happy with your contribution
|
197
|
+
* Make sure to add tests for it. Tests are important for future stability! Run tests before pushing.
|
198
|
+
* If you uncommented the root Gemfile, remember to comment it again.
|
199
|
+
* Feel free to email and report issues!
|
200
|
+
|
201
|
+
== TODO:
|
202
|
+
* Parse style/css url() directives
|
203
|
+
* Sign documents with external API, e.g. Docusign
|
204
|
+
|
205
|
+
== Copyright
|
206
|
+
|
207
|
+
Copyright (c) 2015 Tal Yaniv. See MIT-LICENSE for further details.
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'Formalizer'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
Bundler::GemHelper.install_tasks
|
23
|
+
|
24
|
+
require 'rake/testtask'
|
25
|
+
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
27
|
+
t.libs << 'lib'
|
28
|
+
t.libs << 'test'
|
29
|
+
t.pattern = 'test/**/*_test.rb'
|
30
|
+
t.verbose = false
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
task default: :test
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Formalizer
|
2
|
+
class FormFieldParamMissing < StandardError; end
|
3
|
+
class NotUniqueId < StandardError; end
|
4
|
+
class WrongValueClass < StandardError; end
|
5
|
+
class WrongValue < StandardError; end
|
6
|
+
class FileNotFound < StandardError; end
|
7
|
+
class WrongFileContent < StandardError; end
|
8
|
+
class WrongFormTemplate < StandardError; end
|
9
|
+
class FormFillError < StandardError; end
|
10
|
+
class RequiredField < StandardError; end
|
11
|
+
class FormTemplateError < StandardError; end
|
12
|
+
class ConfigError < StandardError; end
|
13
|
+
class PathOrHtmlRequired < StandardError; end
|
14
|
+
class FieldNotFound < StandardError; end
|
15
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
class Formalizer
|
2
|
+
|
3
|
+
|
4
|
+
# Holds a single form template and its binding
|
5
|
+
|
6
|
+
class Form
|
7
|
+
|
8
|
+
# Constructor
|
9
|
+
# * +id+ - Unique textal identifier for the form
|
10
|
+
# * +path_or_html+ - Either a path to a template html file, or a raw html
|
11
|
+
|
12
|
+
def initialize id, path_or_html
|
13
|
+
validate id, path_or_html
|
14
|
+
parse(path_or_html)
|
15
|
+
validate_template
|
16
|
+
@id = id
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
# Binds fields to a template
|
21
|
+
# * +fields+ - Hash of id => FormField object. Fields that do not exist in the form will be ignored.
|
22
|
+
# * Raises an error if a required field is not present in the fields param,
|
23
|
+
# or if it is present but doesn't have a value.
|
24
|
+
|
25
|
+
def fill fields
|
26
|
+
raise TypeError unless fields.is_a?(Hash)
|
27
|
+
|
28
|
+
@html_template.css('formalizer').each do |html_field|
|
29
|
+
field_id = html_field.attributes['id'].value
|
30
|
+
form_field = fields[field_id.to_sym]
|
31
|
+
|
32
|
+
# raising error if field is required but not found in fields param, otherwise skipping this field
|
33
|
+
if form_field.nil?
|
34
|
+
required_attribute = html_field.attributes['required']
|
35
|
+
field_required = !required_attribute.nil? && (required_attribute.value == '' || required_attribute.value == 'true')
|
36
|
+
raise RequiredField, "field #{field_id} is required" if field_required
|
37
|
+
next
|
38
|
+
end
|
39
|
+
|
40
|
+
# field found in field params, so we don't care if it's required or not
|
41
|
+
html_field.content = form_field.value
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
# Exports the filled form into a PDF file uwing Wicked PDF gem
|
48
|
+
|
49
|
+
def export_to_pdf filename = 'pdf'
|
50
|
+
# replacing html image tags with wicked_pdf tags
|
51
|
+
html = @html_template.to_s
|
52
|
+
@html_template.css('img').each do |image_tag|
|
53
|
+
html.gsub!(image_tag.to_s, replace_tag(image_tag, 'src'))
|
54
|
+
end
|
55
|
+
@html_template.css('link').each do |rel_tag|
|
56
|
+
html.gsub!(rel_tag.to_s, replace_tag(rel_tag, 'href'))
|
57
|
+
end
|
58
|
+
WickedPdf.new.pdf_from_string(html)
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
# Exports the filled form into a raw html string
|
63
|
+
|
64
|
+
def export_to_html
|
65
|
+
@html_template.to_s
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
# Private methods
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
|
74
|
+
# Validates initializer.
|
75
|
+
# Raises errors if cannot initialize form from path or raw html
|
76
|
+
# * +id+ - Unique textal identifier for the form
|
77
|
+
# * +path_or_html+ - Either a path to a template html file, or a raw html
|
78
|
+
|
79
|
+
def validate id, path_or_html
|
80
|
+
unless (id.is_a?String) || (id.is_a?Symbol)
|
81
|
+
raise WrongValueClass, 'form id should be a String or Symbol'
|
82
|
+
end
|
83
|
+
raise WrongValueClass, 'path/html should be a String' unless path_or_html.is_a?String
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
# Parses the path/html into a final html template,
|
88
|
+
# Creates and fills @html_template variable for further binding.
|
89
|
+
# * +path_or_html+ - Either a path to a template html file, or a raw html
|
90
|
+
|
91
|
+
def parse path_or_html
|
92
|
+
# trying HTML first
|
93
|
+
@html_template = Nokogiri::HTML(path_or_html)
|
94
|
+
return if @html_template.css('formalizer').length > 0 # html indeed, parsed.
|
95
|
+
|
96
|
+
# not html, trying path
|
97
|
+
error_message = 'not a file and not valid html with <formalizer> tag/s'
|
98
|
+
html_file_content = Utils::find_file(path_or_html)
|
99
|
+
@html_template = Nokogiri::HTML(html_file_content)
|
100
|
+
return if @html_template.css('formalizer').length > 0 # file opened, parsed.
|
101
|
+
|
102
|
+
raise WrongFormTemplate, error_message
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
# Validates that the html template is usable
|
107
|
+
# Raises errors if <formalizer> tags don't contain id attribute
|
108
|
+
|
109
|
+
def validate_template
|
110
|
+
@html_template.css('formalizer').each do |html_field|
|
111
|
+
raise FormTemplateError if html_field.attributes['id'].nil?
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
# replacing html references/assets references with absolute file paths for PDF export
|
117
|
+
|
118
|
+
def replace_tag tag, attribute
|
119
|
+
final_path = Utils::final_path(tag[attribute])
|
120
|
+
return '' if final_path.empty?
|
121
|
+
tag[attribute] = final_path
|
122
|
+
return tag.to_s
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|