pointless_feedback 3.0.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +21 -11
- data/app/controllers/pointless_feedback/messages_controller.rb +10 -8
- data/app/models/pointless_feedback/message.rb +9 -4
- data/app/views/pointless_feedback/messages/new.html.erb +0 -10
- data/lib/generators/templates/pointless_feedback.rb +4 -6
- data/lib/pointless_feedback.rb +5 -12
- data/lib/pointless_feedback/controllers/helpers.rb +1 -1
- data/lib/pointless_feedback/version.rb +1 -1
- data/test/dummy/app/controllers/application_controller.rb +3 -1
- data/test/dummy/config/application.rb +0 -36
- data/test/dummy/config/boot.rb +4 -9
- data/test/dummy/config/environment.rb +3 -3
- data/test/dummy/config/environments/development.rb +12 -20
- data/test/dummy/config/environments/production.rb +41 -28
- data/test/dummy/config/environments/test.rb +15 -14
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +7 -6
- data/test/dummy/config/initializers/secret_token.rb +7 -2
- data/test/dummy/config/initializers/session_store.rb +0 -5
- data/test/dummy/config/initializers/wrap_parameters.rb +6 -6
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +5 -5
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +4 -198
- data/test/dummy/log/test.log +21894 -20989
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0bJfAx65O1n70YN37G4XyXwEfG7OTlKhAnwAWtOU0Hk.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0lN0G1IC4JG1tZX92bUferJsSrGn0PCNy8wS7EHOs0k.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/36PoiZnAzLmuv3-Cl1ravIdJa51pjvbFsRwFj1ogx0Q.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3VR1ziKpG9SaWTWRPp8VPL8hoSWD4OgDpBj50kALl3s.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/59E4H59o_0IOqcgolXGb2Qv7_1tphdmlTI6BM9AlIVA.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6RnsI5eiwJQnzHtj8WptkeurVeJxYVhl8l7YRBtKpug.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6vArjIrs23uxQe5-Xekn0HIi-RusuA7N1i1obWwNHyA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/79OeaG18HuJKeXEC8gkan8NdT-MWFWZr-GG7O5CRL4A.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7JSyYC82UthVKnhQpetfJTnJpZ-p2I9FrAgOa277Ssk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7UhyXzW8lNWmBDHyH4YrROmfHqKydVcUfGlw7qcs3g8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7rxOpSCaVphMm8pS08OORkMq6vVY6p3HDMdraote5mw.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7vB6KIhxVY1Q6SGDcIB9j4Oy-ZjxjZ46Sx8FQfFW6Ew.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8DhAWWNJfOR5dJ1EAkF80f-LHE_cfdWDF5SWpHHNOXs.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8PjtVRdSvTm8L6YRWIRysOQayhQl8iuXr50T5FiJHG8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{v3AmkvXX9VMdfZyyd-z8ithE5Owk2ZJlVAkIhe17tMg.cache → 8QbjQLD3NWrhGa9CprZvTcu7A650_zcQO99A8b7y49s.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8S15H2CY0MwUJSYdugfWpJFa38_VVu7JWCJ8K0mTzXM.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{eOjZbG5UBr6JsOjkWATgOPLmaW2ia3l4C6kktfm3Z34.cache → AayxZvUedztKa2WzidbmF88ihFKm3oq3VRdIHr2XErM.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Amf_J841iZFXMs7iMNDwLZ4GpCjXTbLZr9Fuk89qI60.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BadOmKj1n2V43TWibFBo8pCdjpTtLFyiIEak2SRv2P4.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BdNUEZz5A14yfBSBiXXVSZaUiNFpNiB_yzCZBpl32rw.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BmBgwtTCy4XPa_sVmeSC2fxLUlQhf0uB3_wMOf79d74.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BzhewyVQURDTOaCPk8sobfWEGc4N78cW-zOKUAp99qY.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CeDZvxIzAmUg2jucghrzsqxZPM5VrmNRxQwF4hlMUFI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Cp6zolENjK0V452tZ-ekX_VhTePH5uQT8xDuQUtOeIk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EIzBaqc5q0SvFaYTW82FZQfw-Eh6Ca7kbGjKjpNvV-I.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EKzNVc3oFRaMZW7_POnXYKUF_SSp-rmsJiN6vpp6ewg.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FC7z7F8du0X6hJmx-zZF3PIdW81G8WRtC06OePxs6N4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FJlzNUhH1rCszf4-nTD02S-HHtgBv-sNyB-7XBptMbc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{F0CqWUXpkNoR0LOSbc17rrxtgLyikx41k2wULzYSgqA.cache → FKYgD1VJevVJQRLOY6Pbx5u9i1dKjiIMbS86-vpuCUA.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GUcOeSBQIxq8KeRka_YBmDzFqsj7n_f_lRQJFtlSNFI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GyPRbV2C_DxK22ZczwGxHfgpooxCgWgb6DXRDE2sfFI.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{Y_qvcRVseI-9a23RY-PoyK9mNy5OMrVwNsuYSK17Kyo.cache → Gy_v1YrF-y4zhlJCM9kf6luPV82VwZCO5kHf09Xfb3w.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HD355pxJ7x-SchpoANQ9MOaOgJ7ogqZzooLySz8CG3M.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HOpHhAtrMUHqret33J8wQMj3owR8o0rMeHzPMmw_sSM.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ImoWMWySAqqzwxirgi32vlIsNvFajKQ5dkD1riluvp8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/In8BhevXtT_6T15WB0QyYf63GIb5qhYuyJJuAiYiF_8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/K8OrovsBLo91Ar3BuGaaY5cF_VaIhIFgnQLSwFQbPT8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KIt01gf8_ZSjCX4pEBkXoj5XaspnVSzFlM-3hWQO_W0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N3EOZuHarkrcSbHkhEciXwOibr0vky3DGnU5pqaWj2M.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NzQEhPXWPjieK_7hKdCSNjA_KWnPLv-GkFyxAqc9y5E.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/OZz86IlAXSQduTAf_VbKigJTnvZX8MfYRIp8MG5dIC4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/P37_Pex2W08pmf-3DZNghtBJfIztFMIkfYdVU2Ni-PU.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PHh6ZHgHoZ13W-D2_2WMRIS8LsplHcshAdxjbQOWZW4.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Pb7GApIVDM5PAGxzMghbTZZnEW_6D6-z4MMcrc9sNCU.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PbAK4NKIjIkQLs3njY7xlqzg0zhucTHraKqADUsj2MU.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RTV_Ej7XH4yxmrXYI1kD5PkaFC-vKadcHkZGKRs6soo.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YRX10BPBviky8-zpd0YxW1Kr7tD4R-TsDoK9x-hpr4o.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Yds0Q4njEYCJPglGOItrALygHX9-2INySQMiKf38pDo.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Yj4OEnkBcyiJn6os-kc27vkRMIIN9waB1T2qxAyhLM0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YzTMJmUfNHZUj05gCAZvnsGqOZpGM-nESn1e6kspETM.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZC9uWTTU2K9tNxJ5woE6hJppt8I2_Mlw3Z4E57A8BXE.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZUz0MRrbsVWlyzQTYkevS_jAu_gLPMQ11tFDNSWnTGU.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Zpmnwqg8KX6eH9u8pf05Km5Um4J6E93A5YQFrchf-fs.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_HgAXGb0U6h4l5arL43wvO0RIUDL8qxElRM0uqbFoDY.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/__RMj2hD1nyubOQplQfhJV2s9avVwcxd7O_WzTg2efo.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_lMMYi31fbcYhrfxp-EesWlgEyHOdO7m8PO_h1Ww2gI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/auh7pOIYTzyILPJAMgivE8k9iddsLeS3N2aNRXiyJKk.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/b8Dca_cNXkt5Ra5D3VnqQNFifz1YK-UYe9YfIFudQzE.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bRMcv3F6Ka3UZ3Ct-nuzGeC8m3IjYKXnNfHcfl3Jdds.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cEck-31IHcywfoTCCGRyWn80qX9zPcwqA_2QeJ_-gUs.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cQRkneYvhccFjETKdPwL5R5ypWS0Ewd84VxLUALPLQ8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/d-hDHIrf8ZZgSVxXMNtGAE-M8lFn_YKc4z0u68nSv-s.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dJx7yO4LDj928h6wDGCTzWefiBBz_svex5TJXicLfQA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dSMoW8QFOtWbh6xgSZniv0oi13MVrtPf6to1F-6ZMNU.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dcj-0Vmu5j6tY3xlj51FmE-vXrSTLKaDsJ-B2zmmwd8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dlAG1_Bc3GjU-UyNR3c7ZUrmyqnlDzBV8LQ0qNmHNyc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gNQyo6diGckfOs0d4JnnFNoBNgF2_LschS90jyv7_7g.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/g_xrOAVbI58RFCyW9BbbJK28S-D6sBhdoVQdT6xuBrs.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gspVh-Z__olxWPKi7cx0vvHp8un2KE_KkZFvupOEmy4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gw41KnJq2j5YXe4K9LWgT1bBN2zMSh0OVX47Y-lKoZE.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h-TWaKzpZPr4Wkl3Z_XxLYvqL_8aI398g2UPQhS-ePQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hFHQ0c4oRsDPsAsWeBYobVzYfLcLBKdN36OkdUq9qcU.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hKqsSn5NEcQ8mp5dDISKXSfV73M6M3UnI1qSkQ5nUQM.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iMya65ONOZTEjleYSHwIwFy0C59F7fgxgAKQCboE6FY.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{v8bGpj5Kint_mcnIuXRm1px694Vesh1s1NLt98QAveo.cache → ifuxrPUgaAYRNi85XwxK2zdBmeGTiufDeHrqrZ98PC8.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/j729ObFa4rntb7eQ5JGEm1miN1z6SWupubSE3qLc5GA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jpt8MJPLpANFBcb5oZNICKY0tYIBz4e2nmVQ08m0s94.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kCRGoTUD3LCfxksieZ8l6qzdLhoofSnD14PAJwayk0w.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lUIqYH18X5lrhS-0qBbrGPQedlMtKHW6Hcc1IVZai5k.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/m_phoSLjnLZ20JEjbZUNjm_VPKa7VwWBjM8At8f3AGc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/moX58rBNilX8VksIC-4KSAfZPYt_oni9cfrh7cMGyu0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{vUKodLdMsNuvGuB196sDA0ZfGc7CeyhqNuL4gk45osk.cache → muHhKCc76IMwsHZZbx6nlZLPlRXSRyUIiyh2CAnTpuQ.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n5eR5czOsl06WzZFVpadxz7HGY4gTewf6wwAlvrO2to.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n7zORuZMn8EVHXFANNqdljwF1U452-MQp79ptOF6BR0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nNS0E1mrey9qQJhek6Siqc24ljh-F-ElB_q2s74LKY4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/niRD4iV7bKiSsAAmhgWWZkNTtBFZ2AtKXKPgUFsEJyE.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/noI-fO_ZZFMdw4yJHxHU2wl8Vm3e_8aqTI0Pk1sFhGU.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nroxs8BgkHWcG4grpQ_qUzJEj5Dc1z-PXjYW4tr6dyU.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oOFgIsaOU6cVeQ50J8gfCtWjsTBKuW2OoQB05i6r-c0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oSAASe3XpzWvdjb_p91h42m0NA5fyXVGTgYESG0dLw8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/piDQ6GLVJEvYzUMH_DSYinmPKqXNw3FB_Jf4Atg59so.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qA7zk9qyWCX8IjymwC_wo2D8ZH1RZc-F93yZmBYcuV8.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qSavMuuZDT6tja5faTH06vgjQnKqYaso6N8YfMXrDxI.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rAW6y-XpnjuNZUgHuKViMks7z6NuOH-e0SXimMyaGh8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rmBzbo1U0gbkJ8-1QvSlpgWm_KVhA82y0yy7xeIpMg8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/udMIuM-bc2cHelErundawsnppzECq5WjKh9PWLH8wd8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/{pvwl0IHI3tjE7sZSFAFABRVj0PJ1CVMhtHIZP5NvQSs.cache → v38ESOC6IjWOQgWLg9-XkWQecLZF8C9194zMUHG0Mu8.cache} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/v4VmjpHjrRXd5wUg-ilNDi1W5Tyzt7ECEVboJ7jEnCs.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vH0ynvObPIAWfCekeRnwd7Jd-JgJp8KPzFYB-vc6Xi4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xaTDDGj2DpIK9iYhO3GKp16NaQ7XxIUq1t_VKPcWX6Q.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xbu1hfRBbE_71sfBXXqN9-kyvbQP9m8jwH2uxl7UX8A.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/z9kPDmBo4Veil6VKwz-Dly9tG0yVjXHRsQ08b6pa_eY.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zu_BM0Xv8uAAExeZ5FwiKvId9BGv2fbngQ99867Xzbc.cache +0 -0
- data/test/functional/pointless_feedback/messages_controller_test.rb +6 -3
- data/test/tmp/config/initializers/pointless_feedback.rb +4 -6
- data/test/unit/pointless_feedback/message_test.rb +1 -1
- metadata +231 -112
- data/lib/pointless_feedback/captcha.rb +0 -36
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/AF0/sprockets%2F2b009905de1eb97e693a12d62f76c221 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D72/890/sprockets%2F6208de944cfe6b5b3c3c37c89d32f41a +0 -0
- data/test/dummy/tmp/cache/assets/DD9/830/sprockets%2Fc25e8f936dbc8c2b26c7c7b3d7ff6d13 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/E02/8C0/sprockets%2Fdcaacb4effc911c9573def4b74b82590 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2n_8czzUpfBbWmACOl-6k62Uv4TRJ4b8_-1T5nOdu4w.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7BoWr8OUj0Xs35Wko795lR6SiZgm7tfXaAZ37yA26W8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8wow3SlwChlZlBQ7es2DDQN5BcbB_ixilHFBB_HRlg0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/MhTtmm-8IR_RwYO5M7M_EIE62j-5TFKqN7brwbJ5PW4.cache +0 -2
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SH3Dn4RbDTP_KC-390CAFbG-H1stL9FHJH5ufAgk9so.cache +0 -1
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SKVSFDu-_sveWMkf3dEZ84rntaMhXsX3H2npPJWt7Lo.cache +0 -2
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/U7cU4H3gCAQ7AHhtfKpGNmR6nnSXg1UczlCqPYug1SU.cache +0 -2
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W-5IUH4ZNJiArfbB85Ibo0CwI-AbGe8p1S08msd-JsA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WQT4Fg_WVrkuTniWMBbOm_acTHAasEzlK9KKBMnHeo0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ae7N3SXHGvNl7qizFNQ3lDmuliB7AOc3lQHeIa0SnTw.cache +0 -2
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fzMvlCHrUWupCILKI3zWgKg847TS_ofWZ_LF1SKftts.cache +0 -1
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kWM1otfuMI_SAVFXCe-9XZdWAsvxYAHNwWxV7DQt1Z0.cache +0 -1
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lSwe2quDzA-6FsNKg4BFQ1xhHmRv--HbAZGx9ihVHyE.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mzGLzeYPI8wrZfE5RbBuJLolfb64eApgFUDTf-g6tLU.cache +0 -1
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nSM4ifmNdBct6VP8CA0IdNsWxtH7EZb5Iphs-oA03hY.cache +0 -3
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pPYm3XknilnD1WmL4BSML-c1hBmAjkkkapf7aqmY3-c.cache +0 -2
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qMoHrJl0aibucJEt0011OPpr6sXKr0sFHai3ljDd1RU.cache +0 -1
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wdjRpDa6XazR1CWhK7fcSO4Nb_Q0BT5bUuWSama4IiA.cache +0 -1
- data/test/dummy/tmp/capybara/capybara-201306030928415341101962.html +0 -48
- data/test/dummy/tmp/capybara/capybara-201306030937025132981181.html +0 -48
- data/test/dummy/tmp/capybara/capybara-201306030937083494523886.html +0 -48
- data/test/dummy/tmp/capybara/capybara-20130603093722783471600.html +0 -65
- data/test/dummy/tmp/capybara/capybara-20130603094056611257399.html +0 -241
- data/test/dummy/tmp/capybara/capybara-201306030944524823294090.html +0 -14
- data/test/dummy/tmp/capybara/capybara-20130828105343685535937.html +0 -50
- data/test/dummy/tmp/capybara/capybara-201308281055176538066301.html +0 -52
- data/test/dummy/tmp/capybara/capybara-201311071553562925508230.html +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e76b691ebae8a594c821eb74bb010c4759e7f58
|
4
|
+
data.tar.gz: 6bc634cd619fb31cc1c09cce26540de2c45617ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24c48635673c4dc97d8b25bac903d20311e50a5e365fb065da556a245670a890805804c4664681fdbccd06e7a44c85d7323908921e71057c3dc9c274e90e4d48
|
7
|
+
data.tar.gz: 3b5b522d81e618355d90ceb1b321b77b6fd98c13c5dfdf859c8d72d4ca00bcd8a00ad2960b6b05781438538f6061a7117fa9b1b408f8f131f9c5bd167e550f0b
|
data/README.md
CHANGED
@@ -12,20 +12,26 @@ under [Pointless Corp](http://www.pointlesscorp.com/).*
|
|
12
12
|
|
13
13
|
## Contents
|
14
14
|
|
15
|
-
1. [
|
16
|
-
2. [
|
17
|
-
3. [
|
18
|
-
4. [
|
19
|
-
5. [
|
20
|
-
6. [
|
15
|
+
1. [Versions](#versions)
|
16
|
+
2. [Installation](#installation)
|
17
|
+
3. [Configuration](#configuration)
|
18
|
+
4. [Customization](#customization)
|
19
|
+
5. [Development](#development)
|
20
|
+
6. [Roadmap](#roadmap)
|
21
|
+
7. [Contributors](#contributors)
|
22
|
+
|
23
|
+
## Versions
|
24
|
+
|
25
|
+
As of version 4.x, the Pointless Feedback gem versions will follow Rails releases. E.g. Pointless 4.x will support Rails 4.x. Additionally, Pointless 4.x will only support Ruby 2.x.
|
26
|
+
|
27
|
+
For Rails 3.x support, use Pointless Feedback version 1.x.
|
21
28
|
|
22
29
|
## Installation
|
23
30
|
|
24
|
-
|
25
|
-
the following to your Gemfile:
|
31
|
+
To install, simply add the following to your Gemfile:
|
26
32
|
|
27
33
|
```ruby
|
28
|
-
gem 'pointless_feedback'
|
34
|
+
gem 'pointless_feedback'
|
29
35
|
```
|
30
36
|
|
31
37
|
After you install Pointless Feedback and add it to your Gemfile, you need to
|
@@ -79,6 +85,9 @@ Specifies to what addresses feedback email is sent to.
|
|
79
85
|
**from_email:**
|
80
86
|
Specifies what address the feedback email is sent from.
|
81
87
|
|
88
|
+
**table_name:**
|
89
|
+
Defaults to engine's namespace, e.g. `pointless_feedback_messages`. Change to any desired table for `PointlessFeedback::Message` model.
|
90
|
+
|
82
91
|
## Customization
|
83
92
|
|
84
93
|
Pointless Feedback provides you with a simple setup that should cover most
|
@@ -154,7 +163,8 @@ to customize your redirect hook.
|
|
154
163
|
|
155
164
|
## Contributors
|
156
165
|
|
157
|
-
* [@zporter](
|
158
|
-
* [@efatsi](
|
166
|
+
* [@zporter](http://github.com/zporter)
|
167
|
+
* [@efatsi](http://github.com/efatsi)
|
168
|
+
* [@reagent](http://github.com/reagent)
|
159
169
|
|
160
170
|
This project rocks and uses MIT-LICENSE.
|
@@ -7,9 +7,9 @@ module PointlessFeedback
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def create
|
10
|
-
@message = Message.new(
|
10
|
+
@message = Message.new(message_params)
|
11
11
|
|
12
|
-
if
|
12
|
+
if @message.save
|
13
13
|
flash[:notice] = I18n.t('pointless_feedback.messages.saved',
|
14
14
|
:default => 'Thanks for your feedback!')
|
15
15
|
|
@@ -21,12 +21,14 @@ module PointlessFeedback
|
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
def message_params
|
25
|
+
params.require(:message).permit([
|
26
|
+
:description,
|
27
|
+
:email_address,
|
28
|
+
:name,
|
29
|
+
:topic,
|
30
|
+
:contact_info
|
31
|
+
])
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
module PointlessFeedback
|
2
2
|
class Message < ActiveRecord::Base
|
3
|
-
|
3
|
+
if PointlessFeedback.table_name.present?
|
4
|
+
self.table_name = PointlessFeedback.table_name
|
5
|
+
end
|
6
|
+
|
4
7
|
attr_accessor :contact_info
|
5
8
|
|
6
9
|
validates :name, :email_address, :topic, :description, :presence => true
|
@@ -13,9 +16,11 @@ module PointlessFeedback
|
|
13
16
|
private
|
14
17
|
|
15
18
|
def export_feedback
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
+
return unless PointlessFeedback.email_feedback
|
20
|
+
|
21
|
+
# Support Rails < 4.2 and >= 4.2 delivery options
|
22
|
+
mailer = FeedbackMailer.feedback(self)
|
23
|
+
mailer.respond_to?(:deliver_now) ? mailer.deliver_now : mailer.deliver
|
19
24
|
end
|
20
25
|
|
21
26
|
def honeypot_filled_in?
|
@@ -1,9 +1,3 @@
|
|
1
|
-
<% if PointlessFeedback.using_captcha? %>
|
2
|
-
<head>
|
3
|
-
<script src='https://www.google.com/recaptcha/api.js'></script>
|
4
|
-
</head>
|
5
|
-
<% end %>
|
6
|
-
|
7
1
|
<%= form_for @message do |f| %>
|
8
2
|
<% if @message.errors.any? %>
|
9
3
|
<div class="error_messages">
|
@@ -59,9 +53,5 @@
|
|
59
53
|
|
60
54
|
</fieldset>
|
61
55
|
|
62
|
-
<% if PointlessFeedback.using_captcha? %>
|
63
|
-
<div class="g-recaptcha" data-sitekey="<%= PointlessFeedback.google_captcha_site_key %>"></div>
|
64
|
-
<% end %>
|
65
|
-
|
66
56
|
<%= f.submit 'Submit' %>
|
67
57
|
<% end %>
|
@@ -6,10 +6,8 @@ PointlessFeedback.setup do |config|
|
|
6
6
|
# ==> Email Configuration
|
7
7
|
# Configure feedback email properties (disabled by default)
|
8
8
|
# Variables needed for emailing feedback
|
9
|
-
# config.email_feedback
|
10
|
-
# config.send_from_submitter
|
11
|
-
# config.from_email
|
12
|
-
# config.to_emails
|
13
|
-
# config.google_captcha_site_key = nil
|
14
|
-
# config.google_captcha_secret_key = nil
|
9
|
+
# config.email_feedback = false
|
10
|
+
# config.send_from_submitter = false
|
11
|
+
# config.from_email = 'feedback@pointlesscorp.com'
|
12
|
+
# config.to_emails = ['first@example.com', 'second@example.com']
|
15
13
|
end
|
data/lib/pointless_feedback.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
require "pointless_feedback/engine"
|
2
|
-
require "pointless_feedback/captcha"
|
3
|
-
require "typhoeus"
|
4
2
|
|
5
3
|
module PointlessFeedback
|
6
4
|
module Controllers
|
@@ -13,6 +11,11 @@ module PointlessFeedback
|
|
13
11
|
mattr_accessor :parent_controller
|
14
12
|
@@parent_controller = "ApplicationController"
|
15
13
|
|
14
|
+
# The table name that will be used to store all messages. By default this
|
15
|
+
# includes the engine's namespace (e.g. `pointless_feedback_messages`), but
|
16
|
+
# it can be configured to whatever is desired.
|
17
|
+
mattr_accessor :table_name
|
18
|
+
|
16
19
|
# Custom topics to display on message form
|
17
20
|
mattr_accessor :message_topics
|
18
21
|
@@message_topics = ['Error on page', 'Other']
|
@@ -30,20 +33,10 @@ module PointlessFeedback
|
|
30
33
|
mattr_accessor :to_emails
|
31
34
|
@@to_emails = ['first@example.com', 'second@example.com']
|
32
35
|
|
33
|
-
mattr_accessor :google_captcha_site_key
|
34
|
-
@@google_captcha_site_key = nil
|
35
|
-
|
36
|
-
mattr_accessor :google_captcha_secret_key
|
37
|
-
@@google_captcha_secret_key = nil
|
38
|
-
|
39
36
|
# Default way to setup PointlessFeedback. Run rails generate
|
40
37
|
# pointless_feedback_install to create a fresh initializer with all
|
41
38
|
# configuration values.
|
42
39
|
def self.setup
|
43
40
|
yield self
|
44
41
|
end
|
45
|
-
|
46
|
-
def self.using_captcha?
|
47
|
-
@@google_captcha_site_key.present? && @@google_captcha_secret_key.present?
|
48
|
-
end
|
49
42
|
end
|
@@ -11,16 +11,6 @@ module Dummy
|
|
11
11
|
# Application configuration should go into files in config/initializers
|
12
12
|
# -- all .rb files in that directory are automatically loaded.
|
13
13
|
|
14
|
-
# Custom directories with classes and modules you want to be autoloadable.
|
15
|
-
# config.autoload_paths += %W(#{config.root}/extras)
|
16
|
-
|
17
|
-
# Only load the plugins named here, in the order given (default is alphabetical).
|
18
|
-
# :all can be used as a placeholder for all plugins not explicitly named.
|
19
|
-
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
20
|
-
|
21
|
-
# Activate observers that should always be running.
|
22
|
-
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
23
|
-
|
24
14
|
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
25
15
|
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
26
16
|
# config.time_zone = 'Central Time (US & Canada)'
|
@@ -28,32 +18,6 @@ module Dummy
|
|
28
18
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
29
19
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
30
20
|
# config.i18n.default_locale = :de
|
31
|
-
|
32
|
-
# Configure the default encoding used in templates for Ruby 1.9.
|
33
|
-
config.encoding = "utf-8"
|
34
|
-
|
35
|
-
# Configure sensitive parameters which will be filtered from the log file.
|
36
|
-
config.filter_parameters += [:password]
|
37
|
-
|
38
|
-
# Enable escaping HTML in JSON.
|
39
|
-
config.active_support.escape_html_entities_in_json = true
|
40
|
-
|
41
|
-
# Use SQL instead of Active Record's schema dumper when creating the database.
|
42
|
-
# This is necessary if your schema can't be completely dumped by the schema dumper,
|
43
|
-
# like if you have constraints or database-specific column types
|
44
|
-
# config.active_record.schema_format = :sql
|
45
|
-
|
46
|
-
# Enforce whitelist mode for mass assignment.
|
47
|
-
# This will create an empty whitelist of attributes available for mass-assignment for all models
|
48
|
-
# in your app. As such, your models will need to explicitly whitelist or blacklist accessible
|
49
|
-
# parameters by using an attr_accessible or attr_protected declaration.
|
50
|
-
config.active_record.whitelist_attributes = true
|
51
|
-
|
52
|
-
# Enable the asset pipeline
|
53
|
-
config.assets.enabled = true
|
54
|
-
|
55
|
-
# Version of your assets, change this if you want to expire all your assets
|
56
|
-
config.assets.version = '1.0'
|
57
21
|
end
|
58
22
|
end
|
59
23
|
|
data/test/dummy/config/boot.rb
CHANGED
@@ -1,10 +1,5 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Set up gems listed in the Gemfile.
|
2
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
|
3
3
|
|
4
|
-
if File.
|
5
|
-
|
6
|
-
require 'bundler'
|
7
|
-
Bundler.setup
|
8
|
-
end
|
9
|
-
|
10
|
-
$:.unshift File.expand_path('../../../../lib', __FILE__)
|
4
|
+
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
|
5
|
+
$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
|
@@ -1,37 +1,29 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
3
|
|
4
4
|
# In the development environment your application's code is reloaded on
|
5
5
|
# every request. This slows down response time but is perfect for development
|
6
6
|
# since you don't have to restart the web server when you make code changes.
|
7
7
|
config.cache_classes = false
|
8
8
|
|
9
|
-
#
|
10
|
-
config.
|
9
|
+
# Do not eager load code on boot.
|
10
|
+
config.eager_load = false
|
11
11
|
|
12
|
-
# Show full error reports and disable caching
|
12
|
+
# Show full error reports and disable caching.
|
13
13
|
config.consider_all_requests_local = true
|
14
14
|
config.action_controller.perform_caching = false
|
15
15
|
|
16
|
-
# Don't care if the mailer can't send
|
16
|
+
# Don't care if the mailer can't send.
|
17
17
|
config.action_mailer.raise_delivery_errors = false
|
18
18
|
|
19
|
-
# Print deprecation notices to the Rails logger
|
19
|
+
# Print deprecation notices to the Rails logger.
|
20
20
|
config.active_support.deprecation = :log
|
21
21
|
|
22
|
-
#
|
23
|
-
config.
|
22
|
+
# Raise an error on page load if there are pending migrations
|
23
|
+
config.active_record.migration_error = :page_load
|
24
24
|
|
25
|
-
#
|
26
|
-
|
27
|
-
|
28
|
-
# Log the query plan for queries taking more than this (works
|
29
|
-
# with SQLite, MySQL, and PostgreSQL)
|
30
|
-
config.active_record.auto_explain_threshold_in_seconds = 0.5
|
31
|
-
|
32
|
-
# Do not compress assets
|
33
|
-
config.assets.compress = false
|
34
|
-
|
35
|
-
# Expands the lines which load the assets
|
25
|
+
# Debug mode disables concatenation and preprocessing of assets.
|
26
|
+
# This option may cause significant delays in view rendering with a large
|
27
|
+
# number of complex assets.
|
36
28
|
config.assets.debug = true
|
37
|
-
end
|
29
|
+
end
|
@@ -1,67 +1,80 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
# Settings specified here will take precedence over those in config/application.rb
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
3
|
|
4
|
-
# Code is not reloaded between requests
|
4
|
+
# Code is not reloaded between requests.
|
5
5
|
config.cache_classes = true
|
6
6
|
|
7
|
-
#
|
7
|
+
# Eager load code on boot. This eager loads most of Rails and
|
8
|
+
# your application in memory, allowing both thread web servers
|
9
|
+
# and those relying on copy on write to perform better.
|
10
|
+
# Rake tasks automatically ignore this option for performance.
|
11
|
+
config.eager_load = true
|
12
|
+
|
13
|
+
# Full error reports are disabled and caching is turned on.
|
8
14
|
config.consider_all_requests_local = false
|
9
15
|
config.action_controller.perform_caching = true
|
10
16
|
|
11
|
-
#
|
12
|
-
|
17
|
+
# Enable Rack::Cache to put a simple HTTP cache in front of your application
|
18
|
+
# Add `rack-cache` to your Gemfile before enabling this.
|
19
|
+
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
|
20
|
+
# config.action_dispatch.rack_cache = true
|
21
|
+
|
22
|
+
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
+
config.serve_static_files = false
|
13
24
|
|
14
|
-
# Compress JavaScripts and CSS
|
15
|
-
config.assets.
|
25
|
+
# Compress JavaScripts and CSS.
|
26
|
+
config.assets.js_compressor = :uglifier
|
27
|
+
# config.assets.css_compressor = :sass
|
16
28
|
|
17
|
-
#
|
29
|
+
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
18
30
|
config.assets.compile = false
|
19
31
|
|
20
|
-
# Generate digests for assets URLs
|
32
|
+
# Generate digests for assets URLs.
|
21
33
|
config.assets.digest = true
|
22
34
|
|
23
|
-
#
|
24
|
-
|
35
|
+
# Version of your assets, change this if you want to expire all your assets.
|
36
|
+
config.assets.version = '1.0'
|
25
37
|
|
26
|
-
# Specifies the header that your server uses for sending files
|
38
|
+
# Specifies the header that your server uses for sending files.
|
27
39
|
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
28
40
|
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
29
41
|
|
30
42
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
31
43
|
# config.force_ssl = true
|
32
44
|
|
33
|
-
#
|
34
|
-
|
45
|
+
# Set to :debug to see everything in the log.
|
46
|
+
config.log_level = :info
|
35
47
|
|
36
|
-
# Prepend all log lines with the following tags
|
48
|
+
# Prepend all log lines with the following tags.
|
37
49
|
# config.log_tags = [ :subdomain, :uuid ]
|
38
50
|
|
39
|
-
# Use a different logger for distributed setups
|
51
|
+
# Use a different logger for distributed setups.
|
40
52
|
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
41
53
|
|
42
|
-
# Use a different cache store in production
|
54
|
+
# Use a different cache store in production.
|
43
55
|
# config.cache_store = :mem_cache_store
|
44
56
|
|
45
|
-
# Enable serving of images, stylesheets, and JavaScripts from an asset server
|
57
|
+
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
46
58
|
# config.action_controller.asset_host = "http://assets.example.com"
|
47
59
|
|
48
|
-
# Precompile additional assets
|
60
|
+
# Precompile additional assets.
|
61
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
49
62
|
# config.assets.precompile += %w( search.js )
|
50
63
|
|
51
|
-
#
|
64
|
+
# Ignore bad email addresses and do not raise email delivery errors.
|
65
|
+
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
52
66
|
# config.action_mailer.raise_delivery_errors = false
|
53
67
|
|
54
|
-
# Enable threaded mode
|
55
|
-
# config.threadsafe!
|
56
|
-
|
57
68
|
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
58
|
-
# the I18n.default_locale when a translation can not be found)
|
69
|
+
# the I18n.default_locale when a translation can not be found).
|
59
70
|
config.i18n.fallbacks = true
|
60
71
|
|
61
|
-
# Send deprecation notices to registered listeners
|
72
|
+
# Send deprecation notices to registered listeners.
|
62
73
|
config.active_support.deprecation = :notify
|
63
74
|
|
64
|
-
#
|
65
|
-
#
|
66
|
-
|
75
|
+
# Disable automatic flushing of the log to improve performance.
|
76
|
+
# config.autoflush_log = false
|
77
|
+
|
78
|
+
# Use default logging formatter so that PID and timestamp are not suppressed.
|
79
|
+
config.log_formatter = ::Logger::Formatter.new
|
67
80
|
end
|