gdpr_rails 0.4.0 → 0.5.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.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -1
  3. data/app/models/policy_manager/concerns/active_storage_behavior.rb +31 -0
  4. data/app/models/policy_manager/concerns/paperclip_behavior.rb +28 -0
  5. data/app/models/policy_manager/portability_request.rb +5 -19
  6. data/app/views/policy_manager/portability_mailer/completed_notification.erb +1 -1
  7. data/app/views/policy_manager/user_portability_requests/index.html.erb +1 -1
  8. data/db/migrate/20180410171354_create_policy_manager_portability_requests.rb +0 -7
  9. data/lib/generators/policy_manager/paperclip_generator.rb +19 -0
  10. data/lib/policy_manager.rb +1 -0
  11. data/lib/policy_manager/config.rb +2 -1
  12. data/lib/policy_manager/engine.rb +1 -0
  13. data/lib/policy_manager/version.rb +1 -1
  14. data/lib/tasks/terms_tasks.rake +3 -3
  15. data/lib/templates/migrations/paperclip_fields.rb +9 -0
  16. data/spec/dummy/config/environments/development.rb +2 -0
  17. data/spec/dummy/config/environments/test.rb +1 -0
  18. data/spec/dummy/config/storage.yml +7 -0
  19. data/spec/dummy/db/development.sqlite3 +0 -0
  20. data/spec/dummy/db/migrate/20190221193828_create_active_storage_tables.active_storage.rb +27 -0
  21. data/spec/dummy/db/migrate/20190221193829_paperclip_fields_to_portability.rb +9 -0
  22. data/spec/dummy/db/schema.rb +22 -1
  23. data/spec/dummy/log/development.log +144 -0
  24. data/spec/dummy/log/test.log +59042 -0
  25. data/spec/dummy/storage/2l/36/2l362zssgrk8520386277x1m7sap +0 -0
  26. data/spec/dummy/storage/3h/t8/3ht83746l6xcrys3zqakgm3amnd2 +0 -0
  27. data/spec/dummy/storage/et/2c/et2cyefqb7fwpqlvkdtwsj2x9rif +0 -0
  28. data/spec/dummy/storage/f8/g8/f8g8ftde3q0mx6z31dlabg0kr9l1 +0 -0
  29. data/spec/dummy/storage/la/cq/lacq4gwt9028i07ep7yj989ezjzv +0 -0
  30. data/spec/dummy/storage/lz/fz/lzfz3esm4xdo00ovfqyzql6roqy8 +0 -0
  31. data/spec/dummy/storage/w8/1m/w81m2darf15pkw92haf9s6vhym9v +0 -0
  32. data/spec/dummy/storage/xx/5p/xx5pbr13a6y8v9yqwze3riajant8 +0 -0
  33. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0v/0vE_Z5wQdjFNHo1cpMhj30ohNqK1pw5lRopJ5tjmIK4.cache +1 -0
  34. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/16/16OQnBzpvvoLSOsch-jiWOeoqdKJa4Qm7_Uu1KTeqj4.cache +0 -0
  35. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1I/1IEuwz2loqzjXRmgaC9CjDTC_dv_Fq9RQz_SHbOUfxg.cache +1 -0
  36. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1y/1yK6Yk9GhmbhUK04f_2GjfRAndt8iFZh1kJ8QToMMh0.cache +0 -0
  37. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2R/2RgzPEVUHFyz58qIDy0lvbj-Z9EfixkKrOy9PTrXLJA.cache +0 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2h/2hQ-Sec8cSlP0-fnhJEpFc5LmC9HtnY18UGydYCbrH4.cache +3 -0
  39. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4F/4F3tjiAG47V8a_Yxd0hUOdKmPe9F6u_drmDLQaglfPk.cache +1 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4j/4jsVretxsx-HpkD8Z0J7L8lGvulMm62OE_ZRpZy2T2s.cache +0 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4l/4lVraBq_1ToSspsyxfDWTQCB7YwxLYdzudGv51iXshE.cache +1 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4u/4uoPk5K9mLQvduTqkjeXtBeaWojenX5Dn-dBdkX5CqA.cache +1 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/55/55dq5CacmKKx4EidTHiUg1no98mwc6qnMkSRZ_w6eiQ.cache +1 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5m/5mO5S2MfbEUVxkXH46amJgMg-T2BHvPkW-PHDU1kP68.cache +0 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6F/6Ffi6KsaVabRSwIvAirrkCPegnnsGejpi_fvti6aRSM.cache +0 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6H/6HYz7TxqgQEvMtS_-eMfRZoHzUdtpIiYjnWn0SjO7UM.cache +0 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7F/7F7JkSo6jlM0voz0l3MZWt5QwacPA0dpP_1kzBPXnqA.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7G/7GLEQz_Aq3OIicABdwjBkskGHxX1ovVdciz-9BNd6g0.cache +3 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8A/8AeLZZy3ZDyx1PfRZRe9udwZPu-rdrYOxRtr-812fBY.cache +0 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8c/8cZC-c0OrbqSaU34YPcNs-J9BFxPlIZVyC1h-vb6IGw.cache +1 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bj/Bj8KwkQl2ElOYrAyay23nhzeXTmS1JBYzDdXkXOs7ak.cache +0 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/D7/D7RTGYIjP5u6EEwmDfym0vdsv-qup2wn_0v0q-0_lLU.cache +0 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DC/DC2JuhCKJcQ-62Xjy0MetCg8kg6Y9v1Fq62DzqLuUdc.cache +1 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DC/DCpjyYVHt2BQw1NkNXqQ-4Ig5ci2nKQn_IpwMT2QIw8.cache +0 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DE/DEe1YuLlrLaRx7Pn9h60U3MUfLPoIknJYdDMHCLjeZQ.cache +0 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ea/EaxGB9YXoJUQCu0GAOTsYJTQVm7DOcwRYr6PYCJizKc.cache +0 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ez/Ez830tsf92ANv8aYp0eukenQosDepHkYPSw7zpbYv7s.cache +1 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FB/FBax1REqD66hPpVRc5eOVs9187oG5nIm89cpSv632Mk.cache +1 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FC/FCwWvGq13B6nJe4VfmsPwNqAsfCiKxhSmSGJjvsb0Gk.cache +1 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FJ/FJGvPB0sPBL2fnD4dv1prKuXejP_PbmVxITXGlNWhII.cache +0 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FV/FVo-aHKXwy1yxqSMJbkLyHPwRAyFujt9uxWXYbPica0.cache +0 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FV/FvG3upOQz-Pf0bkOzjbt5Tob6s5vGvKTsR3Z4I0GXXk.cache +0 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FX/FXQObKxl_tePRMj1tD2dHU7vUJSArzp-O0eRmuHOILI.cache +1 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FX/FxCTdprYygoEahFK0vLstkTQlvZvyqDcv01-Vivhwtc.cache +1 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/G2/G26n_qGwdmsnStMjB4xjj9BALv1KpivpR7v8oL9i9UA.cache +0 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HB/HBAJM5iGpE8mygYQoQXo94iLywhzb50rXbxsp-0QFHo.cache +0 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JU/JULD7yaDdSPcznVADa55-Md62qN2cc3IjaBK5tgJybY.cache +0 -0
  68. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jd/JdDmTUo0JWUe6FOMUmnDGqGJjQ21t-X3Ha-we14SIIE.cache +1 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K4/K4miwIujBlZfa-jgPUN-CBJf14YtZ5twNxk4p0gxzDE.cache +1 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KO/KOErQTQTiecLdWHaeBcU87YYSN5jXe9pAkOLAM4wzkI.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kj/Kj07Vv-IPPjCqlFBsv7B4KiCoorsOrqfgD3GA7CHebE.cache +1 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MJ/mJiRDhNK9lBJ0zlxsd8P-0yQ7IaE0jGnTh-BmUYpiEA.cache +0 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NW/NWISOQse2-AzHx07F4vid8WRt1mt1GA1uYYeX8UvV2o.cache +1 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Of/Of0abBZL1rHSALuMB_rQHPj5tqEAeCCSuVY2ZmGK27I.cache +0 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PD/PD8TIIzCmreylNveA9PAjg6F-GvlPXqGA42hDYt3uA0.cache +1 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ph/PhMFP9F_bMraBte1M3JjSFG56bg6A07qOmmkIOpbxY8.cache +1 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ps/PstKAWj2Ifinqxxl_JTVUXYo_bQbGeCGJmeom5uVecc.cache +0 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q1/Q11Up7amirYkztBQY9eQ30UmGuVpulHwjKmzge2y5zQ.cache +1 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q1/Q1RkUqa15TQX-W_ymPHwYE2Uqiu0EvUnXM0Y9DGVViI.cache +2 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qp/QpyABqS_v3Wm3NTJS5DMsYMu7fCe1FaQ41SA0cB-I_Q.cache +0 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R1/R1jk23_EMom3a-8UlqGk2biKNYdvnb9twNtulD5u3z0.cache +1 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Rs/Rs2r5EZJjVdL5bZ-ARxMoFhu1ILGuJcGlU4HciUZt4g.cache +1 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SF/SFXkrPlHDYYHsT2MmYIV5Q2GdBa8aR99KRHXP2DG7zc.cache +0 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SY/SYsH1LNj04sGoAtIDjZcj2tbeB50S_3Apy1u8eQxtZ0.cache +1 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Th/ThPl90mnKyOL-hIISMWTS2RtDjuRvWGwUxvOCKkCy9Q.cache +3 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Us/UsdQRHUf-zrBnHLmAUGpqNF9-AcpT3ALFZGgMQudV0w.cache +0 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VM/VMWSbcmtyQTVs5WpkUkWdn92tdhwmFfDfOReVqs1xvw.cache +1 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vr/Vrg5XqKRMlQocxybobVKGx85yUXixQz-XzruejArrWQ.cache +1 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W2/W2sH6Lbfxh0Vv-UNsYZQbUMNkV4KTRekALRm0gxRrEI.cache +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XO/XOX4fX9VV69SKK9y8Tj3Bt4ZbzND_mkkqG50I51LPgY.cache +3 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xe/XeqUueJXiYt6HKhqAV0M-oIwbhysjVUBAVsxLpwVdgo.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YW/YWn8PssbiFBLfgmIGOMPUpnM6mWWX3TwnyutdbnQTb4.cache +0 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yl/YlzYXKEUXsvrUYqFQNm3FmmKpU5u-xbH91wZJ9r3-bQ.cache +1 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yu/YukzgTJTB7k2Fwy2rMGCD8hZY90GFYlbkAT4YmW_UYE.cache +0 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZC/ZCJceZHSXZ9KJi_fwdE2pCn2eAWeLnJatJwkigaYtlk.cache +0 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZR/ZR5fTWQEj8FzDhyEhQoRwT6u4Vlqf9YupCyZdXxwz6I.cache +1 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_f/_fjyctiFHEUpkdWsXty-j_0kwZLxUYItWdxVfRFvFMI.cache +1 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_z/_zDy0xkpyHdcugIQG4UxD73ACa0eIc_yE3sQeGPBM3E.cache +1 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aL/aLxSLdT3QTNPAjVcxAJzvmTRBXZzo7zTZYSgwDfA3XM.cache +0 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache +0 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/c4/c43KRQCk0IF_ZA9YSwMDa61apcA5um8Pmijw88nQurg.cache +0 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dg/dgm0UAQyZ-78r6OAt5bCrv8O5_plUw7fJwyQQYwcre0.cache +3 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dl/dlfJ8lP5LynKDEGKpYau_R8ql0i_P-5b733IMnaJVqU.cache +0 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eB/EbfyEy2PQY2H8U3FO-5AxZIhHm1kynbBRssQlDsJYfk.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eX/eXDy3dO5S2za0pvARSkmlsa5Lx-nJf43OTc4bg-Fs_I.cache +1 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ei/eiAufSKLI8jd9nhEU-pCEdlQXiCZLuOLzk7IIMo8bHE.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g8/g87FI_OtYNjCQGODNkw1wl8S-qRLXGeCiohCVvnkl0s.cache +1 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gP/gPGg8P18vP0lkwjOEzLebQqvPxexYOGWXWN8zL8L91g.cache +1 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gT/gT5jbNDSaj24YKiPSTT9GPN1iaxf9LrB6j6kmbiA5nI.cache +1 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hQ/hQwsOgXT3j28mQdnUMFVh_4yG0cO9XOGuNsqvmRkFdM.cache +0 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hV/HVuTRKGtbtagLsBphiGh3bnPEmy7t9matkUNjR6tr3U.cache +0 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hV/hVvyHPED6YQde4oe-SOQeHQPRBQ6KUQ9h8Rk6n5iNOM.cache +1 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hV/hvrOjYN1We_Zy2Jm45yxxS07vcinBFRy2g-WTa7JHeo.cache +1 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hs/hsDumxZlwL-wWI8_U9Vw27WVcNPd7chlY9DI8_c866U.cache +0 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iM/iMdWekcMrIqNwS8XN5jsEYU68nRMsjdJdlkikdYmFHg.cache +0 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ie/ieH53fiEvGCHmEzynbmTE0VP7FcTVs-nbNBZWnedeX8.cache +1 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j5/j5bzKA4TUTTfyH1P_hff_KLkrGidUNy6zNezarGma1M.cache +0 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/k3/k3cXru2ZiYB4eLVwMfq0rGWP7_7ke16e2q6t54U_Q7U.cache +1 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kM/kM__tC376q_VPIFhfieVd8CaQdjVc48HByTKSVjb5Qc.cache +0 -0
  120. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kl/klCSNNO4xipPe4MTGfCq30QZ31uCprvmNqy3dSycr_U.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lW/lWpDsHb65Hy4YhNn4s-RFZTEVrl0HM7hZho8AI0Zrtc.cache +0 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lg/lg1ExD6zq_Fv1Ht71z2B1MwWlhUeyq0rAT-gP_8-37c.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mC/mCDbJYaBB6x9OtbnRYgXYDjfWrU_eEBaz4U59rSID4I.cache +0 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mF/mFO5YlY3J7S2IyfwoxGzTtEqSuMHJk3vY3qRODmSs9E.cache +1 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache +0 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n1/n18e5MSsVHLwvGv5J_1BYo70Tn_hzaWZj2XJL9AL0NY.cache +0 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nP/nPfjszQ5f1RoLJDRcIdRVMxlZi3idmZGvLKVjVzW0GY.cache +0 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oE/oEDfFcqQ_GLaGhzRA9BtRMb4sxlbsG4Z_NUm3TZXzRo.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oR/OrKM2ee0whN1Cmao8YIbPYxYvscMu2QhrFOHHpyxngc.cache +1 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oR/oRoKFABHTlwDCMnOCwFUq8GGjFMQD_ipYTQRkH-Dbho.cache +1 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oq/oqmFQVcYpArkznSiHWfq2WYiWGM6I0VY6JR6Lz-p31c.cache +1 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/oZiMbegOVZ6Q_3ZDeufAsDf5j2QxnzdRExOYPcOZ7vA.cache +0 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p0/p0jMhMrkXWEXKdz0A_xO8foeJcDMfZU725lMT6cB9vk.cache +0 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pN/pN4p1lZXHOR3GQMh9DiMiwCRBAfUy8V6FwCsCG_XERU.cache +1 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pa/pa0oPVXHM4TRg_i1XhleC6MnNKBoOhEPB4Jz8gMcI-A.cache +1 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qO/qodPZ864mIN2KkgSFDLgHG352smn1rc2MAGF7gf-VQs.cache +1 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qg/qGvrZ0gQHs2ngHSUSNFr5biz5gRWkC-uSwTp8Hn1gkY.cache +1 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qz/qzeLBTNrj-DGN3aYNYMfdZKSa8Sv3pRvq7S2Z5Y9G84.cache +1 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rh/rhiHxaMtmmZZYiO583Or4k7BPLAmMzeqyLc0gmJoKLg.cache +0 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tN/tNljEmpPtqxyj5gAl-g2gi0XGWnVTxUm3UaAsYmEZvA.cache +1 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tg/tgFtWSjMbFR-ImOK3ynY9xJnkM2adReWxndXb5n1ojc.cache +1 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uP/uPqhym-rHxeDWpzVfq0ytpIKzS0nbQpLKPhOuwO2Btk.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uQ/uQ5RsssbOIdTqh9WElwvBqoOIIjJQEXxVY6SFWyAiP8.cache +0 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uY/uYo0EdBp9gEu6FIw_VfPKokHrOdHuHqyVeOpkFnSQHE.cache +0 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uk/UkZQIk6sqUJnY_Aajep_9n1ckufVbHWLAGYe9Q6SVuU.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uk/ukkPjFzFTAYsB0Vzs37KNyiqPdimeD63KZsecBbtr-M.cache +0 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/v5/v5_n9hMUSZ2_62Nidzj5gJEE-2e_rpuKuJIffIaBGbc.cache +0 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/v7/v7isAGwkxm0q3aLkOGPDUGmBNUd7F2ZsF75oGRcOUd8.cache +0 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vK60lKIO22Zxo-kW_1tTY5X248fMVrpJX9TB79iEmJQ.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKf4GGdinHdcU3CtkPsgZtSn8ydW_EV1mjPVoQzX890.cache +1 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vq/vqPy5rvDzLDmCBsxkzdWVkoeh-NbgK_AZufVx-K2zmg.cache +0 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vw/vwfN5d6phkc9KgypzH6bSSYkYpP10LA_06AtrggyBt8.cache +1 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wW/wWWddLxrTHTYaE5qyqSL_Oi8hXFZoXUKvSV55bcdrA4.cache +1 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xD/xDzep5JtXC_vfoPL8E418yUyQ2MLCPVtlXNseCfTKng.cache +0 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xQ/XqTZzabMfsw7bjhpIkHwMcoBCFnmVypvg-ZOyMmd07M.cache +0 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/y7/y7Bd-x0em9X5vXKffVc3JdeBDyFz3l1by8-4ccZmjH4.cache +1 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zK/ZKPLUpoS8Gqz08tLK15U9y0iTOQp-VC9v4yxHOSwBOo.cache +1 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zK/zKuvJ5btxxJbOGE01VUzyiZoVHYr8JrPHedPibo8jNs.cache +0 -0
  161. data/spec/dummy/tmp/export/29-out.zip +0 -0
  162. data/spec/dummy/tmp/export/29/exportable_data/10/index.html +14 -0
  163. data/spec/dummy/tmp/export/{28/exportable_data/3 → 29/exportable_data/2}/index.html +4 -4
  164. data/spec/dummy/tmp/export/29/exportable_data/3/index.html +14 -0
  165. data/spec/dummy/tmp/export/29/exportable_data/4/index.html +14 -0
  166. data/spec/dummy/tmp/export/29/exportable_data/5/index.html +14 -0
  167. data/spec/dummy/tmp/export/29/exportable_data/6/index.html +14 -0
  168. data/spec/dummy/tmp/export/29/exportable_data/7/index.html +14 -0
  169. data/spec/dummy/tmp/export/29/exportable_data/8/index.html +14 -0
  170. data/spec/dummy/tmp/export/29/exportable_data/9/index.html +14 -0
  171. data/spec/dummy/tmp/export/29/exportable_data/index.html +14 -0
  172. data/spec/dummy/tmp/export/{28 → 29}/index.html +6 -6
  173. data/spec/models/policy_manager/portability_request_spec.rb +141 -58
  174. data/spec/rails_helper.rb +1 -1
  175. metadata +293 -65
  176. data/spec/dummy/tmp/export/28-out.zip +0 -0
  177. data/spec/dummy/tmp/export/28/exportable_data/10/index.html +0 -14
  178. data/spec/dummy/tmp/export/28/exportable_data/2/index.html +0 -14
  179. data/spec/dummy/tmp/export/28/exportable_data/4/index.html +0 -14
  180. data/spec/dummy/tmp/export/28/exportable_data/5/index.html +0 -14
  181. data/spec/dummy/tmp/export/28/exportable_data/6/index.html +0 -14
  182. data/spec/dummy/tmp/export/28/exportable_data/7/index.html +0 -14
  183. data/spec/dummy/tmp/export/28/exportable_data/8/index.html +0 -14
  184. data/spec/dummy/tmp/export/28/exportable_data/9/index.html +0 -14
  185. data/spec/dummy/tmp/export/28/exportable_data/index.html +0 -14
  186. data/spec/dummy/tmp/portability/1/build.zip +0 -0
  187. data/spec/dummy/tmp/portability/14/build.zip +0 -0
  188. data/spec/dummy/tmp/portability/15/build.zip +0 -0
  189. data/spec/dummy/tmp/portability/16/build.zip +0 -0
  190. data/spec/dummy/tmp/portability/17/build.zip +0 -0
  191. data/spec/dummy/tmp/portability/18/build.zip +0 -0
  192. data/spec/dummy/tmp/portability/2/build.zip +0 -0
  193. data/spec/dummy/tmp/portability/20/build.zip +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 386298d1731a0a6830f1445e562f7e4dd0bca49ee37b0eed4fb1e35b9e1b8ca8
4
- data.tar.gz: 5f31692024cae1c58a1403679fd7690c50bf3c07776c3d912f0873cb264135d8
3
+ metadata.gz: fd4d3c3a82cf1d70631ee098e62e65adc4886b9807afb0a4545a62b4dfcd8e56
4
+ data.tar.gz: 3b2c029fd71c0f29e9b1e5ca5fdec1ebe0bb6100680052a77de91e008d983ce2
5
5
  SHA512:
6
- metadata.gz: 52c20ac58d490cda8066dde9adbd91a8630216a9aae6ac5110dedbae379882d934e56d24b4e360d77d08c25660cb38e26cebb03926aa37e595ca6682d7a0139a
7
- data.tar.gz: 163475f3ad0de7c4e1ea477b59ab51796e1903e918facc04aa3c283b4faa1452e5cadc4dfac0ac50f4e03ef33ba6096f211befeae10d85c77fa54c3920a46395
6
+ metadata.gz: e5d41c6d007b81aacf9aff44f20e69872136efe322ced3e81285a611ec6b9a3d5cbd7abaa37e6243400722dcb3a6ebde1f200486c0a271135d6fea41cc16c50c
7
+ data.tar.gz: 5a66db35017d225e21202b7d9b3cb560055701d5c18306ed1a5297f7b3ef7e05f857ad12ddd8d0c77c30e6af060cdaeace3f68da19fedd27cc16aa0b33e97650
data/README.md CHANGED
@@ -30,7 +30,7 @@ Portability module lets you define export options, that will generate a navigabl
30
30
  + Downloads images to the local filesystem in order to comply with GDPR requirements on data accessibility.
31
31
  + Zips all the information and delivers it with a expirable download link
32
32
  + ActiveJob to handle the process
33
- + Behind the scenes uses the paperclip gem in which you can set up storages, like S3, Google
33
+ + Behind the scenes uses Rails's ActiveStorage (with an optional Paperclip support) in which you can set up storages, like S3, Google
34
34
 
35
35
  #### Scripts & Cookies
36
36
  Configurable *scripts* which will bind cookie names in order to handle the script rendering and the cookie clean up.
@@ -42,6 +42,8 @@ Configurable *scripts* which will bind cookie names in order to handle the scrip
42
42
  ![Admin panel](https://user-images.githubusercontent.com/11976/40152755-856941e2-5954-11e8-87d0-1464c21a61c2.png)
43
43
 
44
44
  ## Installation
45
+
46
+
45
47
  Add this line to your application's Gemfile:
46
48
 
47
49
  as `gem 'gdpr_rails'`
@@ -54,6 +56,37 @@ Install & run the migrations
54
56
 
55
57
  `rake policy_manager:install:migrations`
56
58
 
59
+ ## Rails ActiveStorage
60
+
61
+ By default The engine will use the app's active_storage setup for file handling
62
+
63
+ ## Rails Paperclip
64
+
65
+ If you don't use activeStorage in your application, run this migration to use paperclip
66
+
67
+ ```ruby
68
+ class PaperclipFieldsToPortability < ActiveRecord::Migration[5.2]
69
+ def change
70
+ add_column :policy_manager_portability_requests, :attachment, :string
71
+ add_column :policy_manager_portability_requests , :attachment_file_name, :string
72
+ add_column :policy_manager_portability_requests , :attachment_file_size, :string
73
+ add_column :policy_manager_portability_requests , :attachment_file_content_type, :string
74
+ add_column :policy_manager_portability_requests, :attachment_content_type, :string
75
+ end
76
+ end
77
+ ```
78
+
79
+ and in your Gdpr config add paperclip option to enable it
80
+
81
+ ```ruby
82
+
83
+ PolicyManager::Config.setup do |config|
84
+ config.paperclip = true
85
+ #....
86
+ end
87
+ ```
88
+
89
+
57
90
  ## Usage examples
58
91
 
59
92
  ### Basic config
@@ -0,0 +1,31 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require "paperclip"
3
+
4
+ module PolicyManager::Concerns::ActiveStorageBehavior
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ has_one_attached :attachment
9
+ end
10
+
11
+ def file_remote_url=(url_value)
12
+
13
+ self.attachment.attach(
14
+ io: File.open(url_value),
15
+ filename: File.basename(url_value),
16
+ content_type: 'application/zip'
17
+ ) unless url_value.blank?
18
+
19
+ #self.attachment = File.open(url_value) unless url_value.blank?
20
+
21
+ self.save
22
+ self.complete!
23
+ end
24
+
25
+ def download_link
26
+ return '' unless self.attachment.attached?
27
+ url = Rails.application.routes.url_helpers.rails_blob_path(self.attachment, only_path: true)
28
+ #self.attachment.expiring_url(PolicyManager::Config.exporter.expiration_link)
29
+ PolicyManager::Config.exporter.customize_link(url)
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require "paperclip"
3
+
4
+ module PolicyManager::Concerns::PaperclipBehavior
5
+ extend ActiveSupport::Concern
6
+ include Paperclip::Glue
7
+
8
+ included do
9
+
10
+ has_attached_file :attachment,
11
+ path: Config.exporter.try(:attachment_path) || Rails.root.join("tmp/portability/:id/build.zip").to_s,
12
+ storage: Config.exporter.try(:attachment_storage) || :filesystem,
13
+ s3_permissions: :private
14
+
15
+ do_not_validate_attachment_file_type :attachment
16
+ end
17
+
18
+ def file_remote_url=(url_value)
19
+ self.attachment = File.open(url_value) unless url_value.blank?
20
+ self.save
21
+ self.complete!
22
+ end
23
+
24
+ def download_link
25
+ url = self.attachment.expiring_url(PolicyManager::Config.exporter.expiration_link)
26
+ PolicyManager::Config.exporter.customize_link(url)
27
+ end
28
+ end
@@ -1,18 +1,15 @@
1
- require "paperclip"
2
1
  require "aasm"
3
2
 
4
3
  module PolicyManager
5
4
  class PortabilityRequest < ApplicationRecord
6
- include Paperclip::Glue
7
5
 
8
6
  belongs_to :user, class_name: Config.user_resource.to_s, foreign_key: :user_id
9
7
 
10
- has_attached_file :attachment,
11
- path: Config.exporter.try(:attachment_path) || Rails.root.join("tmp/portability/:id/build.zip").to_s,
12
- storage: Config.exporter.try(:attachment_storage) || :filesystem,
13
- s3_permissions: :private
14
-
15
- do_not_validate_attachment_file_type :attachment
8
+ if PolicyManager::Config.paperclip
9
+ include PolicyManager::Concerns::PaperclipBehavior
10
+ else
11
+ include PolicyManager::Concerns::ActiveStorageBehavior
12
+ end
16
13
 
17
14
  include AASM
18
15
 
@@ -34,17 +31,6 @@ module PolicyManager
34
31
  self.user.email
35
32
  end
36
33
 
37
- def file_remote_url=(url_value)
38
- self.attachment = File.open(url_value) unless url_value.blank?
39
- self.save
40
- self.complete!
41
- end
42
-
43
- def download_link
44
- url = self.attachment.expiring_url(PolicyManager::Config.exporter.expiration_link)
45
- PolicyManager::Config.exporter.customize_link(url)
46
- end
47
-
48
34
  def handle_progress
49
35
  notify_progress
50
36
  perform_job
@@ -1,6 +1,6 @@
1
1
  <p>Hi , your complete data was processed and can be downloaded at</p>
2
2
 
3
- <%= link_to "download file", @portability_request.attachment.expiring_url(PolicyManager::Config.exporter.expiration_link) %>
3
+ <%= link_to "download file", @portability_request.download_link %>
4
4
 
5
5
 
6
6
 
@@ -38,7 +38,7 @@
38
38
  </td>
39
39
  <% if portability_request.completed? %>
40
40
  <td>
41
- <%= link_to portability_request.attachment.expiring_url(60), class: "btn btn-secondary btn-sm" do %>
41
+ <%= link_to portability_request.attachment.download_link, class: "btn btn-secondary btn-sm" do %>
42
42
  <i class="fa fa-download"></i>
43
43
  <%= I18n.t("terms_app.misc.download")%>
44
44
  <% end %>
@@ -4,14 +4,7 @@ class CreatePolicyManagerPortabilityRequests < ActiveRecord::Migration[5.1]
4
4
  #t.references :user, foreign_key: true
5
5
  t.integer :user_id, index: true
6
6
  t.string :state
7
- t.string :attachment
8
- t.string :attachment_file_name
9
- t.string :attachment_file_size
10
- t.datetime :attachment_content_type
11
- t.string :attachment_file_content_type
12
-
13
7
  t.datetime :expire_at
14
-
15
8
  t.timestamps
16
9
  end
17
10
  end
@@ -0,0 +1,19 @@
1
+ require 'rails/generators/active_record'
2
+ require 'rails/generators/migration'
3
+
4
+ module PolicyManager
5
+ module Generators
6
+ class PaperclipGenerator < Rails::Generators::Base
7
+
8
+ #self.class.include Rails::Generators::Migration
9
+
10
+ #desc "Installs mygem and generates the necessary migrations"
11
+ #source_root File.expand_path("../templates", __FILE__)
12
+
13
+ #def create_migrations
14
+ # migration_template 'migrations/paperclip_fields.rb', "db/migrate/add_foo_to_bar.rb"
15
+ #end
16
+
17
+ end
18
+ end
19
+ end
@@ -18,4 +18,5 @@ require "policy_manager/config"
18
18
 
19
19
  module PolicyManager
20
20
  # Your code goes here...
21
+
21
22
  end
@@ -10,7 +10,8 @@ module PolicyManager
10
10
  :admin_email_inbox,
11
11
  :error_notifier,
12
12
  :user_resource,
13
- :admin_user_resource
13
+ :admin_user_resource,
14
+ :paperclip
14
15
 
15
16
  def self.setup
16
17
  @@rules = []
@@ -1,6 +1,7 @@
1
1
  module PolicyManager
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace PolicyManager
4
+ config.autoload_paths << File.expand_path("lib/generators", __dir__)
4
5
  config.generators do |g|
5
6
  g.test_framework :rspec, :fixture => false
6
7
  #g.fixture_replacement :factory_girl, :dir => 'spec/factories'
@@ -1,3 +1,3 @@
1
1
  module PolicyManager
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -1,4 +1,4 @@
1
1
  # desc "Explaining what the task does"
2
- # task :terms do
3
- # # Task goes here
4
- # end
2
+ task :terms do
3
+ # Task goes here
4
+ end
@@ -0,0 +1,9 @@
1
+ class PaperclipFieldsToPortability < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :policy_manager_portability_requests, :attachment, :string
4
+ add_column :policy_manager_portability_requests , :attachment_file_name, :string
5
+ add_column :policy_manager_portability_requests , :attachment_file_size, :string
6
+ add_column :policy_manager_portability_requests , :attachment_file_content_type, :string
7
+ add_column :policy_manager_portability_requests, :attachment_content_type, :string
8
+ end
9
+ end
@@ -1,6 +1,8 @@
1
1
  Rails.application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
+ config.active_storage.service = :local
5
+
4
6
  # In the development environment your application's code is reloaded on
5
7
  # every request. This slows down response time but is perfect for development
6
8
  # since you don't have to restart the web server when you make code changes.
@@ -1,6 +1,7 @@
1
1
  Rails.application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
+ config.active_storage.service = :local
4
5
  # The test environment is used exclusively to run your application's
5
6
  # test suite. You never need to work with it otherwise. Remember that
6
7
  # your test database is "scratch space" for the test suite and is wiped
@@ -0,0 +1,7 @@
1
+ local:
2
+ service: Disk
3
+ root: <%= Rails.root.join("storage") %>
4
+
5
+ test:
6
+ service: Disk
7
+ root: <%= Rails.root.join("tmp/storage") %>
Binary file
@@ -0,0 +1,27 @@
1
+ # This migration comes from active_storage (originally 20170806125915)
2
+
3
+ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
4
+ def change
5
+ create_table :active_storage_blobs do |t|
6
+ t.string :key, null: false
7
+ t.string :filename, null: false
8
+ t.string :content_type
9
+ t.text :metadata
10
+ t.bigint :byte_size, null: false
11
+ t.string :checksum, null: false
12
+ t.datetime :created_at, null: false
13
+
14
+ t.index [ :key ], unique: true
15
+ end
16
+
17
+ create_table :active_storage_attachments do |t|
18
+ t.string :name, null: false
19
+ t.references :record, null: false, polymorphic: true, index: false
20
+ t.references :blob, null: false
21
+
22
+ t.datetime :created_at, null: false
23
+
24
+ t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ class PaperclipFieldsToPortability < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :policy_manager_portability_requests, :attachment, :string
4
+ add_column :policy_manager_portability_requests , :attachment_file_name, :string
5
+ add_column :policy_manager_portability_requests , :attachment_file_size, :string
6
+ add_column :policy_manager_portability_requests , :attachment_file_content_type, :string
7
+ add_column :policy_manager_portability_requests, :attachment_content_type, :string
8
+ end
9
+ end
@@ -10,7 +10,28 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2019_02_21_193827) do
13
+ ActiveRecord::Schema.define(version: 2019_02_21_193828) do
14
+
15
+ create_table "active_storage_attachments", force: :cascade do |t|
16
+ t.string "name", null: false
17
+ t.string "record_type", null: false
18
+ t.integer "record_id", null: false
19
+ t.integer "blob_id", null: false
20
+ t.datetime "created_at", null: false
21
+ t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
22
+ t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
23
+ end
24
+
25
+ create_table "active_storage_blobs", force: :cascade do |t|
26
+ t.string "key", null: false
27
+ t.string "filename", null: false
28
+ t.string "content_type"
29
+ t.text "metadata"
30
+ t.bigint "byte_size", null: false
31
+ t.string "checksum", null: false
32
+ t.datetime "created_at", null: false
33
+ t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
34
+ end
14
35
 
15
36
  create_table "another_users", force: :cascade do |t|
16
37
  t.string "email"
@@ -441,3 +441,147 @@ Filter chain halted as :set_blob rendered or redirected
441
441
  Completed 404 Not Found in 1ms (ActiveRecord: 0.0ms)
442
442
 
443
443
 
444
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
445
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
446
+ boolean values and must have old data converted to 1 and 0 (its native boolean
447
+ serialization) before setting this flag to true. Conversion can be accomplished
448
+ by setting up a rake task which runs
449
+
450
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
451
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
452
+
453
+ for all models and all boolean columns, after which the flag must be set to
454
+ true by adding the following to your application.rb file:
455
+
456
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
457
+ (called from require at bin/rails:4)
458
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
459
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
460
+ boolean values and must have old data converted to 1 and 0 (its native boolean
461
+ serialization) before setting this flag to true. Conversion can be accomplished
462
+ by setting up a rake task which runs
463
+
464
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
465
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
466
+
467
+ for all models and all boolean columns, after which the flag must be set to
468
+ true by adding the following to your application.rb file:
469
+
470
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
471
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
472
+  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
473
+ Migrating to CreateActiveStorageTables (20190221193828)
474
+  (0.1ms) begin transaction
475
+  (0.5ms) SELECT sqlite_version(*)
476
+  (1.3ms) CREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)
477
+  (0.1ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")
478
+  (0.2ms) CREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL)
479
+  (0.1ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")
480
+  (0.1ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")
481
+ ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20190221193828"]]
482
+  (2.4ms) commit transaction
483
+ Migrating to PortabilityRequests (20190612175312)
484
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
485
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
486
+ boolean values and must have old data converted to 1 and 0 (its native boolean
487
+ serialization) before setting this flag to true. Conversion can be accomplished
488
+ by setting up a rake task which runs
489
+
490
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
491
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
492
+
493
+ for all models and all boolean columns, after which the flag must be set to
494
+ true by adding the following to your application.rb file:
495
+
496
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
497
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
498
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
499
+ Migrating to AddAttachmentPortabilityRequests (20190612175312)
500
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
501
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
502
+ boolean values and must have old data converted to 1 and 0 (its native boolean
503
+ serialization) before setting this flag to true. Conversion can be accomplished
504
+ by setting up a rake task which runs
505
+
506
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
507
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
508
+
509
+ for all models and all boolean columns, after which the flag must be set to
510
+ true by adding the following to your application.rb file:
511
+
512
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
513
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
514
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
515
+ Migrating to AddAttachmentPortabilityRequests (20190612175312)
516
+  (0.1ms) begin transaction
517
+  (0.1ms) rollback transaction
518
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
519
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
520
+ boolean values and must have old data converted to 1 and 0 (its native boolean
521
+ serialization) before setting this flag to true. Conversion can be accomplished
522
+ by setting up a rake task which runs
523
+
524
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
525
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
526
+
527
+ for all models and all boolean columns, after which the flag must be set to
528
+ true by adding the following to your application.rb file:
529
+
530
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
531
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
532
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
533
+ Migrating to AddAttachmentPortabilityRequests (20190612175312)
534
+  (0.1ms) begin transaction
535
+  (0.1ms) rollback transaction
536
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
537
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
538
+ boolean values and must have old data converted to 1 and 0 (its native boolean
539
+ serialization) before setting this flag to true. Conversion can be accomplished
540
+ by setting up a rake task which runs
541
+
542
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
543
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
544
+
545
+ for all models and all boolean columns, after which the flag must be set to
546
+ true by adding the following to your application.rb file:
547
+
548
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
549
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
550
+  (0.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
551
+ ActiveRecord::InternalMetadata Load (0.8ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
552
+  (0.1ms) begin transaction
553
+  (0.0ms) commit transaction
554
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
555
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
556
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
557
+ boolean values and must have old data converted to 1 and 0 (its native boolean
558
+ serialization) before setting this flag to true. Conversion can be accomplished
559
+ by setting up a rake task which runs
560
+
561
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
562
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
563
+
564
+ for all models and all boolean columns, after which the flag must be set to
565
+ true by adding the following to your application.rb file:
566
+
567
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
568
+ (called from load at /Users/michelson/.rvm/gems/ruby-2.5.0/bin/rake:23)
569
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
570
+ Migrating to PaperclipFieldsToPortability (20190221193829)
571
+  (0.1ms) begin transaction
572
+  (0.4ms) ALTER TABLE "policy_manager_portability_requests" ADD "attachment" varchar
573
+  (0.1ms) rollback transaction
574
+ DEPRECATION WARNING: Leaving `ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer`
575
+ set to false is deprecated. SQLite databases have used 't' and 'f' to serialize
576
+ boolean values and must have old data converted to 1 and 0 (its native boolean
577
+ serialization) before setting this flag to true. Conversion can be accomplished
578
+ by setting up a rake task which runs
579
+
580
+ ExampleModel.where("boolean_column = 't'").update_all(boolean_column: 1)
581
+ ExampleModel.where("boolean_column = 'f'").update_all(boolean_column: 0)
582
+
583
+ for all models and all boolean columns, after which the flag must be set to
584
+ true by adding the following to your application.rb file:
585
+
586
+ Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
587
+ (called from require at bin/rails:4)