sorbet-rails 0.7.4 → 0.7.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/ci-master.yml +28 -0
  4. data/.github/workflows/ci.yml +26 -0
  5. data/.github/workflows/publish-gem.yml +18 -0
  6. data/CONTRIBUTING.md +1 -2
  7. data/Gemfile +5 -9
  8. data/README.md +18 -4
  9. data/Rakefile +13 -24
  10. data/lib/sorbet-rails/active_record_rbi_formatter.rb +12 -9
  11. data/lib/sorbet-rails/dependent_gem_rbis/activerecord.rbi +4 -0
  12. data/lib/sorbet-rails/dependent_gem_rbis/parlour.rbi +1 -1
  13. data/lib/sorbet-rails/gem_plugins/aasm_plugin.rb +50 -0
  14. data/lib/sorbet-rails/gem_plugins/money_rails_plugin.rb +76 -0
  15. data/lib/sorbet-rails/job_rbi_formatter.rb +1 -1
  16. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +25 -1
  17. data/lib/sorbet-rails/model_plugins/active_record_serialized_attribute.rb +3 -2
  18. data/lib/sorbet-rails/model_plugins/base.rb +8 -1
  19. data/lib/sorbet-rails/model_plugins/custom_finder_methods.rb +1 -1
  20. data/lib/sorbet-rails/model_plugins/plugins.rb +6 -0
  21. data/lib/sorbet-rails/model_utils.rb +14 -7
  22. data/lib/sorbet-rails/rails_mixins/custom_finder_methods.rb +4 -0
  23. data/lib/sorbet-rails/railtie.rb +1 -1
  24. data/lib/sorbet-rails/routes_rbi_formatter.rb +8 -0
  25. data/lib/sorbet-rails/tasks/rails_rbi.rake +12 -8
  26. data/sorbet-rails.gemspec +2 -2
  27. data/spec/bin/run_all_specs.sh +3 -4
  28. data/spec/bin/run_spec.sh +4 -1
  29. data/spec/generators/rails-template.rb +3 -20
  30. data/spec/generators/sorbet_test_cases.rb +26 -4
  31. data/spec/rails_helper.rb +5 -5
  32. data/spec/rake_rails_rbi_models_spec.rb +11 -4
  33. data/spec/sorbet_spec.rb +2 -1
  34. data/spec/support/v5.2/Gemfile +1 -3
  35. data/spec/support/v5.2/Gemfile.lock +66 -71
  36. data/spec/support/v5.2/app/controllers/application_controller.rb +1 -1
  37. data/spec/support/v5.2/app/mailers/application_mailer.rb +1 -1
  38. data/spec/support/v5.2/app/mailers/daily_prophet_mailer.rb +1 -1
  39. data/spec/support/v5.2/app/mailers/hogwarts_acceptance_mailer.rb +1 -1
  40. data/spec/support/v5.2/app/models/spell_book.rb +1 -1
  41. data/spec/support/v5.2/app/models/wand.rb +1 -1
  42. data/spec/support/v5.2/app/models/wizard.rb +1 -1
  43. data/spec/support/v5.2/config/environments/development.rb +1 -1
  44. data/spec/support/v5.2/config/environments/production.rb +1 -1
  45. data/spec/support/v5.2/config/environments/test.rb +1 -1
  46. data/spec/support/v5.2/config/routes.rb +1 -1
  47. data/spec/support/v5.2/sorbet_test_cases.rb +26 -4
  48. data/spec/support/v6.0/Gemfile +1 -1
  49. data/spec/support/v6.0/Gemfile.lock +81 -85
  50. data/spec/support/v6.0/app/mailers/application_mailer.rb +1 -1
  51. data/spec/support/v6.0/config/environments/development.rb +1 -1
  52. data/spec/support/v6.0/config/environments/test.rb +1 -1
  53. data/spec/support/v6.0/config/initializers/cookies_serializer.rb +1 -1
  54. data/spec/support/v6.0/config/initializers/sorbet_rails.rb +1 -1
  55. data/spec/support/v6.0/config/routes.rb +1 -1
  56. data/spec/support/v6.0/sorbet_test_cases.rb +26 -4
  57. data/spec/support/{v5.1 → v6.1}/.gitignore +13 -2
  58. data/spec/support/{v5.1 → v6.1}/Gemfile +12 -15
  59. data/spec/support/{v5.1 → v6.1}/Gemfile.lock +87 -59
  60. data/spec/support/{v5.0 → v6.1}/README.md +0 -0
  61. data/spec/support/{v5.0 → v6.1}/Rakefile +0 -0
  62. data/spec/support/{v5.0 → v6.1}/app/assets/config/manifest.js +0 -0
  63. data/spec/support/{v5.0 → v6.1}/app/assets/images/.keep +0 -0
  64. data/spec/support/{v5.1 → v6.1}/app/assets/stylesheets/application.css +0 -0
  65. data/spec/support/{v5.0 → v6.1}/app/controllers/application_controller.rb +1 -2
  66. data/spec/support/{v5.0 → v6.1}/app/controllers/concerns/.keep +0 -0
  67. data/spec/support/{v5.0 → v6.1}/app/helpers/application_helper.rb +0 -0
  68. data/spec/support/{v5.0 → v6.1}/app/helpers/bar_helper.rb +0 -0
  69. data/spec/support/{v5.0 → v6.1}/app/helpers/baz_helper.rb +0 -0
  70. data/spec/support/{v5.0 → v6.1}/app/helpers/foo_helper.rb +0 -0
  71. data/spec/support/v6.1/app/jobs/application_job.rb +8 -0
  72. data/spec/support/{v5.0 → v6.1}/app/jobs/award_house_point_hourglasses.rb +0 -0
  73. data/spec/support/{v5.1 → v6.1}/app/mailers/application_mailer.rb +1 -1
  74. data/spec/support/{v5.0 → v6.1}/app/mailers/daily_prophet_mailer.rb +0 -0
  75. data/spec/support/{v5.0 → v6.1}/app/mailers/hogwarts_acceptance_mailer.rb +0 -0
  76. data/spec/support/{v5.0 → v6.1}/app/models/application_record.rb +0 -0
  77. data/spec/support/{v5.0 → v6.1}/app/models/concerns/.keep +0 -0
  78. data/spec/support/{v5.0 → v6.1}/app/models/concerns/mythical.rb +0 -0
  79. data/spec/support/{v5.1 → v6.1}/app/models/headmaster.rb +1 -1
  80. data/spec/support/{v5.1 → v6.1}/app/models/potion.rb +0 -0
  81. data/spec/support/{v5.1 → v6.1}/app/models/robe.rb +0 -0
  82. data/spec/support/{v5.0 → v6.1}/app/models/school.rb +1 -1
  83. data/spec/support/{v5.1 → v6.1}/app/models/spell.rb +0 -0
  84. data/spec/support/{v5.0 → v6.1}/app/models/spell_book.rb +0 -0
  85. data/spec/support/{v5.0 → v6.1}/app/models/squib.rb +0 -0
  86. data/spec/support/{v5.1 → v6.1}/app/models/subject.rb +0 -0
  87. data/spec/support/{v5.0 → v6.1}/app/models/wand.rb +0 -0
  88. data/spec/support/{v5.0 → v6.1}/app/models/wizard.rb +2 -1
  89. data/spec/support/{v5.1 → v6.1}/app/views/layouts/application.html.erb +2 -1
  90. data/spec/support/{v5.0 → v6.1}/app/views/layouts/mailer.html.erb +0 -0
  91. data/spec/support/{v5.0 → v6.1}/app/views/layouts/mailer.text.erb +0 -0
  92. data/spec/support/v6.1/bin/bundle +114 -0
  93. data/spec/support/{v5.0 → v6.1}/bin/rails +0 -0
  94. data/spec/support/{v5.0 → v6.1}/bin/rake +0 -0
  95. data/spec/support/{v5.1 → v6.1}/bin/setup +6 -11
  96. data/spec/support/{v5.1 → v6.1}/config/application.rb +8 -4
  97. data/spec/support/{v5.0 → v6.1}/config/boot.rb +0 -0
  98. data/spec/support/{v5.1 → v6.1}/config/database.yml +1 -1
  99. data/spec/support/{v5.0 → v6.1}/config/environment.rb +0 -0
  100. data/spec/support/{v5.1 → v6.1}/config/environments/development.rb +12 -4
  101. data/spec/support/{v5.1 → v6.1}/config/environments/production.rb +29 -7
  102. data/spec/support/{v5.1 → v6.1}/config/environments/test.rb +13 -7
  103. data/spec/support/{v5.0 → v6.1}/config/initializers/application_controller_renderer.rb +0 -0
  104. data/spec/support/{v5.0 → v6.1}/config/initializers/backtrace_silencers.rb +0 -0
  105. data/spec/support/v6.1/config/initializers/content_security_policy.rb +29 -0
  106. data/spec/support/{v5.1 → v6.1}/config/initializers/cookies_serializer.rb +1 -1
  107. data/spec/support/{v5.0 → v6.1}/config/initializers/filter_parameter_logging.rb +0 -0
  108. data/spec/support/{v5.0 → v6.1}/config/initializers/inflections.rb +0 -0
  109. data/spec/support/{v5.0 → v6.1}/config/initializers/mime_types.rb +0 -0
  110. data/spec/support/{v5.0 → v6.1}/config/initializers/sorbet_rails.rb +1 -1
  111. data/spec/support/{v5.0 → v6.1}/config/initializers/wrap_parameters.rb +0 -0
  112. data/spec/support/{v5.1 → v6.1}/config/locales/en.yml +1 -1
  113. data/spec/support/{v5.1 → v6.1}/config/puma.rb +8 -26
  114. data/spec/support/v6.1/config/routes.rb +5 -0
  115. data/spec/support/v6.1/config/storage.yml +34 -0
  116. data/spec/support/{v5.0 → v6.1}/config.ru +0 -0
  117. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000001_create_wizards.rb +2 -2
  118. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000002_create_wands.rb +2 -2
  119. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000003_create_spell_books.rb +2 -2
  120. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000004_add_more_column_types_to_wands.rb +2 -2
  121. data/spec/support/v6.1/db/migrate/20190620000005_add_broom_to_wizard.rb +6 -0
  122. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000006_add_more_enums_to_wizard.rb +2 -2
  123. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000007_add_type_to_wizard.rb +2 -2
  124. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000008_add_robe_to_wizard.rb +2 -2
  125. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000009_add_school.rb +2 -2
  126. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000010_add_subject.rb +2 -2
  127. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000011_add_subjects_wizards.rb +2 -2
  128. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000012_add_spell.rb +2 -2
  129. data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000013_add_spells_spell_books.rb +2 -2
  130. data/spec/support/{v5.0 → v6.1}/db/migrate/20190620000014_create_headmasters.rb +2 -2
  131. data/spec/support/{v5.0 → v6.1}/db/migrate/20190620000015_add_serialized_to_wizards.rb +2 -2
  132. data/spec/support/{v5.1 → v6.1}/db/schema.rb +14 -11
  133. data/spec/support/{v5.0 → v6.1}/db/seeds.rb +0 -0
  134. data/spec/support/{v5.0 → v6.1}/lib/assets/.keep +0 -0
  135. data/spec/support/{v5.0 → v6.1}/lib/mythical_rbi_plugin.rb +0 -0
  136. data/spec/support/{v5.0 → v6.1}/lib/tasks/.keep +0 -0
  137. data/spec/support/{v5.0 → v6.1}/log/.keep +0 -0
  138. data/spec/support/{v5.0 → v6.1}/sorbet_test_cases.rb +26 -4
  139. data/spec/support/{v5.0/tmp → v6.1/storage}/.keep +0 -0
  140. data/spec/support/{v5.0/vendor/assets/stylesheets → v6.1/tmp}/.keep +0 -0
  141. data/spec/support/{v5.1/app/assets/images → v6.1/tmp/pids}/.keep +0 -0
  142. data/spec/support/{v5.1/app/controllers/concerns → v6.1/vendor}/.keep +0 -0
  143. data/spec/test_data/v5.2/expected_active_record_base.rbi +10 -10
  144. data/spec/test_data/v5.2/expected_active_record_relation.rbi +10 -10
  145. data/spec/test_data/v5.2/expected_attachment.rbi +13 -7
  146. data/spec/test_data/v5.2/expected_blob.rbi +13 -7
  147. data/spec/test_data/v5.2/expected_headmaster.rbi +13 -7
  148. data/spec/test_data/v5.2/expected_internal_metadata.rbi +13 -7
  149. data/spec/test_data/v5.2/expected_potion.rbi +13 -7
  150. data/spec/test_data/v5.2/expected_robe.rbi +13 -7
  151. data/spec/test_data/v5.2/expected_routes.rbi +8 -0
  152. data/spec/test_data/v5.2/expected_schema_migration.rbi +13 -7
  153. data/spec/test_data/v5.2/expected_school.rbi +13 -7
  154. data/spec/test_data/v5.2/expected_spell/habtm_spell_books.rbi +13 -7
  155. data/spec/test_data/v5.2/expected_spell.rbi +13 -7
  156. data/spec/test_data/v5.2/expected_spell_book/habtm_spells.rbi +13 -7
  157. data/spec/test_data/v5.2/expected_spell_book.rbi +13 -7
  158. data/spec/test_data/v5.2/expected_squib.rbi +15 -9
  159. data/spec/test_data/v5.2/expected_subject/habtm_wizards.rbi +13 -7
  160. data/spec/test_data/v5.2/expected_subject.rbi +13 -7
  161. data/spec/test_data/v5.2/expected_wand.rbi +13 -7
  162. data/spec/test_data/v5.2/expected_wizard/habtm_subjects.rbi +13 -7
  163. data/spec/test_data/v5.2/expected_wizard.rbi +15 -9
  164. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +15 -9
  165. data/spec/test_data/v6.0/expected_active_record_base.rbi +10 -10
  166. data/spec/test_data/v6.0/expected_active_record_relation.rbi +10 -10
  167. data/spec/test_data/v6.0/expected_attachment.rbi +13 -7
  168. data/spec/test_data/v6.0/expected_blob.rbi +13 -7
  169. data/spec/test_data/v6.0/expected_headmaster.rbi +13 -7
  170. data/spec/test_data/v6.0/expected_internal_metadata.rbi +13 -7
  171. data/spec/test_data/v6.0/expected_potion.rbi +13 -7
  172. data/spec/test_data/v6.0/expected_robe.rbi +13 -7
  173. data/spec/test_data/v6.0/expected_routes.rbi +8 -0
  174. data/spec/test_data/v6.0/expected_schema_migration.rbi +13 -7
  175. data/spec/test_data/v6.0/expected_school.rbi +13 -7
  176. data/spec/test_data/v6.0/expected_spell/habtm_spell_books.rbi +13 -7
  177. data/spec/test_data/v6.0/expected_spell.rbi +13 -7
  178. data/spec/test_data/v6.0/expected_spell_book/habtm_spells.rbi +13 -7
  179. data/spec/test_data/v6.0/expected_spell_book.rbi +13 -7
  180. data/spec/test_data/v6.0/expected_squib.rbi +15 -9
  181. data/spec/test_data/v6.0/expected_subject/habtm_wizards.rbi +13 -7
  182. data/spec/test_data/v6.0/expected_subject.rbi +13 -7
  183. data/spec/test_data/v6.0/expected_wand.rbi +13 -7
  184. data/spec/test_data/v6.0/expected_wizard/habtm_subjects.rbi +13 -7
  185. data/spec/test_data/v6.0/expected_wizard.rbi +15 -9
  186. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +15 -9
  187. data/spec/test_data/{v5.1 → v6.1}/expected_active_record_base.rbi +16 -16
  188. data/spec/test_data/{v5.1 → v6.1}/expected_active_record_relation.rbi +26 -29
  189. data/spec/test_data/{v5.0 → v6.1}/expected_application_job.rbi +0 -0
  190. data/spec/test_data/{v5.0 → v6.1}/expected_application_mailer.rbi +0 -0
  191. data/spec/test_data/v6.1/expected_attachment.rbi +334 -0
  192. data/spec/test_data/{v5.0 → v6.1}/expected_award_house_point_hourglasses.rbi +0 -0
  193. data/spec/test_data/v6.1/expected_blob.rbi +382 -0
  194. data/spec/test_data/{v5.0 → v6.1}/expected_custom_application_job.rbi +0 -0
  195. data/spec/test_data/{v5.0 → v6.1}/expected_custom_application_mailer.rbi +0 -0
  196. data/spec/test_data/{v5.0 → v6.1}/expected_custom_award_house_point_hourglasses.rbi +0 -0
  197. data/spec/test_data/{v5.0 → v6.1}/expected_custom_daily_prophet_mailer.rbi +0 -0
  198. data/spec/test_data/{v5.0 → v6.1}/expected_custom_hogwarts_acceptance_mailer.rbi +0 -0
  199. data/spec/test_data/{v5.0 → v6.1}/expected_daily_prophet_mailer.rbi +0 -0
  200. data/spec/test_data/{v5.1 → v6.1}/expected_habtm_subjects.rbi +48 -0
  201. data/spec/test_data/{v5.1 → v6.1}/expected_habtm_wizards.rbi +48 -0
  202. data/spec/test_data/{v5.1 → v6.1}/expected_headmaster.rbi +33 -3
  203. data/spec/test_data/{v5.0 → v6.1}/expected_helpers.rbi +0 -0
  204. data/spec/test_data/{v5.0 → v6.1}/expected_helpers_with_application_and_devise_helpers.rbi +0 -0
  205. data/spec/test_data/{v5.0 → v6.1}/expected_hogwarts_acceptance_mailer.rbi +0 -0
  206. data/spec/test_data/{v5.1 → v6.1}/expected_internal_metadata.rbi +33 -3
  207. data/spec/test_data/{v5.0 → v6.1}/expected_no_routes.rbi +0 -0
  208. data/spec/test_data/{v5.1 → v6.1}/expected_potion.rbi +33 -3
  209. data/spec/test_data/v6.1/expected_record.rbi +295 -0
  210. data/spec/test_data/{v5.1 → v6.1}/expected_robe.rbi +33 -3
  211. data/spec/test_data/v6.1/expected_routes.rbi +175 -0
  212. data/spec/test_data/{v5.1 → v6.1}/expected_schema_migration.rbi +33 -3
  213. data/spec/test_data/{v5.1 → v6.1}/expected_school.rbi +33 -3
  214. data/spec/test_data/{v5.1 → v6.1}/expected_spell/habtm_spell_books.rbi +33 -3
  215. data/spec/test_data/{v5.1 → v6.1}/expected_spell.rbi +33 -3
  216. data/spec/test_data/{v5.1 → v6.1}/expected_spell_book/habtm_spell_books.rbi +48 -0
  217. data/spec/test_data/{v5.1 → v6.1}/expected_spell_book/habtm_spells.rbi +33 -3
  218. data/spec/test_data/{v5.1 → v6.1}/expected_spell_book.rbi +69 -3
  219. data/spec/test_data/{v5.1 → v6.1}/expected_squib.rbi +505 -61
  220. data/spec/test_data/{v5.0 → v6.1}/expected_srb_tc_output.txt +0 -0
  221. data/spec/test_data/{v5.1 → v6.1}/expected_subject/habtm_wizards.rbi +33 -3
  222. data/spec/test_data/{v5.1 → v6.1}/expected_subject.rbi +33 -3
  223. data/spec/test_data/v6.1/expected_variant_record.rbi +370 -0
  224. data/spec/test_data/{v5.1 → v6.1}/expected_wand.rbi +99 -3
  225. data/spec/test_data/{v5.1 → v6.1}/expected_wizard/habtm_subjects.rbi +33 -3
  226. data/spec/test_data/{v5.1 → v6.1}/expected_wizard.rbi +505 -61
  227. data/spec/test_data/{v5.1 → v6.1}/expected_wizard_wo_spellbook.rbi +499 -55
  228. metadata +266 -501
  229. data/.travis.yml +0 -42
  230. data/lib/sorbet-rails/type_assert/actionpack.rbi +0 -4
  231. data/spec/support/v5.0/.gitignore +0 -21
  232. data/spec/support/v5.0/Gemfile +0 -37
  233. data/spec/support/v5.0/Gemfile.lock +0 -161
  234. data/spec/support/v5.0/app/assets/stylesheets/application.css +0 -15
  235. data/spec/support/v5.0/app/jobs/application_job.rb +0 -3
  236. data/spec/support/v5.0/app/mailers/application_mailer.rb +0 -5
  237. data/spec/support/v5.0/app/models/headmaster.rb +0 -8
  238. data/spec/support/v5.0/app/models/potion.rb +0 -6
  239. data/spec/support/v5.0/app/models/robe.rb +0 -4
  240. data/spec/support/v5.0/app/models/spell.rb +0 -5
  241. data/spec/support/v5.0/app/models/subject.rb +0 -5
  242. data/spec/support/v5.0/app/views/layouts/application.html.erb +0 -13
  243. data/spec/support/v5.0/bin/bundle +0 -3
  244. data/spec/support/v5.0/bin/setup +0 -34
  245. data/spec/support/v5.0/bin/update +0 -29
  246. data/spec/support/v5.0/config/application.rb +0 -27
  247. data/spec/support/v5.0/config/database.yml +0 -25
  248. data/spec/support/v5.0/config/environments/development.rb +0 -48
  249. data/spec/support/v5.0/config/environments/production.rb +0 -75
  250. data/spec/support/v5.0/config/environments/test.rb +0 -43
  251. data/spec/support/v5.0/config/initializers/cookies_serializer.rb +0 -6
  252. data/spec/support/v5.0/config/initializers/new_framework_defaults.rb +0 -27
  253. data/spec/support/v5.0/config/initializers/session_store.rb +0 -4
  254. data/spec/support/v5.0/config/locales/en.yml +0 -23
  255. data/spec/support/v5.0/config/puma.rb +0 -48
  256. data/spec/support/v5.0/config/routes.rb +0 -5
  257. data/spec/support/v5.0/db/migrate/20190620000001_create_wizards.rb +0 -14
  258. data/spec/support/v5.0/db/migrate/20190620000002_create_wands.rb +0 -12
  259. data/spec/support/v5.0/db/migrate/20190620000003_create_spell_books.rb +0 -10
  260. data/spec/support/v5.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +0 -17
  261. data/spec/support/v5.0/db/migrate/20190620000005_add_broom_to_wizard.rb +0 -6
  262. data/spec/support/v5.0/db/migrate/20190620000006_add_more_enums_to_wizard.rb +0 -9
  263. data/spec/support/v5.0/db/migrate/20190620000007_add_type_to_wizard.rb +0 -6
  264. data/spec/support/v5.0/db/migrate/20190620000008_add_robe_to_wizard.rb +0 -8
  265. data/spec/support/v5.0/db/migrate/20190620000009_add_school.rb +0 -10
  266. data/spec/support/v5.0/db/migrate/20190620000010_add_subject.rb +0 -8
  267. data/spec/support/v5.0/db/migrate/20190620000011_add_subjects_wizards.rb +0 -8
  268. data/spec/support/v5.0/db/migrate/20190620000012_add_spell.rb +0 -8
  269. data/spec/support/v5.0/db/migrate/20190620000013_add_spells_spell_books.rb +0 -8
  270. data/spec/support/v5.0/db/schema.rb +0 -96
  271. data/spec/support/v5.0/public/robots.txt +0 -5
  272. data/spec/support/v5.1/README.md +0 -24
  273. data/spec/support/v5.1/Rakefile +0 -6
  274. data/spec/support/v5.1/app/assets/config/manifest.js +0 -2
  275. data/spec/support/v5.1/app/controllers/application_controller.rb +0 -4
  276. data/spec/support/v5.1/app/helpers/application_helper.rb +0 -3
  277. data/spec/support/v5.1/app/helpers/bar_helper.rb +0 -3
  278. data/spec/support/v5.1/app/helpers/baz_helper.rb +0 -3
  279. data/spec/support/v5.1/app/helpers/foo_helper.rb +0 -3
  280. data/spec/support/v5.1/app/jobs/application_job.rb +0 -3
  281. data/spec/support/v5.1/app/jobs/award_house_point_hourglasses.rb +0 -12
  282. data/spec/support/v5.1/app/mailers/daily_prophet_mailer.rb +0 -9
  283. data/spec/support/v5.1/app/mailers/hogwarts_acceptance_mailer.rb +0 -29
  284. data/spec/support/v5.1/app/models/application_record.rb +0 -4
  285. data/spec/support/v5.1/app/models/concerns/.keep +0 -0
  286. data/spec/support/v5.1/app/models/concerns/mythical.rb +0 -11
  287. data/spec/support/v5.1/app/models/school.rb +0 -5
  288. data/spec/support/v5.1/app/models/spell_book.rb +0 -18
  289. data/spec/support/v5.1/app/models/squib.rb +0 -6
  290. data/spec/support/v5.1/app/models/wand.rb +0 -19
  291. data/spec/support/v5.1/app/models/wizard.rb +0 -65
  292. data/spec/support/v5.1/app/views/layouts/mailer.html.erb +0 -13
  293. data/spec/support/v5.1/app/views/layouts/mailer.text.erb +0 -1
  294. data/spec/support/v5.1/bin/bundle +0 -3
  295. data/spec/support/v5.1/bin/rails +0 -4
  296. data/spec/support/v5.1/bin/rake +0 -4
  297. data/spec/support/v5.1/bin/update +0 -29
  298. data/spec/support/v5.1/bin/yarn +0 -11
  299. data/spec/support/v5.1/config/boot.rb +0 -4
  300. data/spec/support/v5.1/config/environment.rb +0 -6
  301. data/spec/support/v5.1/config/initializers/application_controller_renderer.rb +0 -9
  302. data/spec/support/v5.1/config/initializers/backtrace_silencers.rb +0 -8
  303. data/spec/support/v5.1/config/initializers/filter_parameter_logging.rb +0 -5
  304. data/spec/support/v5.1/config/initializers/inflections.rb +0 -17
  305. data/spec/support/v5.1/config/initializers/mime_types.rb +0 -5
  306. data/spec/support/v5.1/config/initializers/sorbet_rails.rb +0 -3
  307. data/spec/support/v5.1/config/initializers/wrap_parameters.rb +0 -15
  308. data/spec/support/v5.1/config/routes.rb +0 -5
  309. data/spec/support/v5.1/config.ru +0 -5
  310. data/spec/support/v5.1/db/migrate/20190620000005_add_broom_to_wizard.rb +0 -6
  311. data/spec/support/v5.1/db/migrate/20190620000014_create_headmasters.rb +0 -9
  312. data/spec/support/v5.1/db/migrate/20190620000015_add_serialized_to_wizards.rb +0 -9
  313. data/spec/support/v5.1/db/seeds.rb +0 -8
  314. data/spec/support/v5.1/lib/assets/.keep +0 -0
  315. data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +0 -16
  316. data/spec/support/v5.1/lib/tasks/.keep +0 -0
  317. data/spec/support/v5.1/log/.keep +0 -0
  318. data/spec/support/v5.1/package.json +0 -5
  319. data/spec/support/v5.1/public/robots.txt +0 -1
  320. data/spec/support/v5.1/sorbet_test_cases.rb +0 -409
  321. data/spec/support/v5.1/tmp/.keep +0 -0
  322. data/spec/support/v5.1/vendor/.keep +0 -0
  323. data/spec/test_data/v5.0/expected_active_record_base.rbi +0 -113
  324. data/spec/test_data/v5.0/expected_active_record_relation.rbi +0 -198
  325. data/spec/test_data/v5.0/expected_habtm_subjects.rbi +0 -660
  326. data/spec/test_data/v5.0/expected_habtm_wizards.rbi +0 -660
  327. data/spec/test_data/v5.0/expected_headmaster.rbi +0 -328
  328. data/spec/test_data/v5.0/expected_internal_metadata.rbi +0 -298
  329. data/spec/test_data/v5.0/expected_potion.rbi +0 -280
  330. data/spec/test_data/v5.0/expected_robe.rbi +0 -301
  331. data/spec/test_data/v5.0/expected_routes.rbi +0 -27
  332. data/spec/test_data/v5.0/expected_schema_migration.rbi +0 -271
  333. data/spec/test_data/v5.0/expected_school.rbi +0 -301
  334. data/spec/test_data/v5.0/expected_spell/habtm_spell_books.rbi +0 -319
  335. data/spec/test_data/v5.0/expected_spell.rbi +0 -292
  336. data/spec/test_data/v5.0/expected_spell_book/habtm_spell_books.rbi +0 -637
  337. data/spec/test_data/v5.0/expected_spell_book/habtm_spells.rbi +0 -319
  338. data/spec/test_data/v5.0/expected_spell_book.rbi +0 -415
  339. data/spec/test_data/v5.0/expected_squib.rbi +0 -832
  340. data/spec/test_data/v5.0/expected_subject/habtm_wizards.rbi +0 -319
  341. data/spec/test_data/v5.0/expected_subject.rbi +0 -292
  342. data/spec/test_data/v5.0/expected_wand.rbi +0 -497
  343. data/spec/test_data/v5.0/expected_wizard/habtm_subjects.rbi +0 -319
  344. data/spec/test_data/v5.0/expected_wizard.rbi +0 -908
  345. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +0 -902
  346. data/spec/test_data/v5.1/expected_application_job.rbi +0 -20
  347. data/spec/test_data/v5.1/expected_application_mailer.rbi +0 -5
  348. data/spec/test_data/v5.1/expected_award_house_point_hourglasses.rbi +0 -20
  349. data/spec/test_data/v5.1/expected_custom_application_job.rbi +0 -21
  350. data/spec/test_data/v5.1/expected_custom_application_mailer.rbi +0 -6
  351. data/spec/test_data/v5.1/expected_custom_award_house_point_hourglasses.rbi +0 -21
  352. data/spec/test_data/v5.1/expected_custom_daily_prophet_mailer.rbi +0 -8
  353. data/spec/test_data/v5.1/expected_custom_hogwarts_acceptance_mailer.rbi +0 -21
  354. data/spec/test_data/v5.1/expected_daily_prophet_mailer.rbi +0 -7
  355. data/spec/test_data/v5.1/expected_helpers.rbi +0 -27
  356. data/spec/test_data/v5.1/expected_helpers_with_application_and_devise_helpers.rbi +0 -34
  357. data/spec/test_data/v5.1/expected_hogwarts_acceptance_mailer.rbi +0 -20
  358. data/spec/test_data/v5.1/expected_no_routes.rbi +0 -4
  359. data/spec/test_data/v5.1/expected_routes.rbi +0 -27
  360. data/spec/test_data/v5.1/expected_srb_tc_output.txt +0 -1
@@ -15,16 +15,14 @@ Rails.application.configure do
15
15
  config.consider_all_requests_local = false
16
16
  config.action_controller.perform_caching = true
17
17
 
18
- # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
19
- # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
20
- # `config/secrets.yml.key`.
21
- config.read_encrypted_secrets = true
18
+ # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
19
+ # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
20
+ # config.require_master_key = true
22
21
 
23
22
  # Disable serving static files from the `/public` folder by default since
24
23
  # Apache or NGINX already handles this.
25
24
  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
26
25
 
27
-
28
26
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
29
27
  # config.action_controller.asset_host = 'http://assets.example.com'
30
28
 
@@ -32,6 +30,8 @@ Rails.application.configure do
32
30
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
33
31
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
34
32
 
33
+ # Store uploaded files on the local file system (see config/storage.yml for options).
34
+ config.active_storage.service = :local
35
35
 
36
36
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
37
37
  # config.force_ssl = true
@@ -46,9 +46,10 @@ Rails.application.configure do
46
46
  # Use a different cache store in production.
47
47
  # config.cache_store = :mem_cache_store
48
48
 
49
- # Use a real queuing backend for Active Job (and separate queues per environment)
49
+ # Use a real queuing backend for Active Job (and separate queues per environment).
50
50
  # config.active_job.queue_adapter = :resque
51
- # config.active_job.queue_name_prefix = "v5_1_#{Rails.env}"
51
+ # config.active_job.queue_name_prefix = "v6_0_production"
52
+
52
53
  config.action_mailer.perform_caching = false
53
54
 
54
55
  # Ignore bad email addresses and do not raise email delivery errors.
@@ -77,4 +78,25 @@ Rails.application.configure do
77
78
 
78
79
  # Do not dump schema after migrations.
79
80
  config.active_record.dump_schema_after_migration = false
81
+
82
+ # Inserts middleware to perform automatic connection switching.
83
+ # The `database_selector` hash is used to pass options to the DatabaseSelector
84
+ # middleware. The `delay` is used to determine how long to wait after a write
85
+ # to send a subsequent read to the primary.
86
+ #
87
+ # The `database_resolver` class is used by the middleware to determine which
88
+ # database is appropriate to use based on the time delay.
89
+ #
90
+ # The `database_resolver_context` class is used by the middleware to set
91
+ # timestamps for the last write to the primary. The resolver uses the context
92
+ # class timestamps to determine how long to wait before reading from the
93
+ # replica.
94
+ #
95
+ # By default Rails will store a last write timestamp in the session. The
96
+ # DatabaseSelector middleware is designed as such you can define your own
97
+ # strategy for connection switching and pass that into the middleware through
98
+ # these configuration options.
99
+ # config.active_record.database_selector = { delay: 2.seconds }
100
+ # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
101
+ # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
80
102
  end
@@ -1,11 +1,12 @@
1
- # typed: false
1
+ # typed: strict
2
+ # The test environment is used exclusively to run your application's
3
+ # test suite. You never need to work with it otherwise. Remember that
4
+ # your test database is "scratch space" for the test suite and is wiped
5
+ # and recreated between test runs. Don't rely on the data there!
6
+
2
7
  Rails.application.configure do
3
8
  # Settings specified here will take precedence over those in config/application.rb.
4
9
 
5
- # The test environment is used exclusively to run your application's
6
- # test suite. You never need to work with it otherwise. Remember that
7
- # your test database is "scratch space" for the test suite and is wiped
8
- # and recreated between test runs. Don't rely on the data there!
9
10
  config.cache_classes = true
10
11
 
11
12
  # Do not eager load code on boot. This avoids loading your whole application
@@ -16,18 +17,23 @@ Rails.application.configure do
16
17
  # Configure public file server for tests with Cache-Control for performance.
17
18
  config.public_file_server.enabled = true
18
19
  config.public_file_server.headers = {
19
- 'Cache-Control' => "public, max-age=#{1.hour.seconds.to_i}"
20
+ 'Cache-Control' => "public, max-age=#{1.hour.to_i}"
20
21
  }
21
22
 
22
23
  # Show full error reports and disable caching.
23
24
  config.consider_all_requests_local = true
24
25
  config.action_controller.perform_caching = false
26
+ config.cache_store = :null_store
25
27
 
26
28
  # Raise exceptions instead of rendering exception templates.
27
29
  config.action_dispatch.show_exceptions = false
28
30
 
29
31
  # Disable request forgery protection in test environment.
30
32
  config.action_controller.allow_forgery_protection = false
33
+
34
+ # Store uploaded files on the local file system in a temporary directory.
35
+ config.active_storage.service = :test
36
+
31
37
  config.action_mailer.perform_caching = false
32
38
 
33
39
  # Tell Action Mailer not to deliver emails to the real world.
@@ -38,6 +44,6 @@ Rails.application.configure do
38
44
  # Print deprecation notices to the stderr.
39
45
  config.active_support.deprecation = :stderr
40
46
 
41
- # Raises error for missing translations
47
+ # Raises error for missing translations.
42
48
  # config.action_view.raise_on_missing_translations = true
43
49
  end
@@ -0,0 +1,29 @@
1
+ # typed: strong
2
+ # Be sure to restart your server when you modify this file.
3
+
4
+ # Define an application-wide content security policy
5
+ # For further information see the following documentation
6
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
7
+
8
+ # Rails.application.config.content_security_policy do |policy|
9
+ # policy.default_src :self, :https
10
+ # policy.font_src :self, :https, :data
11
+ # policy.img_src :self, :https, :data
12
+ # policy.object_src :none
13
+ # policy.script_src :self, :https
14
+ # policy.style_src :self, :https
15
+
16
+ # # Specify URI for violation reports
17
+ # # policy.report_uri "/csp-violation-report-endpoint"
18
+ # end
19
+
20
+ # If you are using UJS then enable automatic nonce generation
21
+ # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
22
+
23
+ # Set the nonce only to specific directives
24
+ # Rails.application.config.content_security_policy_nonce_directives = %w(script-src)
25
+
26
+ # Report CSP violations to a specified URI
27
+ # For further information see the following documentation:
28
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
29
+ # Rails.application.config.content_security_policy_report_only = true
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: false
2
2
  # Be sure to restart your server when you modify this file.
3
3
 
4
4
  # Specify a serializer for the signed and encrypted cookie jars.
@@ -1,3 +1,3 @@
1
- # typed: strict
1
+ # typed: false
2
2
  require(Rails.root.join('lib/mythical_rbi_plugin'))
3
3
  SorbetRails::ModelRbiFormatter.register_plugin(MythicalRbiPlugin)
@@ -27,7 +27,7 @@
27
27
  # 'true': 'foo'
28
28
  #
29
29
  # To learn more, please read the Rails Internationalization guide
30
- # available at http://guides.rubyonrails.org/i18n.html.
30
+ # available at https://guides.rubyonrails.org/i18n.html.
31
31
 
32
32
  en:
33
33
  hello: "Hello world"
@@ -5,8 +5,9 @@
5
5
  # the maximum value specified for Puma. Default is set to 5 threads for minimum
6
6
  # and maximum; this matches the default thread size of Active Record.
7
7
  #
8
- threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
9
- threads threads_count, threads_count
8
+ max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
9
+ min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
10
+ threads min_threads_count, max_threads_count
10
11
 
11
12
  # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
12
13
  #
@@ -16,8 +17,11 @@ port ENV.fetch("PORT") { 3000 }
16
17
  #
17
18
  environment ENV.fetch("RAILS_ENV") { "development" }
18
19
 
20
+ # Specifies the `pidfile` that Puma will use.
21
+ pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
22
+
19
23
  # Specifies the number of `workers` to boot in clustered mode.
20
- # Workers are forked webserver processes. If using threads and workers together
24
+ # Workers are forked web server processes. If using threads and workers together
21
25
  # the concurrency of the application would be max `threads` * `workers`.
22
26
  # Workers do not work on JRuby or Windows (both of which do not support
23
27
  # processes).
@@ -27,31 +31,9 @@ environment ENV.fetch("RAILS_ENV") { "development" }
27
31
  # Use the `preload_app!` method when specifying a `workers` number.
28
32
  # This directive tells Puma to first boot the application and load code
29
33
  # before forking the application. This takes advantage of Copy On Write
30
- # process behavior so workers use less memory. If you use this option
31
- # you need to make sure to reconnect any threads in the `on_worker_boot`
32
- # block.
34
+ # process behavior so workers use less memory.
33
35
  #
34
36
  # preload_app!
35
37
 
36
- # If you are preloading your application and using Active Record, it's
37
- # recommended that you close any connections to the database before workers
38
- # are forked to prevent connection leakage.
39
- #
40
- # before_fork do
41
- # ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
42
- # end
43
-
44
- # The code in the `on_worker_boot` will be called if you are using
45
- # clustered mode by specifying a number of `workers`. After each worker
46
- # process is booted, this block will be run. If you are using the `preload_app!`
47
- # option, you will want to use this block to reconnect to any threads
48
- # or connections that may have been created at application boot, as Ruby
49
- # cannot share connections between processes.
50
- #
51
- # on_worker_boot do
52
- # ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
53
- # end
54
- #
55
-
56
38
  # Allow puma to be restarted by `rails restart` command.
57
39
  plugin :tmp_restart
@@ -0,0 +1,5 @@
1
+ # typed: strict
2
+ Rails.application.routes.draw do
3
+ get 'test/index' => 'test#index'
4
+ # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
5
+ end
@@ -0,0 +1,34 @@
1
+ test:
2
+ service: Disk
3
+ root: <%= Rails.root.join("tmp/storage") %>
4
+
5
+ local:
6
+ service: Disk
7
+ root: <%= Rails.root.join("storage") %>
8
+
9
+ # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
10
+ # amazon:
11
+ # service: S3
12
+ # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
13
+ # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
14
+ # region: us-east-1
15
+ # bucket: your_own_bucket
16
+
17
+ # Remember not to checkin your GCS keyfile to a repository
18
+ # google:
19
+ # service: GCS
20
+ # project: your_project
21
+ # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
22
+ # bucket: your_own_bucket
23
+
24
+ # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
25
+ # microsoft:
26
+ # service: AzureStorage
27
+ # storage_account_name: your_account_name
28
+ # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
29
+ # container: your_container_name
30
+
31
+ # mirror:
32
+ # service: Mirror
33
+ # primary: local
34
+ # mirrors: [ amazon, google, microsoft ]
File without changes
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class CreateWizards < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class CreateWizards < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :wizards do |t|
5
5
  t.string :name
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class CreateWands < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class CreateWands < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :wands do |t|
5
5
  t.references :wizard, unique: true, null: false
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class CreateSpellBooks < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class CreateSpellBooks < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :spell_books do |t|
5
5
  t.string :name
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddMoreColumnTypesToWands < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddMoreColumnTypesToWands < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  add_column :wands, :flexibility, :float, null: false, default: 0.5
5
5
  add_column :wands, :hardness, :decimal, null: false, precision: 10, scale: 10, default: 5
@@ -0,0 +1,6 @@
1
+ # typed: true
2
+ class AddBroomToWizard < ActiveRecord::Migration[6.0]
3
+ def change
4
+ add_column :wizards, :broom, :string
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddMoreEnumsToWizard < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddMoreEnumsToWizard < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  add_column :wizards, :quidditch_position, :integer
5
5
  add_column :wizards, :hair_color, :integer
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddTypeToWizard < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddTypeToWizard < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  add_column :wizards, :type, :string, null: false, default: 'Wizard'
5
5
  end
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddRobeToWizard < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddRobeToWizard < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :robes do |t|
5
5
  t.references :wizard
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSchool < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddSchool < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :schools do |t|
5
5
  t.string :name
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSubject < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddSubject < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :subjects do |t|
5
5
  t.string :name
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSubjectsWizards < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddSubjectsWizards < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_join_table :subjects, :wizards, column_options: { null: true } do |t|
5
5
  t.index [:subject_id, :wizard_id]
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSpell < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddSpell < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :spells do |t|
5
5
  t.string :name
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSpellsSpellBooks < ActiveRecord::Migration[5.1]
1
+ # typed: true
2
+ class AddSpellsSpellBooks < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_join_table :spells, :spell_books do |t|
5
5
  t.index [:spell_id, :spell_book_id]
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class CreateHeadmasters < ActiveRecord::Migration[5.0]
1
+ # typed: true
2
+ class CreateHeadmasters < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  create_table :headmasters do |t|
5
5
  t.references :school
@@ -1,5 +1,5 @@
1
- # typed: false
2
- class AddSerializedToWizards < ActiveRecord::Migration[5.0]
1
+ # typed: true
2
+ class AddSerializedToWizards < ActiveRecord::Migration[6.0]
3
3
  def change
4
4
  add_column :wizards, :owl_results, :text # Hash
5
5
  add_column :wizards, :newt_subjects, :text # generic
@@ -1,17 +1,17 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # This file is auto-generated from the current state of the database. Instead
3
3
  # of editing this file, please use the migrations feature of Active Record to
4
4
  # incrementally modify your database, and then regenerate this schema definition.
5
5
  #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
6
+ # This file is the source Rails uses to define your schema when running `rails
7
+ # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
8
+ # be faster and is potentially less error prone than running all of your
9
+ # migrations from scratch. Old migrations may fail to apply correctly if those
10
+ # migrations use external dependencies or application code.
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20190620000015) do
14
+ ActiveRecord::Schema.define(version: 2019_06_20_000015) do
15
15
 
16
16
  create_table "headmasters", force: :cascade do |t|
17
17
  t.integer "school_id"
@@ -60,8 +60,8 @@ ActiveRecord::Schema.define(version: 20190620000015) do
60
60
  t.integer "wizard_id", null: false
61
61
  t.string "wood_type"
62
62
  t.integer "core_type"
63
- t.datetime "created_at", null: false
64
- t.datetime "updated_at", null: false
63
+ t.datetime "created_at", precision: 6, null: false
64
+ t.datetime "updated_at", precision: 6, null: false
65
65
  t.float "flexibility", default: 0.5, null: false
66
66
  t.decimal "hardness", precision: 10, scale: 10, default: "5.0", null: false
67
67
  t.decimal "reflectance", precision: 10, default: "0", null: false
@@ -69,6 +69,8 @@ ActiveRecord::Schema.define(version: 20190620000015) do
69
69
  t.datetime "broken_at"
70
70
  t.date "chosen_at_date"
71
71
  t.time "chosen_at_time"
72
+ t.json "spell_history"
73
+ t.json "maker_info", default: "{}", null: false
72
74
  t.index ["wizard_id"], name: "index_wands_on_wizard_id"
73
75
  end
74
76
 
@@ -78,8 +80,8 @@ ActiveRecord::Schema.define(version: 20190620000015) do
78
80
  t.integer "professor"
79
81
  t.string "parent_email"
80
82
  t.text "notes"
81
- t.datetime "created_at", null: false
82
- t.datetime "updated_at", null: false
83
+ t.datetime "created_at", precision: 6, null: false
84
+ t.datetime "updated_at", precision: 6, null: false
83
85
  t.string "broom"
84
86
  t.integer "quidditch_position"
85
87
  t.integer "hair_color"
@@ -93,4 +95,5 @@ ActiveRecord::Schema.define(version: 20190620000015) do
93
95
  t.text "patronus_characteristics"
94
96
  end
95
97
 
98
+ add_foreign_key "wizards", "schools"
96
99
  end
File without changes
File without changes
File without changes
File without changes
@@ -84,6 +84,8 @@ T.assert_type!(Wizard.where.not(id: 1), Wizard::ActiveRecord_Relation)
84
84
  T.assert_type!(Wizard.preload(:spell_books), Wizard::ActiveRecord_Relation)
85
85
  T.assert_type!(Wizard.eager_load(:spell_books), Wizard::ActiveRecord_Relation)
86
86
  T.assert_type!(Wizard.order(:id), Wizard::ActiveRecord_Relation)
87
+ T.assert_type!(Wizard.select { |r| r.id == 1 }, T::Array[Wizard])
88
+ T.assert_type!(Wizard.select_columns(:id, :name), Wizard::ActiveRecord_Relation)
87
89
 
88
90
  # Finder methods -- ActiveRecord::Relation
89
91
  T.assert_type!(Wizard.all.exists?(name: 'Harry Potter'), T::Boolean)
@@ -121,12 +123,17 @@ T.assert_type!(Wizard.all.find_each, T::Enumerator[Wizard])
121
123
  Wizard.all.find_in_batches { |w| T.assert_type!(w, T::Array[Wizard]) }
122
124
  T.assert_type!(Wizard.all.find_in_batches, T::Enumerator[T::Array[Wizard]])
123
125
  Wizard.all.in_batches { |w| T.assert_type!(w, Wizard::ActiveRecord_Relation) }
124
- T.assert_type!(Wizard.all.in_batches, T::Enumerable[Wizard::ActiveRecord_Relation])
126
+ T.assert_type!(Wizard.all.in_batches, ActiveRecord::Batches::BatchEnumerator)
125
127
  # T.assert_type!(Wizard.all.destroy_all, T::Array[Wizard]) # Ignored until we add support
126
128
  T.assert_type!(Wizard.all.any?, T::Boolean)
127
129
  T.assert_type!(Wizard.all.many?, T::Boolean)
128
130
  T.assert_type!(Wizard.all.none?, T::Boolean)
129
131
  T.assert_type!(Wizard.all.one?, T::Boolean)
132
+ T.assert_type!(Wizard.all.any? { |r| r.id > 1 }, T::Boolean)
133
+ T.assert_type!(Wizard.all.many? { |r| r.id > 1 }, T::Boolean)
134
+ T.assert_type!(Wizard.all.none? { |r| r.id > 1 }, T::Boolean)
135
+ T.assert_type!(Wizard.all.one? { |r| r.id > 1 }, T::Boolean)
136
+
130
137
  # T.assert_type!(Wizard.all.update_all(name: 'Harry Potter'), Integer) # Ignored until we add support
131
138
  # T.assert_type!(Wizard.all.delete_all, Integer) # Ignored until we add support
132
139
  # Query methods
@@ -141,6 +148,8 @@ T.assert_type!(Wizard.all.where.not(id: 1), Wizard::ActiveRecord_Relation)
141
148
  T.assert_type!(Wizard.all.preload(:spell_books), Wizard::ActiveRecord_Relation)
142
149
  T.assert_type!(Wizard.all.eager_load(:spell_books), Wizard::ActiveRecord_Relation)
143
150
  T.assert_type!(Wizard.all.order(:id), Wizard::ActiveRecord_Relation)
151
+ T.assert_type!(Wizard.all.select { |r| r.id == 1 }, T::Array[Wizard])
152
+ T.assert_type!(Wizard.all.select_columns(:id, :name), Wizard::ActiveRecord_Relation)
144
153
  # Enumerable methods
145
154
  Wizard.all.each { |w| T.assert_type!(w, Wizard) }
146
155
  Wizard.all.map { |w| T.assert_type!(w, Wizard) }
@@ -185,12 +194,16 @@ T.assert_type!(spell_books.find_each, T::Enumerator[SpellBook])
185
194
  spell_books.find_in_batches { |s| T.assert_type!(s, T::Array[SpellBook]) }
186
195
  T.assert_type!(spell_books.find_in_batches, T::Enumerator[T::Array[SpellBook]])
187
196
  spell_books.in_batches { |s| T.assert_type!(s, SpellBook::ActiveRecord_AssociationRelation) }
188
- T.assert_type!(spell_books.in_batches, T::Enumerable[SpellBook::ActiveRecord_AssociationRelation])
197
+ T.assert_type!(spell_books.in_batches, ActiveRecord::Batches::BatchEnumerator)
189
198
  # T.assert_type!(spell_books.destroy_all, T::Array[SpellBook]) # Ignored until we add support
190
199
  T.assert_type!(spell_books.any?, T::Boolean)
191
200
  T.assert_type!(spell_books.many?, T::Boolean)
192
201
  T.assert_type!(spell_books.none?, T::Boolean)
193
202
  T.assert_type!(spell_books.one?, T::Boolean)
203
+ T.assert_type!(spell_books.any? { |r| r.id > 1 }, T::Boolean)
204
+ T.assert_type!(spell_books.many? { |r| r.id > 1 }, T::Boolean)
205
+ T.assert_type!(spell_books.none? { |r| r.id > 1 }, T::Boolean)
206
+ T.assert_type!(spell_books.one? { |r| r.id > 1 }, T::Boolean)
194
207
  # T.assert_type!(spell_books.update_all(name: 'Fantastic Beasts'), Integer) # Ignored until we add support
195
208
  # T.assert_type!(spell_books.delete_all, Integer) # Ignored until we add support
196
209
  # Query methods
@@ -205,6 +218,9 @@ T.assert_type!(spell_books.where.not(id: 1), SpellBook::ActiveRecord_Association
205
218
  T.assert_type!(spell_books.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
206
219
  T.assert_type!(spell_books.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
207
220
  T.assert_type!(spell_books.order(:id), SpellBook::ActiveRecord_AssociationRelation)
221
+ T.assert_type!(spell_books.select { |r| r.id == 1 }, T::Array[SpellBook])
222
+ T.assert_type!(spell_books.select_columns(:id, :name), SpellBook::ActiveRecord_AssociationRelation)
223
+
208
224
  # Enumerable methods
209
225
  spell_books.each { |s| T.assert_type!(s, SpellBook) }
210
226
  spell_books.map { |s| T.assert_type!(s, SpellBook) }
@@ -257,12 +273,16 @@ T.assert_type!(spell_books_query.find_each, T::Enumerator[SpellBook])
257
273
  spell_books_query.find_in_batches { |s| T.assert_type!(s, T::Array[SpellBook]) }
258
274
  T.assert_type!(spell_books_query.find_in_batches, T::Enumerator[T::Array[SpellBook]])
259
275
  spell_books_query.in_batches { |s| T.assert_type!(s, SpellBook::ActiveRecord_AssociationRelation) }
260
- T.assert_type!(spell_books_query.in_batches, T::Enumerable[SpellBook::ActiveRecord_AssociationRelation])
276
+ T.assert_type!(spell_books_query.in_batches, ActiveRecord::Batches::BatchEnumerator)
261
277
  # T.assert_type!(spell_books_query.destroy_all, T::Array[SpellBook]) # Ignored until we add support
262
278
  T.assert_type!(spell_books_query.any?, T::Boolean)
263
279
  T.assert_type!(spell_books_query.many?, T::Boolean)
264
280
  T.assert_type!(spell_books_query.none?, T::Boolean)
265
281
  T.assert_type!(spell_books_query.one?, T::Boolean)
282
+ T.assert_type!(spell_books_query.any? { |r| r.id > 1 }, T::Boolean)
283
+ T.assert_type!(spell_books_query.many? { |r| r.id > 1 }, T::Boolean)
284
+ T.assert_type!(spell_books_query.none? { |r| r.id > 1 }, T::Boolean)
285
+ T.assert_type!(spell_books_query.one? { |r| r.id > 1 }, T::Boolean)
266
286
  # T.assert_type!(spell_books_query.update_all(name: 'Fantastic Beasts'), Integer) # Ignored until we add support
267
287
  # T.assert_type!(spell_books_query.delete_all, Integer) # Ignored until we add support
268
288
  # Query methods
@@ -277,6 +297,8 @@ T.assert_type!(spell_books_query.where.not(id: 1), SpellBook::ActiveRecord_Assoc
277
297
  T.assert_type!(spell_books_query.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
278
298
  T.assert_type!(spell_books_query.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
279
299
  T.assert_type!(spell_books_query.order(:id), SpellBook::ActiveRecord_AssociationRelation)
300
+ T.assert_type!(spell_books.select { |r| r.id == 1 }, T::Array[SpellBook])
301
+ T.assert_type!(spell_books.select_columns(:id, :name), SpellBook::ActiveRecord_AssociationRelation)
280
302
  # Enumerable methods
281
303
  spell_books_query.each { |s| T.assert_type!(s, SpellBook) }
282
304
  spell_books_query.map { |s| T.assert_type!(s, SpellBook) }
@@ -316,7 +338,7 @@ T.assert_type!(
316
338
  )
317
339
  T.assert_type!(
318
340
  wizard.patronus_characteristics,
319
- T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[String, T.untyped], Integer, String))
341
+ T.nilable(ActiveRecord::Coders::JSON),
320
342
  )
321
343
  T.assert_type!(wizard.pets, T.nilable(T::Array[T.untyped]))
322
344
 
File without changes
@@ -96,18 +96,18 @@ class ActiveRecord::Base
96
96
  end
97
97
  def self.find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, &block); end
98
98
 
99
- sig { params(conditions: T.untyped).returns(T::Boolean) }
100
- def self.exists?(conditions = nil); end
99
+ sig { params(block: T.nilable(T.proc.params(e: T.attached_class).returns(T::Boolean))).returns(T::Boolean) }
100
+ def self.any?(&block); end
101
101
 
102
- sig { returns(T::Boolean) }
103
- def self.any?; end
102
+ sig { params(block: T.nilable(T.proc.params(e: T.attached_class).returns(T::Boolean))).returns(T::Boolean) }
103
+ def self.many?(&block); end
104
104
 
105
- sig { returns(T::Boolean) }
106
- def self.many?; end
105
+ sig { params(block: T.nilable(T.proc.params(e: T.attached_class).returns(T::Boolean))).returns(T::Boolean) }
106
+ def self.none?(&block); end
107
107
 
108
- sig { returns(T::Boolean) }
109
- def self.none?; end
108
+ sig { params(block: T.nilable(T.proc.params(e: T.attached_class).returns(T::Boolean))).returns(T::Boolean) }
109
+ def self.one?(&block); end
110
110
 
111
- sig { returns(T::Boolean) }
112
- def self.one?; end
111
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
112
+ def self.exists?(conditions = nil); end
113
113
  end