superlogger 0.2.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +23 -48
- data/lib/superlogger.rb +20 -5
- data/lib/superlogger/action_controller_log_subscriber.rb +3 -11
- data/lib/superlogger/action_view_log_subscriber.rb +1 -1
- data/lib/superlogger/active_record_log_subscriber.rb +5 -3
- data/lib/superlogger/logger.rb +13 -27
- data/lib/superlogger/superlogger_middleware.rb +6 -6
- data/lib/superlogger/version.rb +1 -1
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/config/application.rb +3 -2
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/0R/0RGmr4z2PoNrXTofNEJ55Wrv_v-N3HOrmSgU5ILkXTw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/T4/T4WYRrwWhIVaINf3NmLDXIAI3bybsjl0y4P1KQgM-Qs.cache → v4.0.0/0W/0W5MOuazdWJMvIog5vEAQfl3ZJiz8KFyVLyNiZ2Tp1I.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/rg/RgmbeHiCGDMtbXGovkyp2kHJljF3k6_21IfxBUqa2GQ.cache → v4.0.0/2T/2T69JIvG7bvXlqaEFz4SAmmQOu5KcDL3S7O0745_gVc.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/fE/fEpQwSnNzL1JpFhnElwxvX6YuOxn_vv_QuOTJNrl21M.cache → v4.0.0/2k/2k-V7fw5kQxgx8rJcOMPyJDQ4JbisbnfZQoC2TqHp78.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/38/38YtaoIS3EsFiiaKJPIWZKoxwdIGtUeAuwIBAuuQ8Mg.cache → v4.0.0/2l/2leDpqGCN2J9vjiI1IHvVMlK22cXy2F4hknNF3jqmkg.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/ZQ/ZQkA-jIm0iNMfDDgK-M4OcgHPKRo-uBuEEowd_5_6Rg.cache → v4.0.0/4T/4TXTXXyWGjYW5FUpWGY5b1ecc_ASKWAmht53-rfZ3f4.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0 → v4.0.0}/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/A-/A-o1cjWqvf_esvFcsIdNZYiYRAbfoTl6xWZoBdtvvsU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/AL/ALcoKZSxe_5jgiHJ70icJlBPAscxfFhRmVLKCKPFHrc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/CK/CKmWm-PGWv8LhwLfTt-8iccYQtEKrPkNNoK21YhKq8M.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/DN/DNx8QhxaypFYkrRxHa0ASOI5Re2lXRbN9rGK77jX7K0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/DS/DSOLSc6A5RVSmvM415eEWAWG_AgOvZcLZOXQjsXyWQA.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Dh/DhrpoAlYO43_xJT7cR7N5n3Gxc9T9lAEkJkux4ufwrc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/DO9Ss2TWmmIJ98nseuLX1kY8yXnC3rfw7qPbjcIiyIg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/Do83AoOat5W-c1g7piDGy2GMmffsY6JY0Qfuh5PY3GM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/GP/GPU7T8ibZQ9TVUeUKytpkmqoMwPEDhozvdIulY_ghQc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Hm/HmZiOch1q-Y-bWc2Bg4CkHs0WouAlAVwELLnUki2URU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/M6/M64-PqNj7ipUe_WWRewKavcFikbdVLpvtbkzo5KfCtg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/NX/NXtwZOKZ7yMMJA2FnKYowCStq4BXaQgukCAycF23R4Q.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0 → v4.0.0}/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/SG/SGLQX80_DB28A_mjz_Eh9ZQxVU85Dz1YSRz0Xf3T6qE.cache → v4.0.0/Pu/Puw-QRmCoV436fSHMZZyBpIn_ZTQoicwVTISlz3vQoQ.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Rw/RwX76wVv_k976ST-OhQyd6E8Fgi2kfLW6yDFSdnCKA0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/SR/SRlBuVekx5voijkM7Pur-7CEeD9aOoItZYTK7KkxrPc.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/-H/-HJqDF0cY1IQQf6G35SzwnWhdJwbb0rjsilAS1uSnC0.cache → v4.0.0/TG/TGTts-z_YI7jHUT1N8DOBGdHJLrIKmH_X-sgt638nU4.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/XX/XXb_KYmRcMmdP6iwA-m5TK3mNwd-sAWuIDU2BwYh8ys.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/br/brSVWTme0G1yzUMjrDpklxoQetdFLXdF8ZUkYXFX-sE.cache → v4.0.0/YB/YBDUr0r2s3vM4McoPLgA6pwj6jYXTvANXBCQr79bS3U.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Yu/YuxSXQJiI3M2WF3HcV2F-X-X6v0aqPZ87jaK3NIJpBQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/Pg/PgSSsdzJcNT1S4NDynUSIcj_YZXO_IKpcmyafopOamk.cache → v4.0.0/aK/aKG1BE9i1nkV7pxwlTB5hccxO_vqSnmj2oxeB-VW1zY.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bB/bBXVQV2jOiSWOwtiOr55XUT7RCVlSA-htXqhCHd166k.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bv/bvWA2msm_wKe-upUjI2eMf_Eqi7QlqXZ6M0_TsXEn4E.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/cV/cV6tr7nK4y6dNjxzPIKLUszmCcCbY6g48N5ypr-cf78.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/7J/7JXLU3kClrFYffhxcnNaLGjYz8LFI700NBjNiBOifaU.cache → v4.0.0/cq/cqYKlDsPOsR-Hutsi1Ia2tXUuzOfzbVLP4i9Aonwckk.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/dp/dpSU2IktVAqqMTj5iCA6Xg9aVjhNwuhNX987AAPo4Ss.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/1e/1eeMDHdcXM5QG6315g0Uj656M_FVD0teimYul97xBzQ.cache → v4.0.0/ec/ecGOPxDOC-PTR8Q87Zu7XU3BS3ueVqHZihjkgAL1GSI.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/gC/gCdMfTV-UrcBy2q1SovEwzaag5CwB0k_eFIstyv4gLk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/gZ/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/hF/hFSTd38enn2Za93gw3GzWrAZwHeNX0pUJPH7EiRpNn4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0 → v4.0.0}/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/iU/iU7cx0nTwBBaaOT_qzXbI8RiIXouPchtWuIlVcsWWks.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/ys/ysosYWYA283HXmg_f6HoIzLi86SIIm3aVUwWF7tZJHY.cache → v4.0.0/iZ/iZ8YcXqVbBIniScbBCou8v1FocbWLbrgDzpQ5UnVuZI.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ig/igCHoAZu1ESqunQb96qV2Dmbt41uWhdJs8ztO5kRXi8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/jq/jqO64m7tXOlADW5o1Sy9C08R_i48GO1Wo0w0mUE4UPg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ko/koq-iWAlxiTFpALhUJsXNVGhxy7qAKZP69zJ8E9YdFY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ml/mlO31cacExw_jelM3vRJ3uZSMqsk-50vvXucoON-bkI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0 → v4.0.0}/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ph/phUbOaP6NCn983I6TT7qDlnwcmCAKjJVyDnDfKfjrI0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/pv/pv6tV3CDkIAmLXdU8EPLlNEkXAKJPufVD4VP30o4fWo.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/q2/q2rsSyCOy3kUHoKipvqxAw3Z_GfF7PufP5wKBV2EEbA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/qE/qEdbzlDf-HNnbh60QhpqpvwNeEnCU8tTrPEnZAV4NE8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/r-/r-16n5JdDzbIS_kN06fC4J_-GA2dpracXKYNHsLe3d4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/{v3.0/C_/C_C8IqUQirTZx1bt5Ewm3QJvhVbwm66pxvcH0maphFY.cache → v4.0.0/sO/sOS4yyqF_bYEJm1CSvCyiFQcStv5XUNBttwTmekhjv0.cache} +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/t3/t3tLjCcLizdoIbYBzZawbDaaD_niNTCxTyMWCAGVBso.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/vW/vWfhzaoyrvEUgX0vnRufnld1buC_KEfVE_Y9GxTlEFc.cache +2 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/vo/voyjfPaosDvduWR6jKwI00MuapmfnNxtssiU8OpJCn8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/wq/wq0Gkd5cDkoJX9cTbcFfa70O1tFJZOB-WBE1B6A1D0Q.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/x3/x3RXrNrKZMLOtSL6nQa-yFfgd0YP5AaeoP_5isPNggc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/xD/xDCgzYS-NOKY4wQ98x3bpVUmBipKrajnbyKsfZeXyKE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/x_/x_m3GCJB04OFwZrek6vFjk1S_Qbkf1Kr5PAeGvTLUjE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/yw/ywwwCinw2TbO7jW-9-T0BKJdM4rcEDG7yxRiGJAuSqU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/z8/z86GAeZHuKvb4Z2ApdQizPKZkd9bJy3OH8zcwtNG5bQ.cache +1 -0
- data/test/superlogger_test.rb +30 -58
- metadata +150 -197
- data/test/dummy/log/development.log +0 -545
- data/test/dummy/log/test.log +0 -1732
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ch/Ch2bQFHkYziI9Erdkuj8uoPJyw0W2aA5prtYAqlccww.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cq/Cq4V3OyOOk4eTJXISTKVc4MbIHDmq4eu3lSNh85i78k.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSOLSc6A5RVSmvM415eEWAWG_AgOvZcLZOXQjsXyWQA.cache +0 -2
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/EC/EC4O6KSVM5bCKFeBl2j8bzAbnhklqssWQ-6XEqM_tC4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gy/Gyqn3Ja6WbUSqKnvWm9Xw7FIxFqJIPQ88IlgpguMo1s.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/H3/H3tvaQM-yTy-25oSLlfjToAa74LSJHBDUpji-8C-eLg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Iv/IvDM1j8-H1H6kEjVCsyIW8N2zla-aIp9q_OE9PVZtVw.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jj/JjqPODxMglZzjE6lolNyoEiFCULPe-AH8rndpgamPPk.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/K9/K9ZheMi0hi4DNLzmDMRnv9A_lOVz33kNImc16Now42o.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/LH/LHgjtAV8kdldaJ_dX0RCznzjmWYRuLdhU29fZCJ0VmU.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Nn/NnUCa7jNYx9HCmEB7E7WPWT00DwaM4IYICy1Ju1jjcs.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/O5/O5UdaBuHdxmEoYz3AFZsm3rh7MWtRFXwHOryps7b5tE.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ol/OlBX9JIv9SAOmK2t35x1SYDx1sxCXF0yvqpna3WMyH0.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yr/YrZ0OIHu42cExs1kqngMA6ShVDKhfGmhyW-E9haNo5Y.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZU/ZUokoeZcfmoTFE9YAHZRhTgceOUGJTDGH__SCqPfkqU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/_I/_IocgQl8XVm84HohovEBj-GxsSeBkOpqN-94yHgY-K8.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/bJ/bJVgCoQDvMv4iocjEuC3z3WqSeK7LXgxDJ-eXaHl0l4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_-O1DwVvDk3vPJ-GHDgGWR9Zth9CYblcXbBe6aiTf0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/cI/cIaWfk6Nq6ZAr0fhtHGTBtsRITI5n8IJFZbClZ2tExw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/f-/f-gxq-RYinlir2WGpHfXu4C3r6M4aidyokcd7ZnBOao.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/g3/g3x0V2jnf5A31QMz4xGeQMouu2eChQRpoe0BEWWESeY.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gV/gVVPZef0xfm7t9Jyesa7ZVdnpzMpw2QtOyYUoEXO7fk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gZ/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +0 -2
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gb/gbunrAFVOHPwl2npUgKv_C3f_qiJnZDd9zG5-h3jrpo.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gp/gpiWtnqpufka8lRtMznM6Ko0aWJrcH_j8cfZwdYmzNI.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hl/hlDmEHZNeRDjBO6WJNb8ftVgfvCQubblXCEJw_MO3ow.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/i7/i7v4b6OSQUj-1r9vUWRiOHjAVksSTpUfilZTpk0ACLc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/kz/kzdSvu57G4i6eTuarsZCAfbhbICnkRa0Xhi0b9ua6qk.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/mv/mvqN6PphkrOOC8zbUEhpC_9E_4ybdO25MRy_gG6dq3Y.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/nm/nmcUZlKAIwyJ_35Nm9P8pukLeRX5aApP6NFj5MpNPgc.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/rC/rCO5-bHVJ6Y_GsPBmOPUL23pfjvc2Gw2zt_ODmZsygw.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/rg/rghMLGUpm1Uy3OPgfILHnVwLCycV9Rd9kSpEbxdwVV4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/vm/vm9zMjZUFULeJsYWRoDd3cvnEpLGK-E5XTk30_NQTEs.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/wD/wDDl7jzOUTDgFcG1JlpN6jVHavfzB8Smsjtl3d8WDx0.cache +0 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/xd/xdBKQyhEAlDIstGvXw945PWJoEWi23rKuY7elOcWqHc.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/-Z_pj4kfRj993e_ypawYQUIDIDKcRe569udVq_1drFs.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/2G0Z7Q5fvf2xX8ygtwcD9vZq-kwEzoV2MFc1URegs7s.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/66bWF3byFzdKpXZsrn5Vy9CJBaDlkJKkoyqeLRRbBZY.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/9NtfUddiu2UU8sqL-bYq-NPAx8NGp5m5AYiAWAcKQQ4.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/DSOLSc6A5RVSmvM415eEWAWG_AgOvZcLZOXQjsXyWQA.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/GELqHyWyVR_UvkpZPDb5xjZrCgkKB5G067DYoMwTjEA.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/Gyqn3Ja6WbUSqKnvWm9Xw7FIxFqJIPQ88IlgpguMo1s.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/H5fHMceViwaxMKkefsdMmVpBN3rRYZI1obJX5Jn-4jw.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/IEJfj4Zwfra6y7iF-BOVR9PPIQeL9L5IiZT8MRqpCXg.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/IordxSS9mOh1mkt2VyfX7Iz4DhZhy73lccOYxcw5aVU.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/KgQHhqXCaYHJSJEG6JweQVe1a2rC-mHfkrqD9p9taTU.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/Ki_R5uSCGEm1Jn7TSbJOc3eBMn4Q3_IPLG0r_RRn9lA.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/NBBjlBjfPdkZkp4G7VCEA9LAeGycMn10CxLbDAbNeHc.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/V9m2At1eKJAvbGAFvFTUt8hcdNI-G8xW1AShyPYS4Ys.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/XsDQ8X8Klh__7HZNZk8sjYzyFg5TmATqo-_UraArzN8.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/ZtbyFLml01tdqcRh4Ocz6XOkbPpmHM6nFRRYY4Nphpc.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/_ZNMI9IrCfXNcrwiRGttWiFPcLlCSpkdJSFoLhmUpyg.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/brSVWTme0G1yzUMjrDpklxoQetdFLXdF8ZUkYXFX-sE.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/jqyQL40gGhkqnPg3IttXbq8JGHLONBjR0MlrN9HeIvU.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/kqQAJDpBuiNJ3XEy8VjtVcyUB9BVlP02oDMdVnlL04w.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/pnW3u_1AN48ig6ngefI89y96xoSlvnJurx-e3J-leoE.cache +0 -2
- data/test/dummy/tmp/cache/sprockets/v3.0/q9kUTJTzJpwJJQ8CoWPFc_eCW76RZgB-R2sc4P84y6c.cache +0 -0
- data/test/dummy/tmp/cache/sprockets/v3.0/qFlPbNZ3UJs9EnENWVEbNWnrTEcjZkAQUzH55y3Ymi0.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/r86oWGkKGjcta2GtxqeESX1w_4FX1c_DWHxPWVKP28A.cache +0 -1
- data/test/dummy/tmp/cache/sprockets/v3.0/ssS2x0Wl67rwXHaVHsh6CO7ayn9fQ5saIwATKN6O-nI.cache +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 6c620e677e4aebf4aea5cab58f2a6e392c5266016eaf32aef3a9a88f96c402fd
|
|
4
|
+
data.tar.gz: 59fd2728e8398194e9188f212d7dc3f1155f1c2f101d0916747fbcbd52d1c23c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fd1ab3fe21cd6759e6732746fd6e206a71816f9926559098a0815d6940aa058568c9f5204b48dd643fe74b1639ddbe938dc11f9817ce5485058ade00207b451d
|
|
7
|
+
data.tar.gz: b55db9a3bccd0ce12fb20666b40f85d73c43b873ff9c9dab7cc776b3cd4667a7939202a18ab41212f9c33c31f9b5bebfde84a994b2126bf0a58ba8d13528fb5c
|
data/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Superlogger - Machine-readable logging for Rails
|
|
6
6
|
=======
|
|
7
7
|
|
|
8
|
-
Rails' default request logging is easy to read for humans but difficult for log aggregators such as Kibana, Graylog and Splunk. Superlogger transforms the logs into
|
|
8
|
+
Rails' default request logging is easy to read for humans but difficult for log aggregators such as Kibana, Graylog and Splunk. Superlogger transforms the logs into JSON for easy parsing and adds useful details like Timestamp, Session ID and Request ID for tracing purposes.
|
|
9
9
|
|
|
10
10
|
Default rails logging:
|
|
11
11
|
```sh
|
|
@@ -23,34 +23,18 @@ Started GET "/assets/application.self-8f06a73c35179188914ab50e057157639fce1401c1
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
With Superlogger:
|
|
27
27
|
```sh
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# second request
|
|
38
|
-
2016-04-29 17:39:54.879 | 12dc0e484869 | e463d380fb63 | I | superlogger_middleware:30 | method=GET | path=/home/show | ip=::1
|
|
39
|
-
2016-04-29 17:39:54.879 | 12dc0e484869 | e463d380fb63 | D | action_controller_log_subscriber:9 | controller=HomeController | action=show | params={}
|
|
40
|
-
2016-04-29 17:39:54.882 | 12dc0e484869 | e463d380fb63 | D | action_view_log_subscriber:6 | view=show.html.erb | duration=0.2
|
|
41
|
-
2016-04-29 17:39:54.884 | 12dc0e484869 | e463d380fb63 | I | action_controller_log_subscriber:29 | status=200 | total_duration=4.64 | view_duration=4.55 | db_duration=0.0
|
|
42
|
-
2016-04-29 17:39:54.884 | 12dc0e484869 | e463d380fb63 | I | superlogger_middleware:30 | method=GET | path=/home/index | total_duration=4.64
|
|
28
|
+
{"level":"debug","ts":1590972589.522784,"caller":"superlogger/active_record_log_subscriber:21","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC","params":[],"duration":0.13}
|
|
29
|
+
{"level":"info","ts":1590972589.526133,"caller":"superlogger/superlogger_middleware:21","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","method":"GET","path":"/home/index"}
|
|
30
|
+
{"level":"debug","ts":1590972589.546272,"caller":"superlogger/action_controller_log_subscriber:8","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","controller":"HomeController","action":"index","params":{}}
|
|
31
|
+
{"level":"debug","ts":1590972589.55092,"caller":"superlogger/active_record_log_subscriber:21","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","sql":"SELECT \"somethings\".* FROM \"somethings\" WHERE \"somethings\".\"paper\" = ? AND \"somethings\".\"stone\" = ? ORDER BY \"somethings\".\"id\" ASC LIMIT ?","params":["123","456","1"],"duration":0.22}
|
|
32
|
+
{"level":"debug","ts":1590972589.574199,"caller":"superlogger/action_view_log_subscriber:6","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","view":"_partial.html.erb","duration":0.33}
|
|
33
|
+
{"level":"debug","ts":1590972589.574795,"caller":"superlogger/action_view_log_subscriber:6","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","view":"index.html.erb","duration":2.95}
|
|
34
|
+
{"level":"info","ts":1590972589.61165,"caller":"superlogger/action_controller_log_subscriber:20","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","view_duration":54.59,"db_duration":0.85}
|
|
35
|
+
{"level":"info","ts":1590972589.611928,"caller":"superlogger/superlogger_middleware:30","session_id":"90e90c75c72c","request_id":"34432478c89b4d8591e02e0169b40a56","method":"GET","path":"/home/index","response_time":85.65,"status":200}
|
|
43
36
|
```
|
|
44
37
|
|
|
45
|
-
## Features ##
|
|
46
|
-
- Timestamp (milliseconds)
|
|
47
|
-
- Session ID for logs belonging to the same user session (notice above that both the requests have the same session id)
|
|
48
|
-
- Request ID for logs belonging to the same page request (notice above that each request have a different request id)
|
|
49
|
-
- Hashes will be logged as key-value pairs automatically
|
|
50
|
-
- Requests for assets will not be logged
|
|
51
|
-
- File and line numbers
|
|
52
|
-
- IP address of request
|
|
53
|
-
|
|
54
38
|
## Installation ##
|
|
55
39
|
|
|
56
40
|
Add superlogger to your application's Gemfile
|
|
@@ -63,37 +47,28 @@ Execute:
|
|
|
63
47
|
$ bundle
|
|
64
48
|
```
|
|
65
49
|
|
|
66
|
-
And add the following in `config/
|
|
50
|
+
And add the following in `config/environment/production.rb`
|
|
67
51
|
```ruby
|
|
68
52
|
config.logger = Superlogger::Logger.new(STDOUT)
|
|
69
53
|
```
|
|
70
54
|
|
|
55
|
+
By default, Superlogger is only enabled in production environment because JSON is easy for machines to parse but difficult for humans to read. To forcefully enable Superlogger in non-production environment, set in `config/application.rb`:
|
|
56
|
+
```ruby
|
|
57
|
+
Superlogger.enabled = true
|
|
58
|
+
```
|
|
59
|
+
|
|
71
60
|
## Usage ##
|
|
72
61
|
|
|
73
62
|
Log as per normal using `Rails.logger`.
|
|
74
63
|
|
|
75
64
|
```ruby
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Rails.logger.debug foo:'true', bar: 'false'
|
|
79
|
-
Rails.logger.info foo:'true', bar: 'false'
|
|
80
|
-
Rails.logger.warn foo:'true', bar: 'false'
|
|
81
|
-
Rails.logger.error foo:'true', bar: 'false'
|
|
82
|
-
Rails.logger.fatal foo:'true', bar: 'false'
|
|
83
|
-
end
|
|
84
|
-
end
|
|
65
|
+
Rails.logger.info foo:'true', bar: 'false'
|
|
66
|
+
Rails.logger.info "Meatball"
|
|
85
67
|
```
|
|
86
68
|
|
|
87
69
|
## Log Format ##
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
### Severity Levels ###
|
|
95
|
-
- **D** - Debug
|
|
96
|
-
- **I** - Info
|
|
97
|
-
- **W** - Warn
|
|
98
|
-
- **E** - Error
|
|
99
|
-
- **F** - Fatal
|
|
70
|
+
- `ts` = Unix Epoch timestamp
|
|
71
|
+
- `session_id` = Truncated to 12 characters
|
|
72
|
+
- `request_id` = 32 characters
|
|
73
|
+
- `msg` = If values given is not a hash, it is treated as `{"msg":<value>"}`
|
|
74
|
+
- All duration related fields are in milliseconds
|
data/lib/superlogger.rb
CHANGED
|
@@ -2,9 +2,13 @@ require 'superlogger/version'
|
|
|
2
2
|
require 'superlogger/logger'
|
|
3
3
|
|
|
4
4
|
module Superlogger
|
|
5
|
+
@@enabled = false
|
|
6
|
+
|
|
5
7
|
module_function
|
|
6
8
|
|
|
7
9
|
def setup(app)
|
|
10
|
+
return unless (Rails.env.production? || enabled)
|
|
11
|
+
|
|
8
12
|
insert_superlogger_middleware(app)
|
|
9
13
|
detach_existing_log_subscribers
|
|
10
14
|
attach_superlogger_log_subscribers
|
|
@@ -24,7 +28,7 @@ module Superlogger
|
|
|
24
28
|
require 'action_view/log_subscriber'
|
|
25
29
|
|
|
26
30
|
# remove log subscribers
|
|
27
|
-
|
|
31
|
+
remove_patterns = %w(sql.active_record
|
|
28
32
|
start_processing.action_controller
|
|
29
33
|
process_action.action_controller
|
|
30
34
|
render_template.action_view
|
|
@@ -32,8 +36,11 @@ module Superlogger
|
|
|
32
36
|
render_collection.action_view)
|
|
33
37
|
|
|
34
38
|
ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
|
|
35
|
-
subscriber.patterns
|
|
36
|
-
|
|
39
|
+
patterns = subscriber.patterns
|
|
40
|
+
patterns = patterns.is_a?(Hash) ? patterns.keys : patterns
|
|
41
|
+
|
|
42
|
+
patterns.each do |pattern|
|
|
43
|
+
ActiveSupport::Notifications.unsubscribe pattern if remove_patterns.include?(pattern)
|
|
37
44
|
end
|
|
38
45
|
end
|
|
39
46
|
end
|
|
@@ -49,7 +56,7 @@ module Superlogger
|
|
|
49
56
|
end
|
|
50
57
|
|
|
51
58
|
def session_id
|
|
52
|
-
RequestStore.store[:superlogger_session_id]
|
|
59
|
+
RequestStore.store[:superlogger_session_id]
|
|
53
60
|
end
|
|
54
61
|
|
|
55
62
|
def request_id=(request_id)
|
|
@@ -57,7 +64,15 @@ module Superlogger
|
|
|
57
64
|
end
|
|
58
65
|
|
|
59
66
|
def request_id
|
|
60
|
-
RequestStore.store[:superlogger_request_id]
|
|
67
|
+
RequestStore.store[:superlogger_request_id]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def enabled=(enabled)
|
|
71
|
+
@@enabled=enabled
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def enabled
|
|
75
|
+
@@enabled
|
|
61
76
|
end
|
|
62
77
|
end
|
|
63
78
|
|
|
@@ -5,27 +5,19 @@ module Superlogger
|
|
|
5
5
|
# start of controller action
|
|
6
6
|
def start_processing(event)
|
|
7
7
|
payload = event.payload
|
|
8
|
-
|
|
9
|
-
logger.debug controller: payload[:controller], action: payload[:action], params: payload[:params].except(*INTERNAL_PARAMS)
|
|
8
|
+
logger.debug {{ controller: payload[:controller], action: payload[:action], params: payload[:params].except(*INTERNAL_PARAMS) }}
|
|
10
9
|
end
|
|
11
10
|
|
|
12
11
|
# end of controller action
|
|
13
12
|
def process_action(event)
|
|
14
13
|
payload = event.payload
|
|
15
|
-
total_duration = event.duration.to_f.round(2)
|
|
16
14
|
view_duration = payload[:view_runtime].to_f.round(2) if payload.key?(:view_runtime)
|
|
17
15
|
db_duration = payload[:db_runtime].to_f.round(2) if payload.key?(:db_runtime)
|
|
18
16
|
|
|
19
17
|
if payload[:exception]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
logger.fatal status: status, total_duration: total_duration, view_duration: view_duration, db_duration: db_duration, exception: payload[:exception]
|
|
18
|
+
logger.fatal view_duration: view_duration, db_duration: db_duration, exception: payload[:exception]
|
|
23
19
|
else
|
|
24
|
-
|
|
25
|
-
# https://github.com/pcg79/devise/commit/1e2dab3c0ce49efe2b5940c15f47388c69d6731b
|
|
26
|
-
payload[:status] ||= 401
|
|
27
|
-
|
|
28
|
-
logger.info status: payload[:status], total_duration: total_duration, view_duration: view_duration, db_duration: db_duration
|
|
20
|
+
logger.info view_duration: view_duration, db_duration: db_duration
|
|
29
21
|
end
|
|
30
22
|
end
|
|
31
23
|
end
|
|
@@ -3,7 +3,7 @@ module Superlogger
|
|
|
3
3
|
def render_template(event)
|
|
4
4
|
payload = event.payload
|
|
5
5
|
|
|
6
|
-
logger.debug view: payload[:identifier].split('/').last, duration: event.duration.round(
|
|
6
|
+
logger.debug {{ view: payload[:identifier].split('/').last, duration: event.duration.round(2) }}
|
|
7
7
|
end
|
|
8
8
|
alias :render_partial :render_template
|
|
9
9
|
alias :render_collection :render_template
|
|
@@ -18,10 +18,12 @@ module Superlogger
|
|
|
18
18
|
payload = event.payload
|
|
19
19
|
return if IGNORE_PAYLOAD_NAMES.include?(payload[:name])
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
logger.debug do
|
|
22
|
+
sql = payload[:sql]
|
|
23
|
+
params = payload[:binds].map { |b| b.value.to_s }
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
{ sql: sql, params: params, duration: event.duration.round(2) }
|
|
26
|
+
end
|
|
25
27
|
end
|
|
26
28
|
end
|
|
27
29
|
end
|
data/lib/superlogger/logger.rb
CHANGED
|
@@ -2,26 +2,25 @@ require 'request_store'
|
|
|
2
2
|
|
|
3
3
|
module Superlogger
|
|
4
4
|
class Logger < ActiveSupport::Logger
|
|
5
|
-
def initialize(*args)
|
|
6
|
-
super
|
|
7
|
-
@formatter = SimpleFormatter.new
|
|
8
|
-
end
|
|
9
|
-
|
|
10
5
|
def format_message(severity, time, _progname, msg)
|
|
11
6
|
return nil if msg.blank? # Silence nil and empty msg
|
|
12
7
|
return nil if is_rails_rack_logger_msg?(msg) # Silence rack logger msg
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
msg = {msg: msg} unless msg.is_a?(Hash)
|
|
10
|
+
|
|
11
|
+
h = {}
|
|
12
|
+
h[:level] = severity.downcase
|
|
13
|
+
h[:ts] = time.to_f
|
|
14
|
+
h[:caller] = get_caller_location
|
|
15
|
+
h[:session_id] = Superlogger.session_id[0..11] unless Superlogger.session_id.nil?
|
|
16
|
+
h[:request_id] = Superlogger.request_id unless Superlogger.request_id.nil?
|
|
17
|
+
h.merge!(msg)
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
h.to_json + "\n"
|
|
22
20
|
end
|
|
23
21
|
|
|
24
22
|
def is_rails_rack_logger_msg?(msg)
|
|
23
|
+
return false unless msg.is_a?(String)
|
|
25
24
|
msg =~ /Started (GET|POST|PUT|PATCH|DELETE)/
|
|
26
25
|
end
|
|
27
26
|
|
|
@@ -30,25 +29,12 @@ module Superlogger
|
|
|
30
29
|
location = caller_locations(index, 1).first
|
|
31
30
|
|
|
32
31
|
# Extract filename without file extension from location.path
|
|
33
|
-
# eg. superlogger/lib/superlogger/logger.rb
|
|
34
|
-
file = location.path.split('/').last.split('.').first
|
|
32
|
+
# eg. superlogger/lib/superlogger/logger.rb => superlogger/logger
|
|
33
|
+
file = location.path.split('/').last(2).join('/').split('.').first
|
|
35
34
|
|
|
36
35
|
"#{file}:#{location.lineno}"
|
|
37
36
|
end
|
|
38
37
|
|
|
39
|
-
def format_args(args)
|
|
40
|
-
output = if args.is_a?(Hash)
|
|
41
|
-
# Format args in key=value pair, separated by pipes
|
|
42
|
-
args.map do |key, value|
|
|
43
|
-
"#{key}=#{value}"
|
|
44
|
-
end.join(' | ')
|
|
45
|
-
else
|
|
46
|
-
args.to_s
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
output.gsub("\n", '\\n') # Escape newlines
|
|
50
|
-
end
|
|
51
|
-
|
|
52
38
|
# To silence double logging when running `rails server` in development mode
|
|
53
39
|
# See: https://github.com/rails/rails/commit/3d10d9d6c3b831fe9632c43a0ffec46104f912a7
|
|
54
40
|
if Rails.env.development?
|
|
@@ -6,7 +6,7 @@ module Superlogger
|
|
|
6
6
|
|
|
7
7
|
def call(env)
|
|
8
8
|
request = ActionDispatch::Request.new(env)
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
if request.path.start_with?('/assets/') == false
|
|
11
11
|
process_request(request) { @app.call(env) }
|
|
12
12
|
else
|
|
@@ -18,18 +18,18 @@ module Superlogger
|
|
|
18
18
|
setup_logging(request)
|
|
19
19
|
|
|
20
20
|
# Start of request
|
|
21
|
-
Rails.logger.info method: request.method, path: request.fullpath
|
|
21
|
+
Rails.logger.info method: request.method, path: request.fullpath
|
|
22
22
|
|
|
23
23
|
t1 = Time.now
|
|
24
|
-
|
|
24
|
+
status, _headers, _response = yield
|
|
25
25
|
ensure
|
|
26
26
|
t2 = Time.now
|
|
27
27
|
|
|
28
28
|
# End of request
|
|
29
29
|
duration = ((t2 - t1) * 1000).to_f.round(2)
|
|
30
|
-
Rails.logger.info method: request.method, path: request.fullpath,
|
|
30
|
+
Rails.logger.info method: request.method, path: request.fullpath, response_time: duration, status: status
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
[status, _headers, _response]
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def setup_logging(request)
|
|
@@ -38,7 +38,7 @@ module Superlogger
|
|
|
38
38
|
request.env['rack.session'].send(:load!) unless request.env['rack.session'].id
|
|
39
39
|
|
|
40
40
|
# Store session id before any actual logging is done
|
|
41
|
-
Superlogger.session_id = request.env['rack.session'].id
|
|
41
|
+
Superlogger.session_id = request.env['rack.session'].id.to_s
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
Superlogger.request_id = request.uuid.try(:gsub, '-', '')
|
data/lib/superlogger/version.rb
CHANGED
|
@@ -19,8 +19,9 @@ module Dummy
|
|
|
19
19
|
# config.i18n.default_locale = :de
|
|
20
20
|
|
|
21
21
|
# Do not swallow errors in after_commit/after_rollback callbacks.
|
|
22
|
-
config.active_record.raise_in_transactional_callbacks = true
|
|
23
|
-
|
|
22
|
+
# config.active_record.raise_in_transactional_callbacks = true
|
|
23
|
+
|
|
24
|
+
Superlogger.enabled = true
|
|
24
25
|
config.logger = Superlogger::Logger.new(STDOUT)
|
|
25
26
|
end
|
|
26
27
|
end
|
|
Binary file
|
data/test/dummy/db/test.sqlite3
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=35457672c92c6af73d636e236ae1cd10aac4e534c8a82e7e64baa244865ef751:ET
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=26fe8f914a37edbad87b42be24a2d404d35668a8dce9e4763f34d075fcac8b15:ET
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
[o:Set:
|
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=application/css-sourcemap+json&id=245e7a94c06b1f881c5352975228cd489f0a91feefc65246ff95e65b6b39867c:ET
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=debug&id=4df50b1c4e9a53c8d22402cd979528a45dbbaa3ccf84d6ddbce8b222068b566f:ET
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"%��B�����șo�$'�A�d��L���xR�U
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/config/manifest.js?type=application/javascript&pipeline=self&id=ce2a932dae95687b3860d16aae7a59f67f91ac4bd4205a0dc22ddcbc3385c573:ET
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=debug&id=3484c58768769ddd7f077d1c5fd178d80a41dd50fd8e836ed5e8085e034c5fea:ET
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=6687bbf9d7433b294f04a3aad09b1d97293ef96e2ac308e499147fbb9172a981:ET
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=bb5330ed19289447fa41dc76755a74a1e500aed3921dc0b2894d7dda444a3f89:ET
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=c9bb4c7d24a3bd793a4481061e9093005bab65f9a254f4f6385abbd3014ca25b:ET
|