localtower 0.5.0 → 2.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.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +129 -33
  3. data/app/assets/stylesheets/application.css +68 -0
  4. data/app/controllers/localtower/pages_controller.rb +30 -30
  5. data/app/javascript/application.js +46 -0
  6. data/app/javascript/components/DarkSelect.js +115 -0
  7. data/app/javascript/components/ModernTooltip.js +26 -0
  8. data/app/javascript/components/NewMigrationForm.js +687 -0
  9. data/app/javascript/components/NewModelForm.js +432 -0
  10. data/app/javascript/components/data/Stores.js +294 -0
  11. data/app/views/layouts/localtower/application.html.erb +77 -80
  12. data/app/views/localtower/_migration.html.erb +30 -0
  13. data/app/views/localtower/pages/_alert_no_models.html.erb +3 -0
  14. data/app/views/localtower/pages/migrations.html.erb +25 -87
  15. data/app/views/localtower/pages/new_migration.html.erb +40 -0
  16. data/app/views/localtower/pages/new_model.html.erb +21 -0
  17. data/config/routes.rb +5 -5
  18. data/lib/localtower/engine.rb +5 -2
  19. data/lib/localtower/generators/migration.rb +219 -161
  20. data/lib/localtower/generators/model.rb +59 -26
  21. data/lib/localtower/generators/service_objects/insert_array.rb +25 -0
  22. data/lib/localtower/generators/service_objects/insert_defaults.rb +85 -43
  23. data/lib/localtower/generators/service_objects/insert_foreign_keys.rb +35 -0
  24. data/lib/localtower/generators/service_objects/insert_indexes.rb +103 -0
  25. data/lib/localtower/generators/service_objects/insert_nullable.rb +25 -0
  26. data/lib/localtower/status.rb +4 -2
  27. data/lib/localtower/tools.rb +31 -23
  28. data/lib/localtower/version.rb +1 -1
  29. data/lib/localtower.rb +0 -6
  30. data/public/com/favicon-64.png +0 -0
  31. data/public/com/twitter-cover-1.png +0 -0
  32. data/public/com/twitter-cover-2.png +0 -0
  33. data/public/fonts/Circular/CircularStd-Black.otf +0 -0
  34. data/public/fonts/Circular/CircularStd-BlackItalic.otf +0 -0
  35. data/public/fonts/Circular/CircularStd-Bold.otf +0 -0
  36. data/public/fonts/Circular/CircularStd-BoldItalic.otf +0 -0
  37. data/public/fonts/Circular/CircularStd-Book.otf +0 -0
  38. data/public/fonts/Circular/CircularStd-BookItalic.otf +0 -0
  39. data/public/fonts/Circular/CircularStd-Light Italic.otf +0 -0
  40. data/public/fonts/Circular/CircularStd-Light.otf +0 -0
  41. data/public/fonts/Circular/CircularStd-Medium.otf +0 -0
  42. data/public/fonts/Circular/CircularStd-MediumItalic.otf +0 -0
  43. data/public/fonts/Circular/Read Me.txt +5 -0
  44. data/public/fonts/Circular/www.dfonts.org.url +2 -0
  45. data/public/javascripts/application.js +30830 -0
  46. data/public/javascripts/application.js.map +7 -0
  47. data/public/screenshots/v0.1.1/1_schema.png +0 -0
  48. data/public/screenshots/v0.1.1/2_models_1.png +0 -0
  49. data/public/screenshots/v0.1.1/2_models_2.png +0 -0
  50. data/public/screenshots/v0.1.1/3_relations.png +0 -0
  51. data/public/screenshots/v0.1.1/4_migrations.png +0 -0
  52. data/public/screenshots/v0.1.6/1_schema.png +0 -0
  53. data/public/screenshots/v0.1.6/2_models_1.png +0 -0
  54. data/public/screenshots/v0.1.6/3_relations.png +0 -0
  55. data/public/screenshots/v0.1.6/4_migrations.png +0 -0
  56. data/public/screenshots/v0.1.6/5_capture.png +0 -0
  57. data/public/screenshots/v1.0.0/migrations.png +0 -0
  58. data/public/screenshots/v1.0.0/models.png +0 -0
  59. data/public/screenshots/v1.0.0/new_migration.png +0 -0
  60. data/public/screenshots/v1.0.0/new_model.png +0 -0
  61. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.30.jpg +0 -0
  62. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.42.jpg +0 -0
  63. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.54.jpg +0 -0
  64. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.21.jpg +0 -0
  65. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.28.jpg +0 -0
  66. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.51.jpg +0 -0
  67. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.49.09.jpg +0 -0
  68. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.04.jpg +0 -0
  69. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.11.jpg +0 -0
  70. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.19.jpg +0 -0
  71. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.47.jpg +0 -0
  72. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.48.jpg +0 -0
  73. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.02.jpg +0 -0
  74. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.18.jpg +0 -0
  75. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.26.jpg +0 -0
  76. data/public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.38.jpg +0 -0
  77. data/public/screenshots/v2.0.0/migrations.png +0 -0
  78. data/public/screenshots/v2.0.0/new_migration.png +0 -0
  79. data/public/screenshots/v2.0.0/new_model.png +0 -0
  80. data/public/stylesheets/application.css +1179 -0
  81. data/public/vendor/jquery-3.7.1.min.js +2 -0
  82. data/public/vendor/lucide.min.js +12 -0
  83. data/public/vendor/monokai-sublime.css +80 -0
  84. data/public/vendor/rails-ujs.min.js +8 -0
  85. data/spec/dummy/Gemfile +1 -3
  86. data/spec/dummy/Gemfile.lock +140 -111
  87. data/spec/dummy/config/database.yml +4 -6
  88. data/spec/dummy/config/environments/development.rb +1 -0
  89. data/spec/dummy/db/migrate/20241118233214_create_users.rb +9 -0
  90. data/spec/dummy/db/migrate/20241118233233_add_column_titme_for_user.rb +6 -0
  91. data/spec/dummy/db/schema.rb +4 -8
  92. data/spec/dummy/lib/tasks/reset.rake +16 -0
  93. data/spec/dummy/log/development.log +21437 -4475
  94. data/spec/dummy/log/localtower.log +586 -139
  95. data/spec/dummy/log/test.log +716 -0
  96. data/spec/dummy/test/index.html +38 -0
  97. data/spec/dummy/tmp/cache/sessions/localtower/726/FE1/_session_id%3A2%3A%3A69d6764784f832ea25700ea2f242210f3f8d94b48912b0f09ffc44311f0376eb +0 -0
  98. data/spec/dummy/tmp/cache/sessions/localtower/77E/121/_session_id%3A2%3A%3A0b3c1fe7154461ba023ba6c81dd1b999348757880b505f4b082faed263a627f9 +1 -0
  99. data/spec/dummy/tmp/cache/sessions/localtower/7EB/8A1/_session_id%3A2%3A%3Af88237c1d157546a5dcde894fd6c1410162a8eba318748d4ac573ee75e40df16 +0 -0
  100. data/spec/dummy/tmp/local_secret.txt +1 -0
  101. data/spec/dummy/tmp/pids/server.pid +1 -0
  102. data/spec/factories/migration.rb +87 -66
  103. data/spec/factories/model.rb +54 -20
  104. data/spec/lib/localtower/generators/migration_spec.rb +28 -63
  105. data/spec/lib/localtower/generators/model_spec.rb +96 -24
  106. data/spec/lib/localtower/generators/service_objects/insert_array_spec.rb +47 -0
  107. data/spec/lib/localtower/generators/service_objects/insert_defaults_spec.rb +30 -35
  108. data/spec/lib/localtower/generators/service_objects/insert_foreign_keys_spec.rb +101 -0
  109. data/spec/lib/localtower/generators/service_objects/insert_indexes_spec.rb +90 -0
  110. data/spec/lib/localtower/generators/service_objects/insert_nullable_spec.rb +61 -0
  111. data/spec/lib/localtower/tools_spec.rb +1 -11
  112. data/spec/spec_helper.rb +10 -6
  113. metadata +130 -237
  114. data/app/views/localtower/pages/_migrations.html.erb +0 -57
  115. data/app/views/localtower/pages/models.html.erb +0 -80
  116. data/app/views/localtower/pages/schema.html.erb +0 -67
  117. data/public/css/app.css +0 -104
  118. data/public/js/app.js +0 -192
  119. data/public/light-bootstrap-dashboard-master/assets/css/animate.min.css +0 -6
  120. data/public/light-bootstrap-dashboard-master/assets/css/bootstrap.min.css +0 -5
  121. data/public/light-bootstrap-dashboard-master/assets/css/demo.css +0 -61
  122. data/public/light-bootstrap-dashboard-master/assets/css/light-bootstrap-dashboard.css +0 -2789
  123. data/public/light-bootstrap-dashboard-master/assets/css/pe-icon-7-stroke.css +0 -632
  124. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.eot +0 -0
  125. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.svg +0 -212
  126. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.ttf +0 -0
  127. data/public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.woff +0 -0
  128. data/public/light-bootstrap-dashboard-master/assets/img/default-avatar.png +0 -0
  129. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-0.jpg +0 -0
  130. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-1.jpg +0 -0
  131. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-2.jpg +0 -0
  132. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-3.jpg +0 -0
  133. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-4.jpg +0 -0
  134. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-5.jpg +0 -0
  135. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-6.jpg +0 -0
  136. data/public/light-bootstrap-dashboard-master/assets/img/faces/face-7.jpg +0 -0
  137. data/public/light-bootstrap-dashboard-master/assets/img/faces/tim_vector.jpe +0 -0
  138. data/public/light-bootstrap-dashboard-master/assets/img/favicon.ico +0 -0
  139. data/public/light-bootstrap-dashboard-master/assets/img/loading-bubbles.svg +0 -14
  140. data/public/light-bootstrap-dashboard-master/assets/img/mask.png +0 -0
  141. data/public/light-bootstrap-dashboard-master/assets/img/new_logo.png +0 -0
  142. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-1.jpg +0 -0
  143. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-2.jpg +0 -0
  144. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-3.jpg +0 -0
  145. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-4.jpg +0 -0
  146. data/public/light-bootstrap-dashboard-master/assets/img/sidebar-5.jpg +0 -0
  147. data/public/light-bootstrap-dashboard-master/assets/img/tim_80x80.png +0 -0
  148. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-checkbox-radio-switch.js +0 -502
  149. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-notify.js +0 -404
  150. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap-select.js +0 -438
  151. data/public/light-bootstrap-dashboard-master/assets/js/bootstrap.min.js +0 -7
  152. data/public/light-bootstrap-dashboard-master/assets/js/chartist.min.js +0 -9
  153. data/public/light-bootstrap-dashboard-master/assets/js/demo.js +0 -152
  154. data/public/light-bootstrap-dashboard-master/assets/js/jquery-1.10.2.js +0 -9789
  155. data/public/light-bootstrap-dashboard-master/assets/js/light-bootstrap-dashboard.js +0 -179
  156. data/public/logo-localtower-white-300.png +0 -0
  157. data/public/logo-localtower-white.png +0 -0
  158. data/public/logo-localtower.png +0 -0
  159. data/public/vendor/font-awesome.min.css +0 -4
  160. data/public/vendor/highlight-js-default.min.css +0 -9
  161. data/spec/dummy/db/migrate/20221115190039_create_users.rb +0 -13
  162. data/spec/dummy/db/migrate/20221115193020_change_users.rb +0 -8
  163. data/spec/dummy/db/migrate/20221115193532_change_users_at1668540931.rb +0 -5
  164. data/spec/dummy/db/migrate/20221115193605_change_users_at1668540964.rb +0 -5
  165. data/spec/dummy/db/migrate/20221115193637_change_users_at1668540996.rb +0 -5
  166. data/spec/dummy/db/migrate/20221115193642_change_users_at1668541001.rb +0 -5
  167. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-Y/-YOiiBKqc2UODHFjctm8xc7xFoZaL7zOjWQj6qQ2wyE.cache +0 -1
  168. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-d/-dwueM4vmPt8L51S3jeSyg_AjGDcj0GUN6pDpCA1gCg.cache +0 -3
  169. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0g/0gaJnJQdtd2ACbihXxn8OnjLWlDjnQ_WxfgOpbiLzhg.cache +0 -1
  170. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0r/0rFCsCV9kZnEYtZZ6sfig8329OU31bqjecDFqSVank8.cache +0 -1
  171. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1J/1J2k_CpnQE3d-PZAQwOVGQALGkta4qVvhdsKjgG0e4Q.cache +0 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2p/2pYVH2Z_syqh6ok8QYxJNKxXpx1Iwppf6JGElZI0gpw.cache +0 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3W/3WBmqd-2V6q5N-jvbyp-tlcfn3aHYMwBppbOUm7x4qg.cache +0 -1
  174. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4K/4KFPlHkhdDW0riGUmlbaR-kmDz6JUnQvY6fwW8qsdaE.cache +0 -3
  175. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6x/6xMeRWmLpNK_flx6-JA3KazvUxSCxyPxHv9Zm3eC26Q.cache +0 -1
  176. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7d/7dNqI_dCDJLJmI1oM4xwFp9nRRNOem-4P4OD7PMyz2E.cache +0 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8X/8XquhxVcp5A8QquLtxO8NgKTMJch0eqQmzFmRGIZP6I.cache +0 -1
  178. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ah/AhdfXXtU63kXS4TnsH2Vi1yWgVkIEeV8Z8XA68hrNQc.cache +0 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bt/BtAePnwLSGw82xUGI7wuhWDfuwarOQVS91YqCsweMcs.cache +0 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bx/BxzoG0KxeNLac4xTNeJv3qfeytbNBw58xj2zD-xdbrE.cache +0 -2
  181. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CC/CCD0ROPX0yxHwNpVZmuP8ZNtgQpaVCMXpdzC0Wb5n24.cache +0 -1
  182. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/DS/DS43oxBg6K5PMWLn2mTy_4EnxI03ehHkxpjV7NCi8yM.cache +0 -1
  183. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/Do83AoOat5W-c1g7piDGy2GMmffsY6JY0Qfuh5PY3GM.cache +0 -2
  184. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EI/EI0Nxk-VRATWstMuVCVc0_GdYlQ-a0dx6n2g0l3vIik.cache +0 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EN/ENhJnzJAU2IK-7aHqubj9N8Jo_UTmjG_VEQqyIkolQ8.cache +0 -1
  186. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fc/FcS6VUHN3Bd4pHGqd5NHA8jA4OLwWrU94s3b4GGxX9c.cache +0 -1
  187. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/G0/G0kukI-r0q0Vbrg6e_jnYJoYcOX8K__h-mwKbCf4twE.cache +0 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/I1/I1Jw08-mz8xzgrgi6giCzpf1UmzGTSbl4eJEw4DAoJM.cache +0 -1
  189. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/IV/IVOO1dXBmgjieDk__g57p6aYt0Z3CmfTa32jhegoyko.cache +0 -3
  190. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JY/JYPmv5WP4wxdI9EKEEPkK_fVtqeSLfmint_5E8fQLQ8.cache +0 -1
  191. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/MX/MXI3KxaQPZGImSvCNZ_TbQVruWCJ3E0xiVxza1ZCAjM.cache +0 -1
  192. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OU/OUoioCqXALK909jXPV3VSyCJIdNC7bsogUfdnRTpc5o.cache +0 -1
  193. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PH/PHjtqNLUPAUDiSlu5AbPjlIo20mOGNm0uNjMLhX2NvM.cache +0 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RC/RC9vfALY5K634pTeau0BAhTHl7d5_5yA3tM-QTLiKtI.cache +0 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RG/RG1PrmlixwaUlG8BV0kcm_3F7OQekxsrLYjBdf403-k.cache +0 -2
  196. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ut/UtoMO6n6FHTpRCGk9VfxlfTI2Ao2GYJ_6kMzx3B9VH8.cache +0 -1
  197. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/VE/VExnbpDk3LxYdPk3htUrZQXPI8NK_zlKtSFfVXJlxU4.cache +0 -1
  198. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wm/WmKTjykiU-Tx_Faf5zduEeEQ-DozAs5omKToM2l1cZM.cache +0 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/X-/X-KjhDPd0nI155N_FaxFSgaOiYo0_ytqlmkBlLM7ayw.cache +0 -1
  200. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XX/XXVhj-O91tJ5c8pz7DQlTABOv8TIRVg5haw9VOq9HuI.cache +0 -1
  201. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YC/YCiifo5NCMwDChFqYFiV4EaYEx8hy3Efle1PsGbIdak.cache +0 -1
  202. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ya/YayMISAqD-Y3vBFywwKrXbUovGf5o77HUF5s8mnQgO0.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Zl/Zl-NEb0aDLmZ9gN4gdY1OYlbUXD4JhkFY_y23m55zmo.cache +0 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_h/_hnjPptBeD3GP5B0iJR6pvyVkiMiq-o2TxaYmGf9KJo.cache +0 -3
  205. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_p/_poEF6QbTPYJiQCFGoXxIXjmvcn6T0I87ElzJGHguk0.cache +0 -1
  206. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aa/aaSj2zt8ddc87nZqTpOI9gRCKVnoalXKFBww7t4t3Kg.cache +0 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bZ/bZHWUkrOLp0WM_Ogo36Qjt4cxDt-rOFgtcj4LNB-BVE.cache +0 -1
  208. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cP/cPSNG_663TNT944Rke919luRS6FtpMwVc_7aDph645w.cache +0 -1
  209. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ce/ceq8fcZGIoqWrCl9vrCRrywEdx42iy9PrGG9CwFSIF4.cache +0 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cl/cljhP0Jc018nLnG1rpdg-FUf6mlIqrQYvXTNXTNG9Bw.cache +0 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dm/dmod3fTZdoKso2FGM5RTQtb4kTB6vywsiXLWDygYFN4.cache +0 -1
  212. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dy/dySDGcUTqlKx2MTvOmIEP-WzhyhCfU5xhN9qgxbz3rI.cache +0 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gQ/gQYdmEzbLjTcFCnsfzXzEmeminOchF263snAk3IvXM0.cache +0 -1
  214. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gh/ghvuMAqccBGljlmEaI3Gt5tH5rEg6hseKYMYfRMkHdY.cache +0 -1
  215. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gt/gt8QC7k92A4hXA3HlCpQulW73tqd6x63I3uT-YrGMj0.cache +0 -1
  216. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hf/hfVg-y7dPSQKbb7V3I7M5w7IpOhDiIB2H31d2tmbZMU.cache +0 -0
  217. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iF/iFLwyhZIu1Jxm77NUT2qWeTDMmyELW4U85t9rGE_KVg.cache +0 -0
  218. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kF/kFlIcBBnSyKE00OjpM90pqSn93mLMUv9esz86nrO-Cs.cache +0 -1
  219. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/MazNt_5OaYexRuZnccZZ_7AONlxn1a4W3KdWyHyBdws.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/ma3w08gnDTeqwY2-C9BlToxA6-AS8bvXlu-nBiz0UYs.cache +0 -1
  221. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -2
  222. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -2
  223. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pv/pv6tV3CDkIAmLXdU8EPLlNEkXAKJPufVD4VP30o4fWo.cache +0 -0
  224. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache +0 -2
  225. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sY/sYvTb1uPWWmnHJNXKuW_xSco-aUb-rN2f0J35zSIzuc.cache +0 -1
  226. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/su/suQ_jjDxRiIn4VEqFJYKaBWJILaeGKBvoTv49XNX0vo.cache +0 -1
  227. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/u8/u8IrW5IIQ7espwk2Vpk23zheL9YZA0tnbKq9X7E-WA0.cache +0 -1
  228. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wh/whzETExjcZCkn4msasD2aylgfhfpKPZrNxTkY-SOIDg.cache +0 -2
  229. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +0 -2
  230. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/y6/y6oxsJD3pAY9ph1_5M-77uiEjTVw8BheLZNygCKPm1g.cache +0 -1
  231. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yH/yHZ-a1J23ZCf2n5mEHINMz23Iec2cLGTKauW7k4yGTE.cache +0 -0
  232. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/z7/z7KfUWYoSaGq8tQ5mbHwyfXyT3Pa4FWKJswHcIdJuds.cache +0 -1
  233. data/spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zu/zuExWc5WHxeOUPZUKHl9a9ZRmN50g7jMOD28macn6M0.cache +0 -0
  234. data/spec/lib/localtower/generators/relation_spec.rb +0 -65
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localtower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Le Nouaille Diez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-16 00:00:00.000000000 Z
11
+ date: 2024-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -103,65 +103,52 @@ extra_rdoc_files: []
103
103
  files:
104
104
  - README.md
105
105
  - Rakefile
106
+ - app/assets/stylesheets/application.css
106
107
  - app/controllers/localtower/application_controller.rb
107
108
  - app/controllers/localtower/pages_controller.rb
108
109
  - app/helpers/localtower/application_helper.rb
110
+ - app/javascript/application.js
111
+ - app/javascript/components/DarkSelect.js
112
+ - app/javascript/components/ModernTooltip.js
113
+ - app/javascript/components/NewMigrationForm.js
114
+ - app/javascript/components/NewModelForm.js
115
+ - app/javascript/components/data/Stores.js
109
116
  - app/views/layouts/localtower/application.html.erb
110
- - app/views/localtower/pages/_migrations.html.erb
117
+ - app/views/localtower/_migration.html.erb
118
+ - app/views/localtower/pages/_alert_no_models.html.erb
111
119
  - app/views/localtower/pages/migrations.html.erb
112
- - app/views/localtower/pages/models.html.erb
113
- - app/views/localtower/pages/schema.html.erb
120
+ - app/views/localtower/pages/new_migration.html.erb
121
+ - app/views/localtower/pages/new_model.html.erb
114
122
  - config/routes.rb
115
123
  - lib/localtower.rb
116
124
  - lib/localtower/engine.rb
117
125
  - lib/localtower/generators/migration.rb
118
126
  - lib/localtower/generators/model.rb
127
+ - lib/localtower/generators/service_objects/insert_array.rb
119
128
  - lib/localtower/generators/service_objects/insert_defaults.rb
129
+ - lib/localtower/generators/service_objects/insert_foreign_keys.rb
130
+ - lib/localtower/generators/service_objects/insert_indexes.rb
131
+ - lib/localtower/generators/service_objects/insert_nullable.rb
120
132
  - lib/localtower/status.rb
121
133
  - lib/localtower/tools.rb
122
134
  - lib/localtower/version.rb
123
- - public/css/app.css
124
- - public/js/app.js
125
- - public/light-bootstrap-dashboard-master/assets/css/animate.min.css
126
- - public/light-bootstrap-dashboard-master/assets/css/bootstrap.min.css
127
- - public/light-bootstrap-dashboard-master/assets/css/demo.css
128
- - public/light-bootstrap-dashboard-master/assets/css/light-bootstrap-dashboard.css
129
- - public/light-bootstrap-dashboard-master/assets/css/pe-icon-7-stroke.css
130
- - public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.eot
131
- - public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.svg
132
- - public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.ttf
133
- - public/light-bootstrap-dashboard-master/assets/fonts/Pe-icon-7-stroke.woff
134
- - public/light-bootstrap-dashboard-master/assets/img/default-avatar.png
135
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-0.jpg
136
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-1.jpg
137
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-2.jpg
138
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-3.jpg
139
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-4.jpg
140
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-5.jpg
141
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-6.jpg
142
- - public/light-bootstrap-dashboard-master/assets/img/faces/face-7.jpg
143
- - public/light-bootstrap-dashboard-master/assets/img/faces/tim_vector.jpe
144
- - public/light-bootstrap-dashboard-master/assets/img/favicon.ico
145
- - public/light-bootstrap-dashboard-master/assets/img/loading-bubbles.svg
146
- - public/light-bootstrap-dashboard-master/assets/img/mask.png
147
- - public/light-bootstrap-dashboard-master/assets/img/new_logo.png
148
- - public/light-bootstrap-dashboard-master/assets/img/sidebar-1.jpg
149
- - public/light-bootstrap-dashboard-master/assets/img/sidebar-2.jpg
150
- - public/light-bootstrap-dashboard-master/assets/img/sidebar-3.jpg
151
- - public/light-bootstrap-dashboard-master/assets/img/sidebar-4.jpg
152
- - public/light-bootstrap-dashboard-master/assets/img/sidebar-5.jpg
153
- - public/light-bootstrap-dashboard-master/assets/img/tim_80x80.png
154
- - public/light-bootstrap-dashboard-master/assets/js/bootstrap-checkbox-radio-switch.js
155
- - public/light-bootstrap-dashboard-master/assets/js/bootstrap-notify.js
156
- - public/light-bootstrap-dashboard-master/assets/js/bootstrap-select.js
157
- - public/light-bootstrap-dashboard-master/assets/js/bootstrap.min.js
158
- - public/light-bootstrap-dashboard-master/assets/js/chartist.min.js
159
- - public/light-bootstrap-dashboard-master/assets/js/demo.js
160
- - public/light-bootstrap-dashboard-master/assets/js/jquery-1.10.2.js
161
- - public/light-bootstrap-dashboard-master/assets/js/light-bootstrap-dashboard.js
162
- - public/logo-localtower-white-300.png
163
- - public/logo-localtower-white.png
164
- - public/logo-localtower.png
135
+ - public/com/favicon-64.png
136
+ - public/com/twitter-cover-1.png
137
+ - public/com/twitter-cover-2.png
138
+ - public/fonts/Circular/CircularStd-Black.otf
139
+ - public/fonts/Circular/CircularStd-BlackItalic.otf
140
+ - public/fonts/Circular/CircularStd-Bold.otf
141
+ - public/fonts/Circular/CircularStd-BoldItalic.otf
142
+ - public/fonts/Circular/CircularStd-Book.otf
143
+ - public/fonts/Circular/CircularStd-BookItalic.otf
144
+ - public/fonts/Circular/CircularStd-Light Italic.otf
145
+ - public/fonts/Circular/CircularStd-Light.otf
146
+ - public/fonts/Circular/CircularStd-Medium.otf
147
+ - public/fonts/Circular/CircularStd-MediumItalic.otf
148
+ - public/fonts/Circular/Read Me.txt
149
+ - public/fonts/Circular/www.dfonts.org.url
150
+ - public/javascripts/application.js
151
+ - public/javascripts/application.js.map
165
152
  - public/screenshots/v0.1.1/1_schema.png
166
153
  - public/screenshots/v0.1.1/2_models_1.png
167
154
  - public/screenshots/v0.1.1/2_models_2.png
@@ -172,10 +159,36 @@ files:
172
159
  - public/screenshots/v0.1.6/3_relations.png
173
160
  - public/screenshots/v0.1.6/4_migrations.png
174
161
  - public/screenshots/v0.1.6/5_capture.png
175
- - public/vendor/font-awesome.min.css
176
- - public/vendor/highlight-js-default.min.css
162
+ - public/screenshots/v1.0.0/migrations.png
163
+ - public/screenshots/v1.0.0/models.png
164
+ - public/screenshots/v1.0.0/new_migration.png
165
+ - public/screenshots/v1.0.0/new_model.png
166
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.30.jpg
167
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.42.jpg
168
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.44.54.jpg
169
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.21.jpg
170
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.28.jpg
171
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.48.51.jpg
172
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.49.09.jpg
173
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.04.jpg
174
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.11.jpg
175
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.50.19.jpg
176
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.47.jpg
177
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.51.48.jpg
178
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.02.jpg
179
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.18.jpg
180
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.26.jpg
181
+ - public/screenshots/v2.0.0/Screenshot 2024-11-18 at 22.52.38.jpg
182
+ - public/screenshots/v2.0.0/migrations.png
183
+ - public/screenshots/v2.0.0/new_migration.png
184
+ - public/screenshots/v2.0.0/new_model.png
185
+ - public/stylesheets/application.css
177
186
  - public/vendor/highlight.min.js
187
+ - public/vendor/jquery-3.7.1.min.js
188
+ - public/vendor/lucide.min.js
178
189
  - public/vendor/masonry.pkgd.min.js
190
+ - public/vendor/monokai-sublime.css
191
+ - public/vendor/rails-ujs.min.js
179
192
  - spec/dummy/Gemfile
180
193
  - spec/dummy/Gemfile.lock
181
194
  - spec/dummy/README.md
@@ -227,95 +240,35 @@ files:
227
240
  - spec/dummy/config/routes.rb
228
241
  - spec/dummy/config/secrets.yml
229
242
  - spec/dummy/config/spring.rb
230
- - spec/dummy/db/migrate/20221115190039_create_users.rb
231
- - spec/dummy/db/migrate/20221115193020_change_users.rb
232
- - spec/dummy/db/migrate/20221115193532_change_users_at1668540931.rb
233
- - spec/dummy/db/migrate/20221115193605_change_users_at1668540964.rb
234
- - spec/dummy/db/migrate/20221115193637_change_users_at1668540996.rb
235
- - spec/dummy/db/migrate/20221115193642_change_users_at1668541001.rb
243
+ - spec/dummy/db/migrate/20241118233214_create_users.rb
244
+ - spec/dummy/db/migrate/20241118233233_add_column_titme_for_user.rb
236
245
  - spec/dummy/db/schema.rb
246
+ - spec/dummy/lib/tasks/reset.rake
237
247
  - spec/dummy/log/development.log
238
248
  - spec/dummy/log/localtower.log
239
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-Y/-YOiiBKqc2UODHFjctm8xc7xFoZaL7zOjWQj6qQ2wyE.cache
240
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-d/-dwueM4vmPt8L51S3jeSyg_AjGDcj0GUN6pDpCA1gCg.cache
241
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0g/0gaJnJQdtd2ACbihXxn8OnjLWlDjnQ_WxfgOpbiLzhg.cache
242
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0r/0rFCsCV9kZnEYtZZ6sfig8329OU31bqjecDFqSVank8.cache
243
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1J/1J2k_CpnQE3d-PZAQwOVGQALGkta4qVvhdsKjgG0e4Q.cache
244
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2p/2pYVH2Z_syqh6ok8QYxJNKxXpx1Iwppf6JGElZI0gpw.cache
245
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3W/3WBmqd-2V6q5N-jvbyp-tlcfn3aHYMwBppbOUm7x4qg.cache
246
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4K/4KFPlHkhdDW0riGUmlbaR-kmDz6JUnQvY6fwW8qsdaE.cache
247
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6x/6xMeRWmLpNK_flx6-JA3KazvUxSCxyPxHv9Zm3eC26Q.cache
248
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7d/7dNqI_dCDJLJmI1oM4xwFp9nRRNOem-4P4OD7PMyz2E.cache
249
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8X/8XquhxVcp5A8QquLtxO8NgKTMJch0eqQmzFmRGIZP6I.cache
250
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ah/AhdfXXtU63kXS4TnsH2Vi1yWgVkIEeV8Z8XA68hrNQc.cache
251
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bt/BtAePnwLSGw82xUGI7wuhWDfuwarOQVS91YqCsweMcs.cache
252
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bx/BxzoG0KxeNLac4xTNeJv3qfeytbNBw58xj2zD-xdbrE.cache
253
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CC/CCD0ROPX0yxHwNpVZmuP8ZNtgQpaVCMXpdzC0Wb5n24.cache
254
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/DS/DS43oxBg6K5PMWLn2mTy_4EnxI03ehHkxpjV7NCi8yM.cache
255
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/Do83AoOat5W-c1g7piDGy2GMmffsY6JY0Qfuh5PY3GM.cache
256
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EI/EI0Nxk-VRATWstMuVCVc0_GdYlQ-a0dx6n2g0l3vIik.cache
257
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EN/ENhJnzJAU2IK-7aHqubj9N8Jo_UTmjG_VEQqyIkolQ8.cache
258
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fc/FcS6VUHN3Bd4pHGqd5NHA8jA4OLwWrU94s3b4GGxX9c.cache
259
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/G0/G0kukI-r0q0Vbrg6e_jnYJoYcOX8K__h-mwKbCf4twE.cache
260
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/I1/I1Jw08-mz8xzgrgi6giCzpf1UmzGTSbl4eJEw4DAoJM.cache
261
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/IV/IVOO1dXBmgjieDk__g57p6aYt0Z3CmfTa32jhegoyko.cache
262
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JY/JYPmv5WP4wxdI9EKEEPkK_fVtqeSLfmint_5E8fQLQ8.cache
263
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/MX/MXI3KxaQPZGImSvCNZ_TbQVruWCJ3E0xiVxza1ZCAjM.cache
264
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OU/OUoioCqXALK909jXPV3VSyCJIdNC7bsogUfdnRTpc5o.cache
265
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PH/PHjtqNLUPAUDiSlu5AbPjlIo20mOGNm0uNjMLhX2NvM.cache
266
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RC/RC9vfALY5K634pTeau0BAhTHl7d5_5yA3tM-QTLiKtI.cache
267
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RG/RG1PrmlixwaUlG8BV0kcm_3F7OQekxsrLYjBdf403-k.cache
268
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ut/UtoMO6n6FHTpRCGk9VfxlfTI2Ao2GYJ_6kMzx3B9VH8.cache
269
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/VE/VExnbpDk3LxYdPk3htUrZQXPI8NK_zlKtSFfVXJlxU4.cache
270
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wm/WmKTjykiU-Tx_Faf5zduEeEQ-DozAs5omKToM2l1cZM.cache
271
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/X-/X-KjhDPd0nI155N_FaxFSgaOiYo0_ytqlmkBlLM7ayw.cache
272
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XX/XXVhj-O91tJ5c8pz7DQlTABOv8TIRVg5haw9VOq9HuI.cache
273
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YC/YCiifo5NCMwDChFqYFiV4EaYEx8hy3Efle1PsGbIdak.cache
274
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ya/YayMISAqD-Y3vBFywwKrXbUovGf5o77HUF5s8mnQgO0.cache
275
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Zl/Zl-NEb0aDLmZ9gN4gdY1OYlbUXD4JhkFY_y23m55zmo.cache
276
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_h/_hnjPptBeD3GP5B0iJR6pvyVkiMiq-o2TxaYmGf9KJo.cache
277
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_p/_poEF6QbTPYJiQCFGoXxIXjmvcn6T0I87ElzJGHguk0.cache
278
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aa/aaSj2zt8ddc87nZqTpOI9gRCKVnoalXKFBww7t4t3Kg.cache
279
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bZ/bZHWUkrOLp0WM_Ogo36Qjt4cxDt-rOFgtcj4LNB-BVE.cache
280
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cP/cPSNG_663TNT944Rke919luRS6FtpMwVc_7aDph645w.cache
281
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ce/ceq8fcZGIoqWrCl9vrCRrywEdx42iy9PrGG9CwFSIF4.cache
282
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cl/cljhP0Jc018nLnG1rpdg-FUf6mlIqrQYvXTNXTNG9Bw.cache
283
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dm/dmod3fTZdoKso2FGM5RTQtb4kTB6vywsiXLWDygYFN4.cache
284
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dy/dySDGcUTqlKx2MTvOmIEP-WzhyhCfU5xhN9qgxbz3rI.cache
285
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gQ/gQYdmEzbLjTcFCnsfzXzEmeminOchF263snAk3IvXM0.cache
286
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gh/ghvuMAqccBGljlmEaI3Gt5tH5rEg6hseKYMYfRMkHdY.cache
287
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gt/gt8QC7k92A4hXA3HlCpQulW73tqd6x63I3uT-YrGMj0.cache
288
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hf/hfVg-y7dPSQKbb7V3I7M5w7IpOhDiIB2H31d2tmbZMU.cache
289
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iF/iFLwyhZIu1Jxm77NUT2qWeTDMmyELW4U85t9rGE_KVg.cache
290
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kF/kFlIcBBnSyKE00OjpM90pqSn93mLMUv9esz86nrO-Cs.cache
291
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/MazNt_5OaYexRuZnccZZ_7AONlxn1a4W3KdWyHyBdws.cache
292
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/ma3w08gnDTeqwY2-C9BlToxA6-AS8bvXlu-nBiz0UYs.cache
293
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache
294
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
295
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pv/pv6tV3CDkIAmLXdU8EPLlNEkXAKJPufVD4VP30o4fWo.cache
296
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache
297
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sY/sYvTb1uPWWmnHJNXKuW_xSco-aUb-rN2f0J35zSIzuc.cache
298
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/su/suQ_jjDxRiIn4VEqFJYKaBWJILaeGKBvoTv49XNX0vo.cache
299
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/u8/u8IrW5IIQ7espwk2Vpk23zheL9YZA0tnbKq9X7E-WA0.cache
300
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wh/whzETExjcZCkn4msasD2aylgfhfpKPZrNxTkY-SOIDg.cache
301
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache
302
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/y6/y6oxsJD3pAY9ph1_5M-77uiEjTVw8BheLZNygCKPm1g.cache
303
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yH/yHZ-a1J23ZCf2n5mEHINMz23Iec2cLGTKauW7k4yGTE.cache
304
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/z7/z7KfUWYoSaGq8tQ5mbHwyfXyT3Pa4FWKJswHcIdJuds.cache
305
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zu/zuExWc5WHxeOUPZUKHl9a9ZRmN50g7jMOD28macn6M0.cache
249
+ - spec/dummy/log/test.log
250
+ - spec/dummy/test/index.html
251
+ - spec/dummy/tmp/cache/sessions/localtower/726/FE1/_session_id%3A2%3A%3A69d6764784f832ea25700ea2f242210f3f8d94b48912b0f09ffc44311f0376eb
252
+ - spec/dummy/tmp/cache/sessions/localtower/77E/121/_session_id%3A2%3A%3A0b3c1fe7154461ba023ba6c81dd1b999348757880b505f4b082faed263a627f9
253
+ - spec/dummy/tmp/cache/sessions/localtower/7EB/8A1/_session_id%3A2%3A%3Af88237c1d157546a5dcde894fd6c1410162a8eba318748d4ac573ee75e40df16
254
+ - spec/dummy/tmp/local_secret.txt
255
+ - spec/dummy/tmp/pids/server.pid
306
256
  - spec/dummy/tmp/restart.txt
307
257
  - spec/factories/migration.rb
308
258
  - spec/factories/model.rb
309
259
  - spec/lib/localtower/generators/migration_spec.rb
310
260
  - spec/lib/localtower/generators/model_spec.rb
311
- - spec/lib/localtower/generators/relation_spec.rb
261
+ - spec/lib/localtower/generators/service_objects/insert_array_spec.rb
312
262
  - spec/lib/localtower/generators/service_objects/insert_defaults_spec.rb
263
+ - spec/lib/localtower/generators/service_objects/insert_foreign_keys_spec.rb
264
+ - spec/lib/localtower/generators/service_objects/insert_indexes_spec.rb
265
+ - spec/lib/localtower/generators/service_objects/insert_nullable_spec.rb
313
266
  - spec/lib/localtower/tools_spec.rb
314
267
  - spec/spec_helper.rb
315
268
  homepage: https://github.com/damln/localtower
316
269
  licenses: []
317
270
  metadata: {}
318
- post_install_message:
271
+ post_install_message:
319
272
  rdoc_options: []
320
273
  require_paths:
321
274
  - lib
@@ -330,144 +283,84 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
283
  - !ruby/object:Gem::Version
331
284
  version: '0'
332
285
  requirements: []
333
- rubygems_version: 3.1.6
334
- signing_key:
286
+ rubygems_version: 3.5.20
287
+ signing_key:
335
288
  specification_version: 4
336
289
  summary: Manage your models, relations, and migrations from a simple UI.
337
290
  test_files:
338
- - spec/spec_helper.rb
291
+ - spec/dummy/Gemfile
292
+ - spec/dummy/Gemfile.lock
293
+ - spec/dummy/README.md
294
+ - spec/dummy/Rakefile
295
+ - spec/dummy/app/assets/config/manifest.js
296
+ - spec/dummy/app/assets/javascripts/application.js
297
+ - spec/dummy/app/assets/javascripts/cable.js
298
+ - spec/dummy/app/assets/stylesheets/application.css
299
+ - spec/dummy/app/channels/application_cable/channel.rb
300
+ - spec/dummy/app/channels/application_cable/connection.rb
301
+ - spec/dummy/app/controllers/application_controller.rb
302
+ - spec/dummy/app/controllers/pages_controller.rb
303
+ - spec/dummy/app/helpers/application_helper.rb
304
+ - spec/dummy/app/jobs/application_job.rb
339
305
  - spec/dummy/app/mailers/application_mailer.rb
340
306
  - spec/dummy/app/models/application_record.rb
341
307
  - spec/dummy/app/models/user.rb
342
- - spec/dummy/app/jobs/application_job.rb
343
- - spec/dummy/app/controllers/application_controller.rb
344
- - spec/dummy/app/controllers/pages_controller.rb
345
308
  - spec/dummy/app/views/layouts/application.html.erb
346
309
  - spec/dummy/app/views/layouts/mailer.html.erb
347
310
  - spec/dummy/app/views/layouts/mailer.text.erb
348
311
  - spec/dummy/app/views/pages/home.html.erb
349
- - spec/dummy/app/assets/config/manifest.js
350
- - spec/dummy/app/assets/javascripts/cable.js
351
- - spec/dummy/app/assets/javascripts/application.js
352
- - spec/dummy/app/assets/stylesheets/application.css
353
- - spec/dummy/app/helpers/application_helper.rb
354
- - spec/dummy/app/channels/application_cable/connection.rb
355
- - spec/dummy/app/channels/application_cable/channel.rb
356
- - spec/dummy/bin/update
312
+ - spec/dummy/bin/bundle
313
+ - spec/dummy/bin/rails
357
314
  - spec/dummy/bin/rake
358
315
  - spec/dummy/bin/setup
359
- - spec/dummy/bin/bundle
360
316
  - spec/dummy/bin/spring
361
- - spec/dummy/bin/rails
362
- - spec/dummy/config/secrets.yml
363
- - spec/dummy/config/routes.rb
364
- - spec/dummy/config/locales/en.yml
317
+ - spec/dummy/bin/update
318
+ - spec/dummy/config/application.rb
319
+ - spec/dummy/config/boot.rb
365
320
  - spec/dummy/config/cable.yml
366
- - spec/dummy/config/environments/production.rb
321
+ - spec/dummy/config/database.yml
322
+ - spec/dummy/config/environment.rb
367
323
  - spec/dummy/config/environments/development.rb
324
+ - spec/dummy/config/environments/production.rb
368
325
  - spec/dummy/config/environments/test.rb
369
- - spec/dummy/config/spring.rb
370
- - spec/dummy/config/environment.rb
371
- - spec/dummy/config/application.rb
372
- - spec/dummy/config/puma.rb
373
- - spec/dummy/config/database.yml
374
- - spec/dummy/config/boot.rb
375
326
  - spec/dummy/config/initializers/application_controller_renderer.rb
327
+ - spec/dummy/config/initializers/assets.rb
376
328
  - spec/dummy/config/initializers/backtrace_silencers.rb
377
- - spec/dummy/config/initializers/mime_types.rb
329
+ - spec/dummy/config/initializers/cookies_serializer.rb
378
330
  - spec/dummy/config/initializers/filter_parameter_logging.rb
331
+ - spec/dummy/config/initializers/inflections.rb
332
+ - spec/dummy/config/initializers/mime_types.rb
333
+ - spec/dummy/config/initializers/new_framework_defaults.rb
379
334
  - spec/dummy/config/initializers/session_store.rb
380
335
  - spec/dummy/config/initializers/wrap_parameters.rb
381
- - spec/dummy/config/initializers/new_framework_defaults.rb
382
- - spec/dummy/config/initializers/assets.rb
383
- - spec/dummy/config/initializers/cookies_serializer.rb
384
- - spec/dummy/config/initializers/inflections.rb
336
+ - spec/dummy/config/locales/en.yml
337
+ - spec/dummy/config/puma.rb
338
+ - spec/dummy/config/routes.rb
339
+ - spec/dummy/config/secrets.yml
340
+ - spec/dummy/config/spring.rb
385
341
  - spec/dummy/config.ru
386
- - spec/dummy/README.md
387
- - spec/dummy/Rakefile
342
+ - spec/dummy/db/migrate/20241118233214_create_users.rb
343
+ - spec/dummy/db/migrate/20241118233233_add_column_titme_for_user.rb
388
344
  - spec/dummy/db/schema.rb
389
- - spec/dummy/db/migrate/20221115193637_change_users_at1668540996.rb
390
- - spec/dummy/db/migrate/20221115193605_change_users_at1668540964.rb
391
- - spec/dummy/db/migrate/20221115193532_change_users_at1668540931.rb
392
- - spec/dummy/db/migrate/20221115193020_change_users.rb
393
- - spec/dummy/db/migrate/20221115193642_change_users_at1668541001.rb
394
- - spec/dummy/db/migrate/20221115190039_create_users.rb
395
- - spec/dummy/Gemfile
396
- - spec/dummy/log/localtower.log
345
+ - spec/dummy/lib/tasks/reset.rake
397
346
  - spec/dummy/log/development.log
398
- - spec/dummy/Gemfile.lock
399
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/3W/3WBmqd-2V6q5N-jvbyp-tlcfn3aHYMwBppbOUm7x4qg.cache
400
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/pv/pv6tV3CDkIAmLXdU8EPLlNEkXAKJPufVD4VP30o4fWo.cache
401
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/sY/sYvTb1uPWWmnHJNXKuW_xSco-aUb-rN2f0J35zSIzuc.cache
402
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_h/_hnjPptBeD3GP5B0iJR6pvyVkiMiq-o2TxaYmGf9KJo.cache
403
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/u8/u8IrW5IIQ7espwk2Vpk23zheL9YZA0tnbKq9X7E-WA0.cache
404
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ut/UtoMO6n6FHTpRCGk9VfxlfTI2Ao2GYJ_6kMzx3B9VH8.cache
405
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Zl/Zl-NEb0aDLmZ9gN4gdY1OYlbUXD4JhkFY_y23m55zmo.cache
406
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/YC/YCiifo5NCMwDChFqYFiV4EaYEx8hy3Efle1PsGbIdak.cache
407
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gh/ghvuMAqccBGljlmEaI3Gt5tH5rEg6hseKYMYfRMkHdY.cache
408
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gt/gt8QC7k92A4hXA3HlCpQulW73tqd6x63I3uT-YrGMj0.cache
409
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/ma3w08gnDTeqwY2-C9BlToxA6-AS8bvXlu-nBiz0UYs.cache
410
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ma/MazNt_5OaYexRuZnccZZ_7AONlxn1a4W3KdWyHyBdws.cache
411
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bx/BxzoG0KxeNLac4xTNeJv3qfeytbNBw58xj2zD-xdbrE.cache
412
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Do/Do83AoOat5W-c1g7piDGy2GMmffsY6JY0Qfuh5PY3GM.cache
413
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/DS/DS43oxBg6K5PMWLn2mTy_4EnxI03ehHkxpjV7NCi8yM.cache
414
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/G0/G0kukI-r0q0Vbrg6e_jnYJoYcOX8K__h-mwKbCf4twE.cache
415
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache
416
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Fc/FcS6VUHN3Bd4pHGqd5NHA8jA4OLwWrU94s3b4GGxX9c.cache
417
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/I1/I1Jw08-mz8xzgrgi6giCzpf1UmzGTSbl4eJEw4DAoJM.cache
418
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/iF/iFLwyhZIu1Jxm77NUT2qWeTDMmyELW4U85t9rGE_KVg.cache
419
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Wm/WmKTjykiU-Tx_Faf5zduEeEQ-DozAs5omKToM2l1cZM.cache
420
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/4K/4KFPlHkhdDW0riGUmlbaR-kmDz6JUnQvY6fwW8qsdaE.cache
421
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/7d/7dNqI_dCDJLJmI1oM4xwFp9nRRNOem-4P4OD7PMyz2E.cache
422
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RG/RG1PrmlixwaUlG8BV0kcm_3F7OQekxsrLYjBdf403-k.cache
423
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache
424
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/X-/X-KjhDPd0nI155N_FaxFSgaOiYo0_ytqlmkBlLM7ayw.cache
425
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/VE/VExnbpDk3LxYdPk3htUrZQXPI8NK_zlKtSFfVXJlxU4.cache
426
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ya/YayMISAqD-Y3vBFywwKrXbUovGf5o77HUF5s8mnQgO0.cache
427
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/yH/yHZ-a1J23ZCf2n5mEHINMz23Iec2cLGTKauW7k4yGTE.cache
428
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0r/0rFCsCV9kZnEYtZZ6sfig8329OU31bqjecDFqSVank8.cache
429
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/y6/y6oxsJD3pAY9ph1_5M-77uiEjTVw8BheLZNygCKPm1g.cache
430
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/zu/zuExWc5WHxeOUPZUKHl9a9ZRmN50g7jMOD28macn6M0.cache
431
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/0g/0gaJnJQdtd2ACbihXxn8OnjLWlDjnQ_WxfgOpbiLzhg.cache
432
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/z7/z7KfUWYoSaGq8tQ5mbHwyfXyT3Pa4FWKJswHcIdJuds.cache
433
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/_p/_poEF6QbTPYJiQCFGoXxIXjmvcn6T0I87ElzJGHguk0.cache
434
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/su/suQ_jjDxRiIn4VEqFJYKaBWJILaeGKBvoTv49XNX0vo.cache
435
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/PH/PHjtqNLUPAUDiSlu5AbPjlIo20mOGNm0uNjMLhX2NvM.cache
436
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/6x/6xMeRWmLpNK_flx6-JA3KazvUxSCxyPxHv9Zm3eC26Q.cache
437
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
438
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/hf/hfVg-y7dPSQKbb7V3I7M5w7IpOhDiIB2H31d2tmbZMU.cache
439
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Bt/BtAePnwLSGw82xUGI7wuhWDfuwarOQVS91YqCsweMcs.cache
440
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dm/dmod3fTZdoKso2FGM5RTQtb4kTB6vywsiXLWDygYFN4.cache
441
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/bZ/bZHWUkrOLp0WM_Ogo36Qjt4cxDt-rOFgtcj4LNB-BVE.cache
442
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-Y/-YOiiBKqc2UODHFjctm8xc7xFoZaL7zOjWQj6qQ2wyE.cache
443
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/dy/dySDGcUTqlKx2MTvOmIEP-WzhyhCfU5xhN9qgxbz3rI.cache
444
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/-d/-dwueM4vmPt8L51S3jeSyg_AjGDcj0GUN6pDpCA1gCg.cache
445
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/gQ/gQYdmEzbLjTcFCnsfzXzEmeminOchF263snAk3IvXM0.cache
446
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/Ah/AhdfXXtU63kXS4TnsH2Vi1yWgVkIEeV8Z8XA68hrNQc.cache
447
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/aa/aaSj2zt8ddc87nZqTpOI9gRCKVnoalXKFBww7t4t3Kg.cache
448
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/kF/kFlIcBBnSyKE00OjpM90pqSn93mLMUv9esz86nrO-Cs.cache
449
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/MX/MXI3KxaQPZGImSvCNZ_TbQVruWCJ3E0xiVxza1ZCAjM.cache
450
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/JY/JYPmv5WP4wxdI9EKEEPkK_fVtqeSLfmint_5E8fQLQ8.cache
451
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/IV/IVOO1dXBmgjieDk__g57p6aYt0Z3CmfTa32jhegoyko.cache
452
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/CC/CCD0ROPX0yxHwNpVZmuP8ZNtgQpaVCMXpdzC0Wb5n24.cache
453
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EN/ENhJnzJAU2IK-7aHqubj9N8Jo_UTmjG_VEQqyIkolQ8.cache
454
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/EI/EI0Nxk-VRATWstMuVCVc0_GdYlQ-a0dx6n2g0l3vIik.cache
455
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cP/cPSNG_663TNT944Rke919luRS6FtpMwVc_7aDph645w.cache
456
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/OU/OUoioCqXALK909jXPV3VSyCJIdNC7bsogUfdnRTpc5o.cache
457
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/cl/cljhP0Jc018nLnG1rpdg-FUf6mlIqrQYvXTNXTNG9Bw.cache
458
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/ce/ceq8fcZGIoqWrCl9vrCRrywEdx42iy9PrGG9CwFSIF4.cache
459
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/RC/RC9vfALY5K634pTeau0BAhTHl7d5_5yA3tM-QTLiKtI.cache
460
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/XX/XXVhj-O91tJ5c8pz7DQlTABOv8TIRVg5haw9VOq9HuI.cache
461
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/8X/8XquhxVcp5A8QquLtxO8NgKTMJch0eqQmzFmRGIZP6I.cache
462
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache
463
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/1J/1J2k_CpnQE3d-PZAQwOVGQALGkta4qVvhdsKjgG0e4Q.cache
464
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/2p/2pYVH2Z_syqh6ok8QYxJNKxXpx1Iwppf6JGElZI0gpw.cache
465
- - spec/dummy/tmp/cache/assets/sprockets/v4.0.0/wh/whzETExjcZCkn4msasD2aylgfhfpKPZrNxTkY-SOIDg.cache
347
+ - spec/dummy/log/localtower.log
348
+ - spec/dummy/log/test.log
349
+ - spec/dummy/test/index.html
350
+ - spec/dummy/tmp/cache/sessions/localtower/726/FE1/_session_id%3A2%3A%3A69d6764784f832ea25700ea2f242210f3f8d94b48912b0f09ffc44311f0376eb
351
+ - spec/dummy/tmp/cache/sessions/localtower/77E/121/_session_id%3A2%3A%3A0b3c1fe7154461ba023ba6c81dd1b999348757880b505f4b082faed263a627f9
352
+ - spec/dummy/tmp/cache/sessions/localtower/7EB/8A1/_session_id%3A2%3A%3Af88237c1d157546a5dcde894fd6c1410162a8eba318748d4ac573ee75e40df16
353
+ - spec/dummy/tmp/local_secret.txt
354
+ - spec/dummy/tmp/pids/server.pid
466
355
  - spec/dummy/tmp/restart.txt
467
356
  - spec/factories/migration.rb
468
357
  - spec/factories/model.rb
469
- - spec/lib/localtower/tools_spec.rb
470
358
  - spec/lib/localtower/generators/migration_spec.rb
471
- - spec/lib/localtower/generators/service_objects/insert_defaults_spec.rb
472
359
  - spec/lib/localtower/generators/model_spec.rb
473
- - spec/lib/localtower/generators/relation_spec.rb
360
+ - spec/lib/localtower/generators/service_objects/insert_array_spec.rb
361
+ - spec/lib/localtower/generators/service_objects/insert_defaults_spec.rb
362
+ - spec/lib/localtower/generators/service_objects/insert_foreign_keys_spec.rb
363
+ - spec/lib/localtower/generators/service_objects/insert_indexes_spec.rb
364
+ - spec/lib/localtower/generators/service_objects/insert_nullable_spec.rb
365
+ - spec/lib/localtower/tools_spec.rb
366
+ - spec/spec_helper.rb
@@ -1,57 +0,0 @@
1
- <div class="card">
2
- <div class="header">
3
- <div class="container-fluid">
4
- <div class="row">
5
- <div class="col-md-6"><h4 class="title">Pending migrations</h4></div>
6
- <div class="col-md-6">
7
- <div class="pull-right">
8
- <% if migrations.any? %>
9
- <%= form_tag actions_path, class: "form" do %>
10
- <button name="cmd" type="submit" value="rails db:migrate" class="btn btn-warning" data-selector="submit">
11
- Run Pending Migrations (<code>bundle exec rails db:migrate</code>)
12
- </button>
13
- <% end %>
14
- <% end %>
15
- </div>
16
- </div>
17
- </div>
18
- </div>
19
- </div>
20
-
21
- <div class="content">
22
- <% if migrations.any? %>
23
- <% migrations.each do |entry| %>
24
- <div class="container-fluid">
25
- <div class="row">
26
- <div class="col-md-8">
27
- <h5 style="color: <%= entry['status'] == :todo ? 'red' : 'green' %>;">
28
- <% if entry['status'] == :todo %>
29
- <button type="button" class="btn btn-danger btn-xs">PENDING</button>
30
- <% end %>
31
-
32
- <a href="<%= file_link(entry['file_full_path']) %>"><%= entry['name'] %></a>
33
- </h5>
34
- </div>
35
- </div>
36
-
37
- <div class="row">
38
- <div class="col-md-12">
39
- <% if entry['status'] == :todo %>
40
- <pre><code class="language-ruby"><%= entry['content'] %></code></pre>
41
- <% end %>
42
- </div>
43
- </div>
44
- </div>
45
- <% end %>
46
-
47
- <% else %>
48
- <div class="container-fluid">
49
- <div class="row">
50
- <div class="col-md-8">
51
- No pending migrations.
52
- </div>
53
- </div>
54
- </div>
55
- <% end %>
56
- </div>
57
- </div>
@@ -1,80 +0,0 @@
1
- <% content_for :title do %>Models<% end %>
2
-
3
- <div class="row">
4
- <div class="col-md-12">
5
- <div class="card">
6
- <div class="header">
7
- <h4 class="title"></h4>
8
- </div>
9
-
10
- <div class="content">
11
- <%= form_tag models_path, class: "form" do %>
12
-
13
- <div class="row">
14
- <div class="col-md-6">
15
- <div class="form-group">
16
- <label>Name of the Model</label>
17
- <input type="text" data-sain name="models[model_name]" class="form-control">
18
- </div>
19
- </div>
20
- </div>
21
-
22
- <table class="table table-hover table-striped">
23
- <thead>
24
- <th>Column Name</th>
25
- <th>Type</th>
26
- <th>Default</th>
27
- <th>Index?</th>
28
- <th>Can be null?</th>
29
- <th></th>
30
- </thead>
31
-
32
- <tbody data-selector="tbody">
33
- <tr data-selector="tr">
34
- <td>
35
- <input type="text" name="models[attributes][][attribute_name]" class="form-control">
36
- </td>
37
- <td>
38
- <%= select_tag "models[attributes][][attribute_type]", options_for_select(::Localtower::Generators::Migration::TYPES), class: "form-control" %>
39
- </td>
40
- <td>
41
- <%= select_tag "models[attributes][][defaults]", options_for_select(::Localtower::Generators::Migration::DEFAULTS), include_blank: true, class: "form-control" %>
42
- </td>
43
- <td>
44
- <input type="checkbox" value="true" name="models[attributes][][index]" class="form-control">
45
- </td>
46
- <td>
47
- <input type="checkbox" value="true" name="models[attributes][][nullable]" class="form-control" checked>
48
- </td>
49
- <td>
50
- <div class="pull-right">
51
- <button class="btn btn-danger btn-xs pointer" data-selector="remove">Remove</button>
52
- </div>
53
- </td>
54
- </tr>
55
- </tbody>
56
- </table>
57
-
58
- <div class="row">
59
- <div class="col-md-12 text-center">
60
- <i class="pe-7s-plus pointer" data-selector="duplicate" style="font-size: 3em;"></i>
61
- </div>
62
- </div>
63
-
64
- <hr>
65
-
66
- <!-- multiple lines: -->
67
- <div class="row">
68
- <div class="col-md-12 text-center">
69
- <button type="submit" value="true" class="btn btn-success" data-selector="submit">
70
- Create the model Only
71
- </button>
72
- </div>
73
- </div>
74
- <% end %>
75
- </div>
76
- </div>
77
-
78
- <%= render partial: "migrations", locals: { migrations: @migrations } %>
79
- </div>
80
- </div>