sorbet-rails 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (523) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -1
  3. data/.travis.yml +1 -1
  4. data/CONTRIBUTING.md +21 -12
  5. data/Rakefile +81 -0
  6. data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +21 -0
  7. data/lib/sorbet-rails/tasks/rails_rbi.rake +10 -6
  8. data/sorbet-rails.gemspec +1 -1
  9. data/spec/bin/run_spec.sh +2 -2
  10. data/spec/generators/rails-template.rb +268 -0
  11. data/spec/{support/rails_shared → generators}/sorbet_test_cases.rb +0 -0
  12. data/spec/helper_rbi_formatter_spec.rb +1 -1
  13. data/spec/support/v4.2/Gemfile +3 -14
  14. data/spec/support/v4.2/Gemfile.lock +8 -23
  15. data/spec/support/v4.2/app/controllers/application_controller.rb +1 -1
  16. data/spec/support/v4.2/app/helpers/application_helper.rb +3 -0
  17. data/spec/support/v4.2/app/helpers/bar_helper.rb +3 -0
  18. data/spec/support/v4.2/app/helpers/baz_helper.rb +3 -0
  19. data/spec/support/v4.2/app/helpers/foo_helper.rb +3 -0
  20. data/spec/support/{rails_shared/app/controllers/concerns → v4.2/app/models}/.keep +0 -0
  21. data/spec/support/v4.2/app/models/application_record.rb +5 -0
  22. data/spec/support/{v5.0/test/controllers → v4.2/app/models/concerns}/.keep +0 -0
  23. data/spec/support/v4.2/app/models/concerns/mythical.rb +11 -0
  24. data/spec/support/v4.2/app/models/potion.rb +5 -0
  25. data/spec/support/v4.2/app/models/spell_book.rb +5 -0
  26. data/spec/support/v4.2/app/models/wand.rb +17 -0
  27. data/spec/support/v4.2/app/models/wizard.rb +14 -0
  28. data/spec/support/v4.2/config/initializers/sorbet_rails.rb +3 -0
  29. data/spec/support/v4.2/config/routes.rb +55 -2
  30. data/spec/support/v4.2/db/migrate/{20190620001234_create_wizards.rb → 20190620000001_create_wizards.rb} +0 -0
  31. data/spec/support/v4.2/db/migrate/{20190620003037_create_wands.rb → 20190620000002_create_wands.rb} +0 -0
  32. data/spec/support/v4.2/db/migrate/{20190620003739_create_spell_books.rb → 20190620000003_create_spell_books.rb} +0 -0
  33. data/spec/support/{rails_shared/db/migrate/20190622000000_add_more_column_types_to_wands.rb → v4.2/db/migrate/20190620000004_add_more_column_types_to_wands.rb} +4 -5
  34. data/spec/support/v4.2/db/schema.rb +1 -1
  35. data/spec/support/v4.2/lib/mythical_rbi_plugin.rb +16 -0
  36. data/spec/support/v4.2/sorbet/rbi/gems/actionpack.rbi +277 -279
  37. data/spec/support/v4.2/sorbet/rbi/gems/actionview.rbi +18 -18
  38. data/spec/support/v4.2/sorbet/rbi/gems/activemodel.rbi +46 -46
  39. data/spec/support/v4.2/sorbet/rbi/gems/activerecord.rbi +413 -410
  40. data/spec/support/v4.2/sorbet/rbi/gems/activesupport.rbi +58 -58
  41. data/spec/support/v4.2/sorbet/rbi/gems/byebug.rbi +22 -22
  42. data/spec/support/v4.2/sorbet/rbi/gems/mail.rbi +2 -2
  43. data/spec/support/v4.2/sorbet/rbi/gems/mini_mime.rbi +8 -2
  44. data/spec/support/v4.2/sorbet/rbi/gems/parlour.rbi +214 -0
  45. data/spec/support/v4.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
  46. data/spec/support/v4.2/sorbet/rbi/gems/railties.rbi +0 -6
  47. data/spec/support/v4.2/sorbet/rbi/gems/thor.rbi +2 -2
  48. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
  49. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
  50. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
  51. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
  52. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
  53. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  54. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
  55. data/spec/support/v4.2/sorbet/rbi/todo.rbi +59 -1
  56. data/spec/support/v4.2/sorbet_test_cases.rb +123 -0
  57. data/spec/support/v4.2/typed-override.yaml +2 -0
  58. data/spec/support/v5.0/Gemfile +6 -19
  59. data/spec/support/v5.0/Gemfile.lock +12 -9
  60. data/spec/support/v5.0/app/assets/config/manifest.js +2 -0
  61. data/spec/support/v5.0/{test/fixtures → app/assets/images}/.keep +0 -0
  62. data/spec/support/v5.0/app/assets/stylesheets/application.css +15 -0
  63. data/spec/support/v5.0/app/controllers/application_controller.rb +4 -0
  64. data/spec/support/v5.0/{test/fixtures/files → app/controllers/concerns}/.keep +0 -0
  65. data/spec/support/v5.0/app/helpers/application_helper.rb +3 -0
  66. data/spec/support/v5.0/app/helpers/bar_helper.rb +3 -0
  67. data/spec/support/v5.0/app/helpers/baz_helper.rb +3 -0
  68. data/spec/support/v5.0/app/helpers/foo_helper.rb +3 -0
  69. data/spec/support/v5.0/app/models/application_record.rb +5 -0
  70. data/spec/support/v5.0/{test/integration → app/models/concerns}/.keep +0 -0
  71. data/spec/support/v5.0/app/models/concerns/mythical.rb +11 -0
  72. data/spec/support/v5.0/app/models/potion.rb +5 -0
  73. data/spec/support/v5.0/app/models/spell_book.rb +5 -0
  74. data/spec/support/v5.0/app/models/wand.rb +17 -0
  75. data/spec/support/v5.0/app/models/wizard.rb +14 -0
  76. data/spec/support/v5.0/app/views/layouts/application.html.erb +13 -0
  77. data/spec/support/v5.0/config/application.rb +2 -7
  78. data/spec/support/v5.0/config/environments/production.rb +0 -4
  79. data/spec/support/v5.0/config/initializers/cookies_serializer.rb +6 -0
  80. data/spec/support/v5.0/config/initializers/new_framework_defaults.rb +8 -0
  81. data/spec/support/v5.0/config/initializers/session_store.rb +4 -0
  82. data/spec/support/v5.0/config/initializers/sorbet_rails.rb +3 -0
  83. data/spec/support/v5.0/config/routes.rb +2 -2
  84. data/spec/support/{rails_shared/db/migrate/20190620001234_create_wizards.rb → v5.0/db/migrate/20190620000001_create_wizards.rb} +2 -1
  85. data/spec/support/{rails_shared/db/migrate/20190620003037_create_wands.rb → v5.0/db/migrate/20190620000002_create_wands.rb} +2 -1
  86. data/spec/support/{rails_shared/db/migrate/20190620003739_create_spell_books.rb → v5.0/db/migrate/20190620000003_create_spell_books.rb} +2 -1
  87. data/spec/support/v5.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
  88. data/spec/support/v5.0/db/schema.rb +1 -1
  89. data/spec/support/v5.0/{test/mailers → lib/assets}/.keep +0 -0
  90. data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +16 -0
  91. data/spec/support/v5.0/sorbet/rbi/gems/actionmailer.rbi +2 -50
  92. data/spec/support/v5.0/sorbet/rbi/gems/actionpack.rbi +533 -696
  93. data/spec/support/v5.0/sorbet/rbi/gems/actionview.rbi +56 -57
  94. data/spec/support/v5.0/sorbet/rbi/gems/activejob.rbi +0 -22
  95. data/spec/support/v5.0/sorbet/rbi/gems/activemodel.rbi +75 -75
  96. data/spec/support/v5.0/sorbet/rbi/gems/activerecord.rbi +644 -1020
  97. data/spec/support/v5.0/sorbet/rbi/gems/activesupport.rbi +81 -216
  98. data/spec/support/v5.0/sorbet/rbi/gems/arel.rbi +6 -6
  99. data/spec/support/v5.0/sorbet/rbi/gems/byebug.rbi +22 -22
  100. data/spec/support/v5.0/sorbet/rbi/gems/jbuilder.rbi +99 -0
  101. data/spec/support/v5.0/sorbet/rbi/gems/mail.rbi +2 -2
  102. data/spec/support/v5.0/sorbet/rbi/gems/mini_mime.rbi +8 -2
  103. data/spec/support/v5.0/sorbet/rbi/gems/nokogiri.rbi +6 -6
  104. data/spec/support/v5.0/sorbet/rbi/gems/parlour.rbi +214 -0
  105. data/spec/support/v5.0/sorbet/rbi/gems/rack.rbi +53 -98
  106. data/spec/support/v5.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
  107. data/spec/support/v5.0/sorbet/rbi/gems/railties.rbi +0 -210
  108. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
  109. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
  110. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
  111. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
  112. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
  113. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  114. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
  115. data/spec/support/v5.0/sorbet/rbi/todo.rbi +62 -4
  116. data/spec/support/v5.0/sorbet_test_cases.rb +123 -0
  117. data/spec/support/v5.0/typed-override.yaml +2 -0
  118. data/spec/support/v5.0/{test/models → vendor/assets/stylesheets}/.keep +0 -0
  119. data/spec/support/v5.1/.gitignore +23 -0
  120. data/spec/support/v5.1/Gemfile +9 -25
  121. data/spec/support/v5.1/Gemfile.lock +22 -11
  122. data/spec/support/v5.1/app/assets/config/manifest.js +2 -0
  123. data/spec/support/v5.1/{test/controllers → app/assets/images}/.keep +0 -0
  124. data/spec/support/v5.1/app/assets/stylesheets/application.css +15 -0
  125. data/spec/support/v5.1/app/controllers/application_controller.rb +4 -0
  126. data/spec/support/v5.1/{test/fixtures → app/controllers/concerns}/.keep +0 -0
  127. data/spec/support/v5.1/app/helpers/application_helper.rb +3 -0
  128. data/spec/support/v5.1/app/helpers/bar_helper.rb +3 -0
  129. data/spec/support/v5.1/app/helpers/baz_helper.rb +3 -0
  130. data/spec/support/v5.1/app/helpers/foo_helper.rb +3 -0
  131. data/spec/support/v5.1/app/models/application_record.rb +5 -0
  132. data/spec/support/v5.1/{test/fixtures/files → app/models/concerns}/.keep +0 -0
  133. data/spec/support/v5.1/app/models/concerns/mythical.rb +11 -0
  134. data/spec/support/v5.1/app/models/potion.rb +5 -0
  135. data/spec/support/v5.1/app/models/spell_book.rb +5 -0
  136. data/spec/support/v5.1/app/models/wand.rb +17 -0
  137. data/spec/support/v5.1/app/models/wizard.rb +14 -0
  138. data/spec/support/v5.1/app/views/layouts/application.html.erb +13 -0
  139. data/spec/support/v5.1/bin/setup +3 -0
  140. data/spec/support/v5.1/bin/yarn +11 -0
  141. data/spec/support/v5.1/config/application.rb +5 -7
  142. data/spec/support/v5.1/config/environments/production.rb +1 -5
  143. data/spec/support/v5.1/config/initializers/cookies_serializer.rb +6 -0
  144. data/spec/support/v5.1/config/initializers/sorbet_rails.rb +3 -0
  145. data/spec/support/v5.1/config/routes.rb +5 -0
  146. data/spec/support/v5.1/db/migrate/20190620000001_create_wizards.rb +13 -0
  147. data/spec/support/v5.1/db/migrate/20190620000002_create_wands.rb +12 -0
  148. data/spec/support/v5.1/db/migrate/20190620000003_create_spell_books.rb +9 -0
  149. data/spec/support/v5.1/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
  150. data/spec/support/v5.1/db/schema.rb +1 -1
  151. data/spec/support/v5.1/{test/integration → lib/assets}/.keep +0 -0
  152. data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +16 -0
  153. data/spec/support/v5.1/package.json +5 -0
  154. data/spec/support/v5.1/sorbet/rbi/gems/actionmailer.rbi +2 -49
  155. data/spec/support/v5.1/sorbet/rbi/gems/actionpack.rbi +588 -732
  156. data/spec/support/v5.1/sorbet/rbi/gems/actionview.rbi +123 -124
  157. data/spec/support/v5.1/sorbet/rbi/gems/activejob.rbi +0 -35
  158. data/spec/support/v5.1/sorbet/rbi/gems/activemodel.rbi +68 -68
  159. data/spec/support/v5.1/sorbet/rbi/gems/activerecord.rbi +501 -651
  160. data/spec/support/v5.1/sorbet/rbi/gems/activesupport.rbi +80 -218
  161. data/spec/support/v5.1/sorbet/rbi/gems/bindex.rbi +36 -0
  162. data/spec/support/v5.1/sorbet/rbi/gems/byebug.rbi +22 -22
  163. data/spec/support/v5.1/sorbet/rbi/gems/jbuilder.rbi +99 -0
  164. data/spec/support/v5.1/sorbet/rbi/gems/mail.rbi +2 -2
  165. data/spec/support/v5.1/sorbet/rbi/gems/mini_mime.rbi +8 -2
  166. data/spec/support/v5.1/sorbet/rbi/gems/nokogiri.rbi +6 -6
  167. data/spec/support/v5.1/sorbet/rbi/gems/parlour.rbi +214 -0
  168. data/spec/support/v5.1/sorbet/rbi/gems/rack.rbi +53 -98
  169. data/spec/support/v5.1/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
  170. data/spec/support/v5.1/sorbet/rbi/gems/railties.rbi +0 -209
  171. data/spec/support/v5.1/sorbet/rbi/gems/sqlite3.rbi +13 -5
  172. data/spec/support/{v4.2 → v5.1}/sorbet/rbi/gems/web-console.rbi +10 -73
  173. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
  174. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
  175. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
  176. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
  177. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
  178. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  179. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
  180. data/spec/support/v5.1/sorbet/rbi/todo.rbi +59 -2
  181. data/spec/support/v5.1/sorbet_test_cases.rb +123 -0
  182. data/spec/support/v5.1/typed-override.yaml +2 -0
  183. data/spec/support/v5.2-no-sorbet/.gitignore +31 -0
  184. data/spec/support/v5.2-no-sorbet/Gemfile +12 -28
  185. data/spec/support/v5.2-no-sorbet/Gemfile.lock +24 -10
  186. data/spec/support/v5.2-no-sorbet/app/assets/config/manifest.js +2 -0
  187. data/spec/support/{v5.1/test/mailers → v5.2-no-sorbet/app/assets/images}/.keep +0 -0
  188. data/spec/support/v5.2-no-sorbet/app/assets/stylesheets/application.css +15 -0
  189. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/controllers/application_controller.rb +0 -0
  190. data/spec/support/{v5.1/test/models → v5.2-no-sorbet/app/controllers/concerns}/.keep +0 -0
  191. data/spec/support/v5.2-no-sorbet/app/helpers/application_helper.rb +2 -0
  192. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/bar_helper.rb +0 -0
  193. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/baz_helper.rb +0 -0
  194. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/foo_helper.rb +0 -0
  195. data/spec/support/v5.2-no-sorbet/app/jobs/application_job.rb +0 -1
  196. data/spec/support/v5.2-no-sorbet/app/mailers/application_mailer.rb +0 -1
  197. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/application_record.rb +0 -1
  198. data/spec/support/v5.2-no-sorbet/{test/controllers → app/models/concerns}/.keep +0 -0
  199. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/concerns/mythical.rb +1 -1
  200. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/potion.rb +0 -1
  201. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/spell_book.rb +0 -2
  202. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/wand.rb +0 -0
  203. data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/wizard.rb +0 -1
  204. data/spec/support/v5.2-no-sorbet/app/views/layouts/application.html.erb +14 -0
  205. data/spec/support/v5.2-no-sorbet/bin/setup +3 -0
  206. data/spec/support/v5.2-no-sorbet/bin/update +3 -0
  207. data/spec/support/v5.2-no-sorbet/bin/yarn +11 -0
  208. data/spec/support/v5.2-no-sorbet/config/application.rb +5 -8
  209. data/spec/support/v5.2-no-sorbet/config/boot.rb +0 -1
  210. data/spec/support/v5.2-no-sorbet/config/environment.rb +0 -1
  211. data/spec/support/v5.2-no-sorbet/config/environments/development.rb +0 -1
  212. data/spec/support/v5.2-no-sorbet/config/environments/production.rb +1 -7
  213. data/spec/support/v5.2-no-sorbet/config/environments/test.rb +0 -1
  214. data/spec/support/v5.2-no-sorbet/config/initializers/application_controller_renderer.rb +0 -1
  215. data/spec/support/v5.2-no-sorbet/config/initializers/backtrace_silencers.rb +0 -1
  216. data/spec/support/v5.2-no-sorbet/config/initializers/content_security_policy.rb +25 -0
  217. data/spec/support/v5.2-no-sorbet/config/initializers/cookies_serializer.rb +5 -0
  218. data/spec/support/v5.2-no-sorbet/config/initializers/filter_parameter_logging.rb +0 -1
  219. data/spec/support/v5.2-no-sorbet/config/initializers/inflections.rb +0 -1
  220. data/spec/support/v5.2-no-sorbet/config/initializers/mime_types.rb +0 -1
  221. data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +3 -0
  222. data/spec/support/v5.2-no-sorbet/config/initializers/wrap_parameters.rb +0 -1
  223. data/spec/support/v5.2-no-sorbet/config/puma.rb +0 -1
  224. data/spec/support/v5.2-no-sorbet/config/routes.rb +4 -0
  225. data/spec/support/v5.2-no-sorbet/db/migrate/20190620000001_create_wizards.rb +12 -0
  226. data/spec/support/v5.2-no-sorbet/db/migrate/20190620000002_create_wands.rb +11 -0
  227. data/spec/support/v5.2-no-sorbet/db/migrate/20190620000003_create_spell_books.rb +8 -0
  228. data/spec/support/{v4.2/db/migrate/20190622000000_add_more_column_types_to_wands.rb → v5.2-no-sorbet/db/migrate/20190620000004_add_more_column_types_to_wands.rb} +6 -2
  229. data/spec/support/v5.2-no-sorbet/db/schema.rb +1 -2
  230. data/spec/support/v5.2-no-sorbet/db/seeds.rb +0 -1
  231. data/spec/support/v5.2-no-sorbet/{test/fixtures → lib/assets}/.keep +0 -0
  232. data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +16 -0
  233. data/spec/support/v5.2-no-sorbet/package.json +5 -0
  234. data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +123 -0
  235. data/spec/support/v5.2-no-sorbet/typed-override.yaml +2 -0
  236. data/spec/support/v5.2/.gitignore +31 -0
  237. data/spec/support/v5.2/Gemfile +12 -28
  238. data/spec/support/v5.2/Gemfile.lock +24 -10
  239. data/spec/support/v5.2/app/assets/config/manifest.js +2 -0
  240. data/spec/support/{v5.2-no-sorbet/test/fixtures/files → v5.2/app/assets/images}/.keep +0 -0
  241. data/spec/support/v5.2/app/assets/stylesheets/application.css +15 -0
  242. data/spec/support/v5.2/app/controllers/application_controller.rb +3 -0
  243. data/spec/support/{v5.2-no-sorbet/test/integration → v5.2/app/controllers/concerns}/.keep +0 -0
  244. data/spec/support/v5.2/app/helpers/application_helper.rb +3 -0
  245. data/spec/support/v5.2/app/helpers/bar_helper.rb +3 -0
  246. data/spec/support/v5.2/app/helpers/baz_helper.rb +3 -0
  247. data/spec/support/v5.2/app/helpers/foo_helper.rb +3 -0
  248. data/spec/support/v5.2/app/models/application_record.rb +5 -0
  249. data/spec/support/{v5.2-no-sorbet/test/mailers → v5.2/app/models/concerns}/.keep +0 -0
  250. data/spec/support/v5.2/app/models/concerns/mythical.rb +11 -0
  251. data/spec/support/v5.2/app/models/potion.rb +5 -0
  252. data/spec/support/v5.2/app/models/spell_book.rb +5 -0
  253. data/spec/support/v5.2/app/models/wand.rb +17 -0
  254. data/spec/support/v5.2/app/models/wizard.rb +14 -0
  255. data/spec/support/v5.2/app/views/layouts/application.html.erb +14 -0
  256. data/spec/support/v5.2/bin/setup +3 -0
  257. data/spec/support/v5.2/bin/update +3 -0
  258. data/spec/support/v5.2/bin/yarn +11 -0
  259. data/spec/support/v5.2/config/application.rb +5 -7
  260. data/spec/support/v5.2/config/environments/production.rb +1 -6
  261. data/spec/support/v5.2/config/initializers/content_security_policy.rb +26 -0
  262. data/spec/support/v5.2/config/initializers/cookies_serializer.rb +6 -0
  263. data/spec/support/v5.2/config/initializers/sorbet_rails.rb +3 -0
  264. data/spec/support/v5.2/config/routes.rb +5 -0
  265. data/spec/support/v5.2/db/migrate/20190620000001_create_wizards.rb +13 -0
  266. data/spec/support/v5.2/db/migrate/20190620000002_create_wands.rb +12 -0
  267. data/spec/support/v5.2/db/migrate/20190620000003_create_spell_books.rb +9 -0
  268. data/spec/support/v5.2/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
  269. data/spec/support/v5.2/db/schema.rb +1 -1
  270. data/spec/support/{v5.2-no-sorbet/test/models → v5.2/lib/assets}/.keep +0 -0
  271. data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +16 -0
  272. data/spec/support/v5.2/package.json +5 -0
  273. data/spec/support/v5.2/sorbet/rbi/gems/actionmailer.rbi +2 -50
  274. data/spec/support/v5.2/sorbet/rbi/gems/actionpack.rbi +504 -640
  275. data/spec/support/v5.2/sorbet/rbi/gems/actionview.rbi +123 -124
  276. data/spec/support/v5.2/sorbet/rbi/gems/activejob.rbi +0 -37
  277. data/spec/support/v5.2/sorbet/rbi/gems/activemodel.rbi +70 -69
  278. data/spec/support/v5.2/sorbet/rbi/gems/activerecord.rbi +521 -690
  279. data/spec/support/v5.2/sorbet/rbi/gems/activesupport.rbi +93 -235
  280. data/spec/support/v5.2/sorbet/rbi/gems/arel.rbi +4 -0
  281. data/spec/support/v5.2/sorbet/rbi/gems/bindex.rbi +36 -0
  282. data/spec/support/v5.2/sorbet/rbi/gems/byebug.rbi +22 -22
  283. data/spec/support/v5.2/sorbet/rbi/gems/concurrent-ruby.rbi +4 -0
  284. data/spec/support/v5.2/sorbet/rbi/gems/jbuilder.rbi +99 -0
  285. data/spec/support/v5.2/sorbet/rbi/gems/mail.rbi +2 -2
  286. data/spec/support/v5.2/sorbet/rbi/gems/mini_mime.rbi +8 -2
  287. data/spec/support/v5.2/sorbet/rbi/gems/nokogiri.rbi +10 -6
  288. data/spec/support/v5.2/sorbet/rbi/gems/parlour.rbi +214 -0
  289. data/spec/support/v5.2/sorbet/rbi/gems/rack.rbi +57 -98
  290. data/spec/support/v5.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
  291. data/spec/support/v5.2/sorbet/rbi/gems/railties.rbi +1 -215
  292. data/spec/support/v5.2/sorbet/rbi/gems/web-console.rbi +73 -0
  293. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
  294. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
  295. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
  296. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
  297. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/{~>5.2 → ~>5.2.0}/activerecord.rbi +1 -1
  298. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
  299. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
  300. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  301. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
  302. data/spec/support/v5.2/sorbet/rbi/todo.rbi +59 -2
  303. data/spec/support/v5.2/sorbet_test_cases.rb +123 -0
  304. data/spec/support/v5.2/typed-override.yaml +2 -0
  305. data/spec/support/v6.0/.gitignore +2 -0
  306. data/spec/support/v6.0/Gemfile +8 -17
  307. data/spec/support/v6.0/Gemfile.lock +19 -6
  308. data/spec/support/v6.0/app/assets/config/manifest.js +2 -0
  309. data/spec/support/{v5.2/sorbet → v6.0/app/assets/images}/.keep +0 -0
  310. data/spec/support/v6.0/app/assets/stylesheets/application.css +15 -0
  311. data/spec/support/v6.0/app/controllers/application_controller.rb +3 -0
  312. data/spec/support/{v5.2/test/controllers → v6.0/app/controllers/concerns}/.keep +0 -0
  313. data/spec/support/v6.0/app/helpers/application_helper.rb +3 -0
  314. data/spec/support/v6.0/app/helpers/bar_helper.rb +3 -0
  315. data/spec/support/v6.0/app/helpers/baz_helper.rb +3 -0
  316. data/spec/support/v6.0/app/helpers/foo_helper.rb +3 -0
  317. data/spec/support/v6.0/app/models/application_record.rb +5 -0
  318. data/spec/support/{v5.2/test/fixtures → v6.0/app/models/concerns}/.keep +0 -0
  319. data/spec/support/v6.0/app/models/concerns/mythical.rb +11 -0
  320. data/spec/support/v6.0/app/models/potion.rb +5 -0
  321. data/spec/support/v6.0/app/models/spell_book.rb +5 -0
  322. data/spec/support/v6.0/app/models/wand.rb +17 -0
  323. data/spec/support/v6.0/app/models/wizard.rb +14 -0
  324. data/spec/support/v6.0/app/views/layouts/application.html.erb +14 -0
  325. data/spec/support/v6.0/config/application.rb +4 -6
  326. data/spec/support/v6.0/config/database.yml +1 -1
  327. data/spec/support/v6.0/config/environments/development.rb +3 -0
  328. data/spec/support/v6.0/config/environments/production.rb +1 -5
  329. data/spec/support/v6.0/config/initializers/content_security_policy.rb +29 -0
  330. data/spec/support/v6.0/config/initializers/cookies_serializer.rb +6 -0
  331. data/spec/support/v6.0/config/initializers/sorbet_rails.rb +3 -0
  332. data/spec/support/v6.0/config/routes.rb +2 -2
  333. data/spec/support/v6.0/db/migrate/20190620000001_create_wizards.rb +13 -0
  334. data/spec/support/v6.0/db/migrate/20190620000002_create_wands.rb +12 -0
  335. data/spec/support/v6.0/db/migrate/20190620000003_create_spell_books.rb +9 -0
  336. data/spec/support/v6.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
  337. data/spec/support/v6.0/db/schema.rb +1 -1
  338. data/spec/support/{v5.2/test/fixtures/files → v6.0/lib/assets}/.keep +0 -0
  339. data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +16 -0
  340. data/spec/support/v6.0/public/robots.txt +1 -1
  341. data/spec/support/v6.0/sorbet/rbi/gems/actionmailbox.rbi +1 -1
  342. data/spec/support/v6.0/sorbet/rbi/gems/actionmailer.rbi +1 -50
  343. data/spec/support/v6.0/sorbet/rbi/gems/actionpack.rbi +232 -479
  344. data/spec/support/v6.0/sorbet/rbi/gems/actiontext.rbi +1 -1
  345. data/spec/support/v6.0/sorbet/rbi/gems/actionview.rbi +179 -77
  346. data/spec/support/v6.0/sorbet/rbi/gems/activejob.rbi +1 -283
  347. data/spec/support/v6.0/sorbet/rbi/gems/activemodel.rbi +71 -70
  348. data/spec/support/v6.0/sorbet/rbi/gems/activerecord.rbi +705 -843
  349. data/spec/support/v6.0/sorbet/rbi/gems/activestorage.rbi +5 -1
  350. data/spec/support/v6.0/sorbet/rbi/gems/activesupport.rbi +121 -300
  351. data/spec/support/v6.0/sorbet/rbi/gems/bindex.rbi +36 -0
  352. data/spec/support/v6.0/sorbet/rbi/gems/byebug.rbi +22 -22
  353. data/spec/support/v6.0/sorbet/rbi/gems/jbuilder.rbi +99 -0
  354. data/spec/support/v6.0/sorbet/rbi/gems/mail.rbi +1 -1
  355. data/spec/support/v6.0/sorbet/rbi/gems/mini_mime.rbi +8 -2
  356. data/spec/support/v6.0/sorbet/rbi/gems/parlour.rbi +214 -0
  357. data/spec/support/v6.0/sorbet/rbi/gems/rack.rbi +54 -95
  358. data/spec/support/v6.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
  359. data/spec/support/v6.0/sorbet/rbi/gems/railties.rbi +9 -221
  360. data/spec/support/v6.0/sorbet/rbi/gems/web-console.rbi +72 -0
  361. data/spec/support/v6.0/sorbet/rbi/gems/zeitwerk.rbi +12 -4
  362. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
  363. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
  364. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
  365. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
  366. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0.rc1/activerecord.rbi +10 -0
  367. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
  368. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +361 -10
  369. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
  370. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  371. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
  372. data/spec/support/v6.0/sorbet/rbi/todo.rbi +59 -0
  373. data/spec/support/v6.0/sorbet_test_cases.rb +123 -0
  374. data/spec/support/v6.0/typed-override.yaml +2 -0
  375. data/spec/test_data/v4.2/expected_helpers.rbi +5 -0
  376. data/spec/test_data/v5.0/expected_helpers.rbi +5 -0
  377. data/spec/test_data/v5.1/expected_helpers.rbi +5 -0
  378. data/spec/test_data/v5.2-no-sorbet/expected_helpers.rbi +5 -0
  379. data/spec/test_data/v5.2/expected_helpers.rbi +5 -0
  380. data/spec/test_data/v6.0/expected_helpers.rbi +5 -0
  381. data/spec/test_data/v6.0/expected_routes.rbi +12 -0
  382. metadata +356 -317
  383. data/spec/support/rails_shared/config/initializers/sorbet_rails.rb +0 -3
  384. data/spec/support/rails_shared/config/routes.rb +0 -6
  385. data/spec/support/rails_shared/lib/mythical_rbi_plugin.rb +0 -16
  386. data/spec/support/rails_shared/typed-override.yaml +0 -2
  387. data/spec/support/rails_symlinks/app/controllers +0 -1
  388. data/spec/support/rails_symlinks/app/helpers +0 -1
  389. data/spec/support/rails_symlinks/app/models +0 -1
  390. data/spec/support/rails_symlinks/config/initializers/sorbet_rails.rb +0 -1
  391. data/spec/support/rails_symlinks/config/routes.rb +0 -5
  392. data/spec/support/rails_symlinks/db/migrate +0 -1
  393. data/spec/support/rails_symlinks/lib/mythical_rbi_plugin.rb +0 -1
  394. data/spec/support/rails_symlinks/sorbet_test_cases.rb +0 -1
  395. data/spec/support/rails_symlinks/typed-override.yaml +0 -1
  396. data/spec/support/v4.2/app/helpers +0 -1
  397. data/spec/support/v4.2/app/models +0 -1
  398. data/spec/support/v4.2/config/initializers/sorbet_rails.rb +0 -1
  399. data/spec/support/v4.2/config/secrets.yml +0 -22
  400. data/spec/support/v4.2/lib/mythical_rbi_plugin.rb +0 -1
  401. data/spec/support/v4.2/sorbet/rbi/gems/binding_of_caller.rbi +0 -22
  402. data/spec/support/v4.2/sorbet/rbi/gems/debug_inspector.rbi +0 -18
  403. data/spec/support/v4.2/sorbet/rbi/gems/rdoc.rbi +0 -1053
  404. data/spec/support/v4.2/sorbet/rbi/gems/sdoc.rbi +0 -73
  405. data/spec/support/v4.2/sorbet_test_cases.rb +0 -1
  406. data/spec/support/v4.2/typed-override.yaml +0 -1
  407. data/spec/support/v5.0/app/channels/application_cable/channel.rb +0 -5
  408. data/spec/support/v5.0/app/channels/application_cable/connection.rb +0 -5
  409. data/spec/support/v5.0/app/controllers +0 -1
  410. data/spec/support/v5.0/app/helpers +0 -1
  411. data/spec/support/v5.0/app/models +0 -1
  412. data/spec/support/v5.0/config/cable.yml +0 -9
  413. data/spec/support/v5.0/config/initializers/cors.rb +0 -17
  414. data/spec/support/v5.0/config/initializers/sorbet_rails.rb +0 -1
  415. data/spec/support/v5.0/config/secrets.yml +0 -22
  416. data/spec/support/v5.0/db/migrate +0 -1
  417. data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +0 -1
  418. data/spec/support/v5.0/rails_symlinks/app/controllers +0 -1
  419. data/spec/support/v5.0/rails_symlinks/app/models +0 -1
  420. data/spec/support/v5.0/rails_symlinks/config/routes.rb +0 -6
  421. data/spec/support/v5.0/rails_symlinks/db/migrate +0 -1
  422. data/spec/support/v5.0/sorbet/rbi/gems/actioncable.rbi +0 -309
  423. data/spec/support/v5.0/sorbet/rbi/gems/method_source.rbi +0 -63
  424. data/spec/support/v5.0/sorbet/rbi/gems/minitest.rbi +0 -276
  425. data/spec/support/v5.0/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
  426. data/spec/support/v5.0/sorbet/rbi/gems/rake.rbi +0 -255
  427. data/spec/support/v5.0/sorbet/rbi/gems/thor.rbi +0 -401
  428. data/spec/support/v5.0/sorbet_test_cases.rb +0 -1
  429. data/spec/support/v5.0/test/test_helper.rb +0 -11
  430. data/spec/support/v5.0/typed-override.yaml +0 -1
  431. data/spec/support/v5.1/app/channels/application_cable/channel.rb +0 -5
  432. data/spec/support/v5.1/app/channels/application_cable/connection.rb +0 -5
  433. data/spec/support/v5.1/app/controllers +0 -1
  434. data/spec/support/v5.1/app/helpers +0 -1
  435. data/spec/support/v5.1/app/models +0 -1
  436. data/spec/support/v5.1/bin/spring +0 -17
  437. data/spec/support/v5.1/config/cable.yml +0 -10
  438. data/spec/support/v5.1/config/initializers/cors.rb +0 -17
  439. data/spec/support/v5.1/config/initializers/sorbet_rails.rb +0 -1
  440. data/spec/support/v5.1/config/routes.rb +0 -1
  441. data/spec/support/v5.1/config/secrets.yml +0 -32
  442. data/spec/support/v5.1/config/spring.rb +0 -7
  443. data/spec/support/v5.1/db/migrate +0 -1
  444. data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +0 -1
  445. data/spec/support/v5.1/sorbet/rbi/gems/actioncable.rbi +0 -309
  446. data/spec/support/v5.1/sorbet/rbi/gems/method_source.rbi +0 -63
  447. data/spec/support/v5.1/sorbet/rbi/gems/minitest.rbi +0 -276
  448. data/spec/support/v5.1/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
  449. data/spec/support/v5.1/sorbet/rbi/gems/rake.rbi +0 -255
  450. data/spec/support/v5.1/sorbet/rbi/gems/thor.rbi +0 -450
  451. data/spec/support/v5.1/sorbet_test_cases.rb +0 -1
  452. data/spec/support/v5.1/test/test_helper.rb +0 -11
  453. data/spec/support/v5.1/typed-override.yaml +0 -1
  454. data/spec/support/v5.2-no-sorbet/app/channels/application_cable/channel.rb +0 -5
  455. data/spec/support/v5.2-no-sorbet/app/channels/application_cable/connection.rb +0 -5
  456. data/spec/support/v5.2-no-sorbet/app/controllers +0 -1
  457. data/spec/support/v5.2-no-sorbet/app/helpers +0 -1
  458. data/spec/support/v5.2-no-sorbet/app/models +0 -1
  459. data/spec/support/v5.2-no-sorbet/bin/spring +0 -17
  460. data/spec/support/v5.2-no-sorbet/config/cable.yml +0 -10
  461. data/spec/support/v5.2-no-sorbet/config/credentials.yml.enc +0 -1
  462. data/spec/support/v5.2-no-sorbet/config/initializers/cors.rb +0 -17
  463. data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +0 -1
  464. data/spec/support/v5.2-no-sorbet/config/routes.rb +0 -1
  465. data/spec/support/v5.2-no-sorbet/config/spring.rb +0 -7
  466. data/spec/support/v5.2-no-sorbet/db/migrate +0 -1
  467. data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +0 -1
  468. data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +0 -1
  469. data/spec/support/v5.2-no-sorbet/test/test_helper.rb +0 -11
  470. data/spec/support/v5.2-no-sorbet/typed-override.yaml +0 -1
  471. data/spec/support/v5.2/app/channels/application_cable/channel.rb +0 -5
  472. data/spec/support/v5.2/app/channels/application_cable/connection.rb +0 -5
  473. data/spec/support/v5.2/app/controllers +0 -1
  474. data/spec/support/v5.2/app/helpers +0 -1
  475. data/spec/support/v5.2/app/models +0 -1
  476. data/spec/support/v5.2/bin/spring +0 -17
  477. data/spec/support/v5.2/config/cable.yml +0 -10
  478. data/spec/support/v5.2/config/credentials.yml.enc +0 -1
  479. data/spec/support/v5.2/config/initializers/cors.rb +0 -17
  480. data/spec/support/v5.2/config/initializers/sorbet_rails.rb +0 -1
  481. data/spec/support/v5.2/config/routes.rb +0 -1
  482. data/spec/support/v5.2/config/spring.rb +0 -7
  483. data/spec/support/v5.2/db/migrate +0 -1
  484. data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +0 -1
  485. data/spec/support/v5.2/sorbet/rbi/gems/actioncable.rbi +0 -309
  486. data/spec/support/v5.2/sorbet/rbi/gems/method_source.rbi +0 -63
  487. data/spec/support/v5.2/sorbet/rbi/gems/minitest.rbi +0 -276
  488. data/spec/support/v5.2/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
  489. data/spec/support/v5.2/sorbet/rbi/gems/rake.rbi +0 -251
  490. data/spec/support/v5.2/sorbet/rbi/gems/thor.rbi +0 -449
  491. data/spec/support/v5.2/sorbet_test_cases.rb +0 -1
  492. data/spec/support/v5.2/test/integration/.keep +0 -0
  493. data/spec/support/v5.2/test/mailers/.keep +0 -0
  494. data/spec/support/v5.2/test/models/.keep +0 -0
  495. data/spec/support/v5.2/test/test_helper.rb +0 -11
  496. data/spec/support/v5.2/typed-override.yaml +0 -1
  497. data/spec/support/v6.0/app/channels/application_cable/channel.rb +0 -5
  498. data/spec/support/v6.0/app/channels/application_cable/connection.rb +0 -5
  499. data/spec/support/v6.0/app/controllers +0 -1
  500. data/spec/support/v6.0/app/helpers +0 -1
  501. data/spec/support/v6.0/app/models +0 -1
  502. data/spec/support/v6.0/config/cable.yml +0 -10
  503. data/spec/support/v6.0/config/credentials.yml.enc +0 -1
  504. data/spec/support/v6.0/config/initializers/cors.rb +0 -17
  505. data/spec/support/v6.0/config/initializers/sorbet_rails.rb +0 -1
  506. data/spec/support/v6.0/db/migrate +0 -1
  507. data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +0 -1
  508. data/spec/support/v6.0/sorbet/rbi/gems/actioncable.rbi +0 -245
  509. data/spec/support/v6.0/sorbet/rbi/gems/method_source.rbi +0 -63
  510. data/spec/support/v6.0/sorbet/rbi/gems/minitest.rbi +0 -276
  511. data/spec/support/v6.0/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
  512. data/spec/support/v6.0/sorbet/rbi/gems/rake.rbi +0 -254
  513. data/spec/support/v6.0/sorbet/rbi/gems/thor.rbi +0 -450
  514. data/spec/support/v6.0/sorbet_test_cases.rb +0 -1
  515. data/spec/support/v6.0/test/channels/application_cable/connection_test.rb +0 -12
  516. data/spec/support/v6.0/test/controllers/.keep +0 -0
  517. data/spec/support/v6.0/test/fixtures/.keep +0 -0
  518. data/spec/support/v6.0/test/fixtures/files/.keep +0 -0
  519. data/spec/support/v6.0/test/integration/.keep +0 -0
  520. data/spec/support/v6.0/test/mailers/.keep +0 -0
  521. data/spec/support/v6.0/test/models/.keep +0 -0
  522. data/spec/support/v6.0/test/test_helper.rb +0 -14
  523. data/spec/support/v6.0/typed-override.yaml +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cdf5c9e5cc4d021af0e9206c53d9682288bb204f85179bffc2f041b2b783f8c8
4
- data.tar.gz: 72de625982952376be79c47926266d7d25767b3b015b463c9302e75421643278
3
+ metadata.gz: 2b140547379c65a11d38f65b8f1947e8d14e904e17a45d3a47d00898414cfecc
4
+ data.tar.gz: 491a878f313376278994b35ae9a1fd2a62408be09572167f92d4ea822da54562
5
5
  SHA512:
6
- metadata.gz: 3e59b36bf6be3ee5f8eb15db96a0b51a624557a4c1debebfeffe49b764b9670763e4437b6eba08137995126c07d150898f0cdceaa486b103f265929917a514ad
7
- data.tar.gz: 5ae9763e3c5d1bafbfe6d847077abd8af4a7a80cabaa626ed723a66a036f8cc383dd26e242bffb055adedf40f5ee000d40394cadb405dd23c5dd1449748a722c
6
+ metadata.gz: ffa8138e362bb2b8799826fc14b39cc2bd0e213e56e9aa2e783e476cd1d92b84561be6844bf2cca573339f432815fa9d95ba3aef3d88fbba78d226d3edf43f3a
7
+ data.tar.gz: 03c4a2fcc89ac330c883a098b44864bf3bff7170d0b929c84e4a38e3b806be322f988babaef8508f87c8dcf41ae4d1bb1859df05a2dfd4343ea24ea4395b2e8f
data/.gitignore CHANGED
@@ -73,8 +73,10 @@ build-iPhoneSimulator/
73
73
  /spec/support/**/public/assets
74
74
  .byebug_history
75
75
 
76
- # Ignore master key for decrypting credentials and more.
76
+ # Ignore master key for decrypting credentials and the secrets.yml that was used in older versions of Rails.
77
77
  /spec/support/**/config/master.key
78
+ /spec/support/**/config/secrets.yml
79
+ /spec/support/**/config/credentials.yml.enc
78
80
 
79
81
  # Ignore sorbet-rails generated files
80
82
  /spec/support/**/sorbet/rails-rbi/*
@@ -87,6 +89,9 @@ build-iPhoneSimulator/
87
89
  /spec/support/v5.2-no-sorbet/sorbet/*
88
90
  /spec/support/v5.2-no-sorbet/sorbet/**/*
89
91
 
92
+ # Ignore files in the public/ directories.
93
+ /spec/support/**/public/*
94
+
90
95
  # editor swap files
91
96
  *.swp
92
97
  *.swo
@@ -19,7 +19,7 @@ matrix:
19
19
  - rvm: 2.5
20
20
  env: RAILS_VERSION=5.2 SORBET_VERSION=0.4.4602
21
21
  - rvm: 2.5
22
- env: TEST_SRB_INIT=true
22
+ env: RAILS_VERSION=5.2 TEST_SRB_INIT=true
23
23
  exclude:
24
24
  - rvm: 2.3
25
25
  env: RAILS_VERSION=6.0
@@ -62,7 +62,10 @@ The most important files are:
62
62
  Generates RBI files for models. You can regenerate these using `bundle exec rake rails_rbi:models`.
63
63
 
64
64
  * [`lib/sorbet-rails/routes_rbi_formatter.rb`](lib/sorbet-rails/routes_rbi_formatter.rb):
65
- Generates an RBI files for routes. You can regenerate these using `bundle exec rake rails_rbi:routes`.
65
+ Generates an RBI file for routes. You can regenerate this using `bundle exec rake rails_rbi:routes`.
66
+
67
+ * [`lib/sorbet-rails/helper_rbi_formatter.rb`](lib/sorbet-rails/helper_rbi_formatter.rb):
68
+ Generates an RBI file for helpers. You can regenerate this using `bundle exec rake rails_rbi:helpers`.
66
69
 
67
70
  ## Tests
68
71
 
@@ -109,19 +112,21 @@ execution to stop, which will then start a debugger. For more, check out the
109
112
 
110
113
  ### Writing Tests
111
114
 
112
- Tests are in the `_spec.rb` files in the [`spec/`](spec/) directory. Sorbet's `srb tc` test cases are in [`spec/support/rails_shared/sorbet_test_cases.rb`](spec/support/rails_shared/sorbet_test_cases.rb).
113
-
114
- Rails apps are stored in [`spec/support/`](spec/support/). Code shared across Rails versions
115
- (models, views, controllers) are in [`spec/support/rails_shared/`](spec/support/rails_shared/)
116
- and symlinked to the individual Rails apps.
115
+ Tests are in the `_spec.rb` files in the [`spec/`](spec/) directory. Sorbet's `srb tc` test
116
+ cases are in [`spec/generators/sorbet_test_cases.rb`](spec/generators/sorbet_test_cases.rb).
117
117
 
118
- To update the routes, see
119
- [`rails_shared/config/routes.rb`](spec/support/rails_shared/config/routes.rb)
120
- and [`rails_shared/app/controller/`](spec/support/rails_shared/app/controller/).
118
+ Rails apps are stored in [`spec/support/`](spec/support/). All models,
119
+ controllers, helpers, migrations, and any other shared code comes
120
+ from [`spec/generators/rails-template.rb`](spec/generators/rails-template.rb).
121
+ The only exception to this is `spec/generators/sorbet_test_cases.rb`, which is
122
+ copied into each app with `cp`.
121
123
 
122
- To update the models, see [`rails_shared/app/models/`](spec/support/rails_shared/app/models/).
123
- Add database migrations to [`rails_shared/db/migrate/`](spec/support/rails_shared/db/migrate/)
124
- and remember to run `bundle exec rake db:migrate` in each application directory.
124
+ The `rails-template.rb` file uses the
125
+ [Rails Application Template](https://guides.rubyonrails.org/rails_application_templates.html)
126
+ functionality included in Rails. You can then regenerate each Rails app from
127
+ the same file using `bundle _1.17.3_ exec rake update_spec:v4.2`, `bundle exec rake update_spec:v5.0`,
128
+ `bundle exec rake update_spec:v5.1`, etc. (or just `bundle exec rake update_spec:v5_plus`,
129
+ though this excludes regenerating 4.2 because 4.2 blocks usage of Bundler 2.x).
125
130
 
126
131
  #### Expected Output
127
132
 
@@ -135,3 +140,7 @@ by running:
135
140
  Only do this once you're confident that your code is correct, because it will update
136
141
  the expected test data stored in [`spec/test_data/`](spec/test_data/) based on your current
137
142
  code, and all tests will then pass.
143
+
144
+ If you want to update `sorbet_test_cases.rb`, you can run `bundle exec rake update_spec:sorbet_test_cases`
145
+ to copy the file from `spec/generators/sorbet_test_cases.rb` into each of the Rails apps
146
+ in `spec/support/`.
data/Rakefile CHANGED
@@ -4,3 +4,84 @@ require 'bundler/gem_tasks'
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
+
8
+ namespace :update_spec do
9
+ require 'fileutils'
10
+
11
+ # This excludes 4.2 because it won't work with Bundler 2.0
12
+ desc "Generate Rails apps for all versions (except 4.2)."
13
+ task :v5_plus do |t, args|
14
+ Rake::Task['update_spec:v6_0'].invoke
15
+ Rake::Task['update_spec:v5_2'].invoke
16
+ Rake::Task['update_spec:v5_2_no_sorbet'].invoke
17
+ Rake::Task['update_spec:v5_1'].invoke
18
+ Rake::Task['update_spec:v5_0'].invoke
19
+ end
20
+
21
+ desc "Delete the Rails 6 spec directory and regenerate it."
22
+ task :v6_0 do |t, args|
23
+ Bundler.with_clean_env do
24
+ FileUtils.rm_rf 'spec/support/v6.0' if File.directory?('spec/support/v6.0')
25
+ system("gem install rails -v 6.0.0.rc2")
26
+ system("rails _6.0.0.rc2_ -v")
27
+ system("RAILS_VERSION='6.0' rails _6.0.0.rc2_ new --template spec/generators/rails-template.rb spec/support/v6.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
28
+ end
29
+ end
30
+
31
+ desc "Delete the Rails 5.2 spec directory and regenerate it."
32
+ task :v5_2 do |t, args|
33
+ Bundler.with_clean_env do
34
+ FileUtils.rm_rf 'spec/support/v5.2' if File.directory?('spec/support/v5.2')
35
+ system("gem install rails -v 5.2.3")
36
+ system("rails _5.2.3_ -v")
37
+ system("RAILS_VERSION='5.2' rails _5.2.3_ new --template spec/generators/rails-template.rb spec/support/v5.2 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
38
+ end
39
+ end
40
+
41
+ desc "Delete the Rails 5.2-no-sorbet spec directory and regenerate it."
42
+ task :v5_2_no_sorbet do |t, args|
43
+ Bundler.with_clean_env do
44
+ FileUtils.rm_rf 'spec/support/v5.2-no-sorbet' if File.directory?('spec/support/v5.2-no-sorbet')
45
+ system("gem install rails -v 5.2.3")
46
+ system("rails _5.2.3_ -v")
47
+ system("RUN_WITH_SORBET='false' RAILS_VERSION='5.2' rails _5.2.3_ new --template spec/generators/rails-template.rb spec/support/v5.2-no-sorbet --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
48
+ end
49
+ end
50
+
51
+ desc "Delete the Rails 5.1 spec directory and regenerate it."
52
+ task :v5_1 do |t, args|
53
+ Bundler.with_clean_env do
54
+ FileUtils.rm_rf 'spec/support/v5.1' if File.directory?('spec/support/v5.1')
55
+ system("gem install rails -v 5.1.7")
56
+ system("rails _5.1.7_ -v")
57
+ system("RAILS_VERSION='5.1' rails _5.1.7_ new --template spec/generators/rails-template.rb spec/support/v5.1 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
58
+ end
59
+ end
60
+
61
+ desc "Delete the Rails 5.0 spec directory and regenerate it."
62
+ task :v5_0 do |t, args|
63
+ Bundler.with_clean_env do
64
+ FileUtils.rm_rf 'spec/support/v5.0' if File.directory?('spec/support/v5.0')
65
+ system("gem install rails -v 5.0.7")
66
+ system("rails _5.0.7_ -v")
67
+ system("RAILS_VERSION='5.0' rails _5.0.7_ new --template spec/generators/rails-template.rb spec/support/v5.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
68
+ end
69
+ end
70
+
71
+ desc "Delete the Rails 4.2 spec directory and regenerate it."
72
+ task :v4_2 do |t, args|
73
+ Bundler.with_clean_env do
74
+ FileUtils.rm_rf 'spec/support/v4.2' if File.directory?('spec/support/v4.2')
75
+ system("gem install rails -v 4.2.11")
76
+ system("rails _4.2.11_ -v")
77
+ system("RAILS_VERSION='4.2' rails _4.2.11_ new --template spec/generators/rails-template.rb spec/support/v4.2 --skip-javascript --skip-test --skip-sprockets --skip-spring --skip-listen")
78
+ end
79
+ end
80
+
81
+ desc "Update sorbet_test_cases.rb in all the Rails apps in spec/support."
82
+ task :sorbet_test_cases do |t, args|
83
+ ['v6.0', 'v5.2', 'v5.2-no-sorbet', 'v5.1', 'v5.0', 'v4.2'].each do |version|
84
+ FileUtils.cp("spec/generators/sorbet_test_cases.rb", "spec/support/#{version}/sorbet_test_cases.rb")
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ class KaminariPlugin < SorbetRails::ModelPlugins::Base
3
+ # Kaminari generates a dynamic `page` method on ActiveRecord relations.
4
+ # https://github.com/kaminari/kaminari/blob/c5186f5d9b7f23299d115408e62047447fd3189d/kaminari-activerecord/lib/kaminari/activerecord/active_record_model_extension.rb#L15
5
+ sig { params(root: Parlour::RbiGenerator::Namespace).void.implementation }
6
+ def generate(root)
7
+ return unless @model_class.include?(Kaminari::ActiveRecordModelExtension)
8
+
9
+ # Get the configured Kaminari page method name, or fall back to 'page' if necessary.
10
+ page_method = T.unsafe(Kaminari).config.page_method_name || 'page'
11
+
12
+ ar_querying_rbi = root.create_module(model_relation_shared_module_name)
13
+ ar_querying_rbi.create_method(
14
+ page_method.to_s,
15
+ parameters: [
16
+ Parameter.new('num', type: 'T.nilable(Integer)', default: 'nil')
17
+ ],
18
+ return_type: model_relation_class_name
19
+ )
20
+ end
21
+ end
@@ -49,15 +49,19 @@ namespace :rails_rbi do
49
49
  end
50
50
 
51
51
  # If ApplicationController doesn't work or doesn't return any helpers,
52
- # use ActionController::Base.
53
- if ActionController::Base.methods.include?(:modules_for_helpers) && (helpers.length == 0 || helpers.nil?)
52
+ # try using ActionController::Base.
53
+ if ActionController::Base.methods.include?(:modules_for_helpers) && (helpers.nil? || helpers.length == 0)
54
54
  helpers = ActionController::Base.modules_for_helpers([:all])
55
55
  end
56
56
 
57
- formatter = SorbetRails::HelperRbiFormatter.new(helpers)
58
- file_path = Rails.root.join("sorbet", "rails-rbi", "helpers.rbi")
59
- FileUtils.mkdir_p(File.dirname(file_path))
60
- File.write(file_path, formatter.generate_rbi)
57
+ if helpers.nil? || helpers.length == 0
58
+ puts 'No helpers found.'
59
+ else
60
+ formatter = SorbetRails::HelperRbiFormatter.new(helpers)
61
+ file_path = Rails.root.join("sorbet", "rails-rbi", "helpers.rbi")
62
+ FileUtils.mkdir_p(File.dirname(file_path))
63
+ File.write(file_path, formatter.generate_rbi)
64
+ end
61
65
  end
62
66
 
63
67
  def generate_rbis_for_models(model_classes, available_classes)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{sorbet-rails}
3
- s.version = "0.5.0"
3
+ s.version = "0.5.1"
4
4
  s.date = %q{2019-04-18}
5
5
  s.summary = %q{Set of tools to make Sorbet work with Rails seamlessly.}
6
6
  s.authors = ["Chan Zuckerberg Initiative"]
@@ -32,9 +32,9 @@ cd $current_dir
32
32
 
33
33
  if [[ -z $RAILS_VERSION ]]; then
34
34
  echo "---- Run DEFAULT ----"
35
- bundle update && bundle exec rake
35
+ bundle update && DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake
36
36
  else
37
37
  echo "---- Run $RAILS_VERSION ----"
38
38
  RAILS_VERSION=$RAILS_VERSION bundle $bundle_version update
39
- RAILS_VERSION=$RAILS_VERSION bundle $bundle_version exec rake
39
+ RAILS_VERSION=$RAILS_VERSION DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle $bundle_version exec rake
40
40
  fi
@@ -0,0 +1,268 @@
1
+ # Generate a Rails app.
2
+ # Use the rake tasks in this repository to generate the Rails apps.
3
+
4
+ def add_gems
5
+ gem 'sorbet-rails', path: '../../../.'
6
+
7
+ sorbet_version = ENV["SORBET_VERSION"]
8
+ if sorbet_version
9
+ # mostly used to test against a stable version of Sorbet in Travis.
10
+ gem 'sorbet', sorbet_version
11
+ gem 'sorbet-runtime', sorbet_version
12
+ else
13
+ # prefer to test against latest version because sorbet is updated frequently
14
+ gem 'sorbet'
15
+ gem 'sorbet-runtime'
16
+ end
17
+ end
18
+
19
+ def add_routes
20
+ route "get 'test/index' => 'test#index'"
21
+ end
22
+
23
+ def create_initializers
24
+ initializer "sorbet_rails.rb", <<~RUBY
25
+ # typed: strict
26
+ require(Rails.root.join('lib/mythical_rbi_plugin'))
27
+ SorbetRails::ModelRbiFormatter.register_plugin(MythicalRbiPlugin)
28
+ RUBY
29
+ end
30
+
31
+ def create_lib
32
+ lib "mythical_rbi_plugin.rb", <<~'RUBY'
33
+ # typed: true
34
+ class MythicalRbiPlugin < SorbetRails::ModelPlugins::Base
35
+ def generate(root)
36
+ return unless @model_class.include?(Mythical)
37
+
38
+ model_class_rbi = root.create_class(self.model_class_name)
39
+
40
+ # ActiveSupport::Concern class method will be inserted to the class
41
+ # directly. We need to also put the sig in the model class rbi directly
42
+ model_class_rbi.create_method(
43
+ 'mythicals',
44
+ class_method: true,
45
+ return_type: "T::Array[#{@model_class.name}]",
46
+ )
47
+ end
48
+ end
49
+ RUBY
50
+ end
51
+
52
+ def create_helpers
53
+ file "app/helpers/foo_helper.rb", <<~RUBY
54
+ module FooHelper
55
+ end
56
+ RUBY
57
+
58
+ file "app/helpers/bar_helper.rb", <<~RUBY
59
+ module BarHelper
60
+ end
61
+ RUBY
62
+
63
+ file "app/helpers/baz_helper.rb", <<~RUBY
64
+ module BazHelper
65
+ end
66
+ RUBY
67
+ end
68
+
69
+ def create_models
70
+ if ENV['RAILS_VERSION'] != '4.2'
71
+ inject_into_file "app/models/application_record.rb", after: "self.abstract_class = true\n" do
72
+ # Need to include indentation manually
73
+ " scope :recent, -> { where('created_at > ?', 1.month.ago) }\n"
74
+ end
75
+ else
76
+ file "app/models/application_record.rb", <<~RUBY
77
+ class ApplicationRecord < ActiveRecord::Base
78
+ self.abstract_class = true
79
+ scope :recent, -> { where('created_at > ?', 1.month.ago) }
80
+ end
81
+ RUBY
82
+ end
83
+
84
+ file "app/models/spell_book.rb", <<~RUBY
85
+ class SpellBook < ApplicationRecord
86
+ validates :name, length: { minimum: 5 }, presence: true
87
+ belongs_to :wizard
88
+ end
89
+ RUBY
90
+
91
+ file "app/models/potion.rb", <<~RUBY
92
+ # an abstract class that has no table
93
+ class Potion < ApplicationRecord
94
+ self.abstract_class = true
95
+ end
96
+ RUBY
97
+
98
+ file "app/models/wand.rb", <<~RUBY
99
+ class Wand < ApplicationRecord
100
+ include Mythical
101
+
102
+ enum core_type: {
103
+ phoenix_feather: 0,
104
+ dragon_heartstring: 1,
105
+ unicorn_tail_hair: 2,
106
+ basilisk_horn: 3,
107
+ }
108
+
109
+ belongs_to :wizard
110
+
111
+ def wood_type
112
+ 'Type ' + super
113
+ end
114
+ end
115
+ RUBY
116
+
117
+ file "app/models/wizard.rb", <<~RUBY
118
+ class Wizard < ApplicationRecord
119
+ validates :name, length: { minimum: 5 }, presence: true
120
+
121
+ enum house: {
122
+ Gryffindor: 0,
123
+ Hufflepuff: 1,
124
+ Ravenclaw: 2,
125
+ Slytherin: 3,
126
+ }
127
+
128
+ has_one :wand
129
+ has_many :spell_books
130
+ end
131
+ RUBY
132
+
133
+ file "app/models/concerns/mythical.rb", <<~RUBY
134
+ require 'active_support/concern'
135
+ module Mythical
136
+ extend ActiveSupport::Concern
137
+
138
+ class_methods do
139
+ def mythicals
140
+ all.to_a # yeah!
141
+ end
142
+ end
143
+ end
144
+ RUBY
145
+ end
146
+
147
+ def create_migrations
148
+ if ENV["RAILS_VERSION"] == "4.2"
149
+ migration_superclass = 'ActiveRecord::Migration'
150
+ else
151
+ migration_superclass = "ActiveRecord::Migration[#{ENV['RAILS_VERSION']}]"
152
+ end
153
+
154
+ file "db/migrate/20190620000001_create_wizards.rb", <<~RUBY
155
+ class CreateWizards < #{migration_superclass}
156
+ def change
157
+ create_table :wizards do |t|
158
+ t.string :name
159
+ t.integer :house
160
+ t.string :parent_email
161
+ t.text :notes
162
+
163
+ t.timestamps
164
+ end
165
+ end
166
+ end
167
+ RUBY
168
+
169
+ file "db/migrate/20190620000002_create_wands.rb", <<~RUBY
170
+ class CreateWands < #{migration_superclass}
171
+ def change
172
+ create_table :wands do |t|
173
+ t.references :wizard, unique: true, null: false
174
+ t.string :wood_type
175
+ t.integer :core_type
176
+
177
+ t.timestamps
178
+ end
179
+ end
180
+ end
181
+ RUBY
182
+
183
+ file "db/migrate/20190620000003_create_spell_books.rb", <<~RUBY
184
+ class CreateSpellBooks < #{migration_superclass}
185
+ def change
186
+ create_table :spell_books do |t|
187
+ t.string :name
188
+ t.references :wizard
189
+ end
190
+ end
191
+ end
192
+ RUBY
193
+
194
+ file "db/migrate/20190620000004_add_more_column_types_to_wands.rb", <<~RUBY
195
+ class AddMoreColumnTypesToWands < #{migration_superclass}
196
+ def change
197
+ add_column :wands, :flexibility, :float, null: false, default: 0.5
198
+ add_column :wands, :hardness, :decimal, null: false, precision: 10, scale: 10, default: 5
199
+ add_column :wands, :reflectance, :decimal, null: false, precision: 10, scale: 0, default: 0.5
200
+ add_column :wands, :broken, :boolean, null: false, default: false
201
+ add_column :wands, :chosen_at_date, :date
202
+ add_column :wands, :chosen_at_time, :time
203
+ # JSON column type is only supported on 5.2 or higher
204
+ unless ['4.2', '5.0', '5.1'].include?(ENV['RAILS_VERSION'])
205
+ add_column :wands, :spell_history, :json
206
+ add_column :wands, :maker_info, :json, null: false, default: '{}'
207
+ end
208
+ end
209
+ end
210
+ RUBY
211
+ end
212
+
213
+ def add_sorbet_test_files
214
+ file "typed-override.yaml", <<~YAML
215
+ true:
216
+ - ./sorbet_test_cases.rb
217
+ YAML
218
+
219
+ copy_file "./sorbet_test_cases.rb", "sorbet_test_cases.rb"
220
+ end
221
+
222
+ # Get files relative to this template when copying.
223
+ def source_paths
224
+ [__dir__]
225
+ end
226
+
227
+ # Main setup
228
+ source_paths
229
+
230
+ if ['4.2', '5.0'].include?(ENV["RAILS_VERSION"])
231
+ File.open('Gemfile', 'r+') do |f|
232
+ out = ""
233
+ f.each do |line|
234
+ # We remove sdoc and web-console because they misbehave.
235
+ # sqlite needs to be limited to 1.3.x or it won't work.
236
+ out << line.gsub("gem 'sqlite3'", "gem 'sqlite3', '~> 1.3.6'") unless line =~ /gem \'(sdoc|web-console)\'.*/
237
+ end
238
+ f.pos = 0
239
+ f.print out
240
+ f.truncate(f.pos)
241
+ end
242
+ end
243
+
244
+ add_gems
245
+
246
+ after_bundle do
247
+ say "Creating application..."
248
+ add_routes
249
+ create_initializers
250
+ create_lib
251
+ create_helpers
252
+ create_models
253
+ create_migrations
254
+ add_sorbet_test_files
255
+
256
+ Bundler.with_clean_env do
257
+ # Rails 4.2 doesn't have the rails_command method, so just use run.
258
+ run "bundle exec rake db:migrate"
259
+ end
260
+
261
+ if ENV["RUN_WITH_SORBET"] != 'false'
262
+ Bundler.with_clean_env do
263
+ run "SRB_YES=true bundle exec srb init"
264
+ run "bundle exec rake rails_rbi:all"
265
+ end
266
+ end
267
+ say "Done!"
268
+ end