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
@@ -1,4 +1,3 @@
1
- # typed: strict
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -11,7 +10,7 @@
11
10
  #
12
11
  # It's strongly recommended that you check this file into your version control system.
13
12
 
14
- ActiveRecord::Schema.define(version: 2019_06_22_000000) do
13
+ ActiveRecord::Schema.define(version: 2019_06_20_000004) do
15
14
 
16
15
  create_table "spell_books", force: :cascade do |t|
17
16
  t.string "name"
@@ -1,4 +1,3 @@
1
- # typed: strong
2
1
  # This file should contain all the record creation needed to seed the database with its default values.
3
2
  # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
4
3
  #
@@ -0,0 +1,16 @@
1
+ # typed: true
2
+ class MythicalRbiPlugin < SorbetRails::ModelPlugins::Base
3
+ def generate(root)
4
+ return unless @model_class.include?(Mythical)
5
+
6
+ model_class_rbi = root.create_class(self.model_class_name)
7
+
8
+ # ActiveSupport::Concern class method will be inserted to the class
9
+ # directly. We need to also put the sig in the model class rbi directly
10
+ model_class_rbi.create_method(
11
+ 'mythicals',
12
+ class_method: true,
13
+ return_type: "T::Array[#{@model_class.name}]",
14
+ )
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "v5_2-no-sorbet",
3
+ "private": true,
4
+ "dependencies": {}
5
+ }
@@ -0,0 +1,123 @@
1
+ # typed: false
2
+ require 'sorbet-runtime'
3
+
4
+ wizard = Wizard.first!
5
+ T.assert_type!(wizard, Wizard)
6
+
7
+ # -- model columns
8
+ T.assert_type!(wizard.name, T.nilable(String))
9
+
10
+ # -- model associations
11
+ T.assert_type!(wizard.wand, T.nilable(Wand))
12
+ T.assert_type!(T.must(wizard.wand).wizard, Wizard)
13
+
14
+ T.assert_type!(wizard.spell_books, ActiveRecord::Associations::CollectionProxy)
15
+ T.reveal_type(wizard.spell_books) # SpellBook::CollectionProxy
16
+
17
+ # -- model relation
18
+ # default
19
+ T.assert_type!(Wizard.all, ActiveRecord::Relation)
20
+ T.reveal_type(Wizard.all) # Wizard::ActiveRecord_Relation
21
+
22
+ # custom scope
23
+ T.assert_type!(Wizard.recent, ActiveRecord::Relation)
24
+ T.reveal_type(Wizard.recent)
25
+
26
+ # enum scope
27
+ T.assert_type!(Wizard.Gryffindor, ActiveRecord::Relation)
28
+ T.reveal_type(Wizard.Gryffindor)
29
+
30
+ # chained scopes
31
+ T.assert_type!(Wizard.Gryffindor.recent, ActiveRecord::Relation)
32
+ T.reveal_type(Wizard.Gryffindor.recent)
33
+ T.assert_type!(Wizard.Gryffindor.recent.unscoped, ActiveRecord::Relation)
34
+ T.reveal_type(Wizard.Gryffindor.recent.unscoped)
35
+
36
+ # ActiveRecord Querying
37
+ T.assert_type!(Wizard.where(id: 1), ActiveRecord::Relation)
38
+ T.reveal_type(Wizard.where(id: 1)) # Wizard::Relation
39
+ T.assert_type!(Wizard.preload(:spell_books), ActiveRecord::Relation)
40
+ T.reveal_type(Wizard.preload(:spell_books)) # Wizard::Relation
41
+ T.assert_type!(Wizard.eager_load(:spell_books), ActiveRecord::Relation)
42
+ T.reveal_type(Wizard.eager_load(:spell_books)) # Wizard::Relation
43
+ T.assert_type!(Wizard.order(:id), ActiveRecord::Relation)
44
+ T.reveal_type(Wizard.order(:id)) # Wizard::Relation
45
+
46
+ # Finder methods -- Model
47
+ T.assert_type!(Wizard.exists?(name: 'Test'), T::Boolean)
48
+ T.assert_type!(Wizard.find(wizard.id), Wizard)
49
+ T.assert_type!(Wizard.first!, Wizard)
50
+ T.assert_type!(Wizard.first, T.nilable(Wizard))
51
+ T.assert_type!(Wizard.last!, Wizard)
52
+ T.assert_type!(Wizard.last, T.nilable(Wizard))
53
+ T.assert_type!(Wizard.first_n(5), T::Array[Wizard])
54
+ T.assert_type!(Wizard.last_n(5), T::Array[Wizard])
55
+ T.assert_type!(Wizard.find_by(name: 'Harry Potter'), T.nilable(Wizard))
56
+ T.assert_type!(Wizard.find_by!(name: 'Harry Potter'), Wizard)
57
+ T.assert_type!(Wizard.find_by_id(wizard.id), T.nilable(Wizard))
58
+ T.assert_type!(Wizard.find_by_id!(wizard.id), Wizard)
59
+
60
+ # Finder methods -- ActiveRecord::Relation
61
+ T.assert_type!(Wizard.all.exists?(name: 'Harry Potter'), T::Boolean)
62
+ T.assert_type!(Wizard.all.find(wizard.id), Wizard)
63
+ T.assert_type!(Wizard.all.first!, Wizard)
64
+ T.assert_type!(Wizard.all.first, T.nilable(Wizard))
65
+ T.assert_type!(Wizard.all.last!, Wizard)
66
+ T.assert_type!(Wizard.all.last, T.nilable(Wizard))
67
+ T.assert_type!(Wizard.all.first_n(5), T::Array[Wizard])
68
+ T.assert_type!(Wizard.all.last_n(5), T::Array[Wizard])
69
+ T.assert_type!(Wizard.all.find_by(name: 'Harry Potter'), T.nilable(Wizard))
70
+ T.assert_type!(Wizard.all.find_by!(name: 'Harry Potter'), Wizard)
71
+ T.assert_type!(Wizard.all.find_by_id(wizard.id), T.nilable(Wizard))
72
+ T.assert_type!(Wizard.all.find_by_id!(wizard.id), Wizard)
73
+
74
+ # Finder methods -- CollectionProxy
75
+ spell_book = wizard.spell_books.first!
76
+ T.assert_type!(wizard.spell_books.exists?(name: 'Fantastic Beasts'), T::Boolean)
77
+ T.assert_type!(wizard.spell_books.find(spell_book.id), SpellBook)
78
+ T.assert_type!(wizard.spell_books.first!, SpellBook)
79
+ # T.assert_type!(wizard.spell_books.first, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
80
+ T.assert_type!(wizard.spell_books.last!, SpellBook)
81
+ # T.assert_type!(wizard.spell_books.last, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
82
+ T.assert_type!(wizard.spell_books.first_n(5), T::Array[SpellBook])
83
+ T.assert_type!(wizard.spell_books.last_n(5), T::Array[SpellBook])
84
+ T.assert_type!(wizard.spell_books.find_by(name: 'Fantastic Beasts'), T.nilable(SpellBook))
85
+ T.assert_type!(wizard.spell_books.find_by!(name: 'Fantastic Beasts'), SpellBook)
86
+ T.assert_type!(wizard.spell_books.find_by_id(spell_book.id), T.nilable(SpellBook))
87
+ T.assert_type!(wizard.spell_books.find_by_id!(spell_book.id), SpellBook)
88
+
89
+ # Enumerable
90
+ T.assert_type!(Wizard.all.to_a, T::Array[Wizard])
91
+ Wizard.all.each do |w|
92
+ T.assert_type!(w, Wizard)
93
+ end
94
+ Wizard.all.map do |w|
95
+ T.assert_type!(w, Wizard) # TODO this doesn't work on Rails 4.2 or 5.0
96
+ end
97
+ Wizard.all.to_a.map do |w|
98
+ T.assert_type!(w, Wizard)
99
+ end
100
+
101
+ T.assert_type!(wizard.spell_books.to_a, T::Array[SpellBook])
102
+ wizard.spell_books.each do |sp|
103
+ T.assert_type!(sp, SpellBook)
104
+ end
105
+ wizard.spell_books.map do |sp|
106
+ T.assert_type!(sp, SpellBook) # TODO this doesn't work on Rails 4.2 or 5.0
107
+ end
108
+ wizard.spell_books.to_a.map do |sp|
109
+ T.assert_type!(sp, SpellBook) # This works on Rails 4.2
110
+ end
111
+
112
+ # Model columns
113
+ T.assert_type!(wizard.id, Integer)
114
+ T.assert_type!(wizard.id?, T::Boolean)
115
+ T.assert_type!(wizard.notes, T.nilable(String))
116
+ T.assert_type!(wizard.house, T.nilable(String))
117
+
118
+ # Model enum
119
+ T.assert_type!(wizard.Gryffindor?, T::Boolean)
120
+ T.assert_type!(Wizard.houses, T::Hash[T.any(String, Symbol), Integer])
121
+
122
+ # Mythical plugin
123
+ T.assert_type!(Wand.mythicals, T::Array[Wand])
@@ -0,0 +1,2 @@
1
+ true:
2
+ - ./sorbet_test_cases.rb
@@ -0,0 +1,31 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-journal
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+ !/log/.keep
18
+ !/tmp/.keep
19
+
20
+ # Ignore uploaded files in development
21
+ /storage/*
22
+ !/storage/.keep
23
+
24
+ /node_modules
25
+ /yarn-error.log
26
+
27
+ /public/assets
28
+ .byebug_history
29
+
30
+ # Ignore master key for decrypting credentials and more.
31
+ /config/master.key
@@ -1,16 +1,16 @@
1
1
  source 'https://rubygems.org'
2
2
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
3
 
4
- gem 'rails', '~> 5.2.3'
4
+ ruby '2.6.3'
5
5
 
6
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
7
+ gem 'rails', '~> 5.2.3'
6
8
  # Use sqlite3 as the database for Active Record
7
- gem 'sqlite3', '~> 1.4.1'
9
+ gem 'sqlite3'
8
10
  # Use Puma as the app server
9
11
  gem 'puma', '~> 3.11'
10
12
  # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
11
- # gem 'jbuilder', '~> 2.5'
12
- # Use Redis adapter to run Action Cable in production
13
- # gem 'redis', '~> 4.0'
13
+ gem 'jbuilder', '~> 2.5'
14
14
  # Use ActiveModel has_secure_password
15
15
  # gem 'bcrypt', '~> 3.1.7'
16
16
 
@@ -20,36 +20,20 @@ gem 'puma', '~> 3.11'
20
20
  # Use Capistrano for deployment
21
21
  # gem 'capistrano-rails', group: :development
22
22
 
23
- # Reduces boot times through caching; required in config/boot.rb
24
- # gem 'bootsnap', '>= 1.1.0', require: false
25
-
26
- # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
27
- # gem 'rack-cors'
28
-
29
23
  group :development, :test do
30
24
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
31
25
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
32
26
  end
33
27
 
34
28
  group :development do
35
- # gem 'listen', '>= 3.0.5', '< 3.2'
36
- # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
37
- # gem 'spring'
38
- # gem 'spring-watcher-listen', '~> 2.0.0'
29
+ # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
30
+ gem 'web-console', '>= 3.3.0'
39
31
  end
40
32
 
41
- gem 'sorbet-rails', path: '../../../.'
42
33
 
43
34
  # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
44
- # gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
45
-
46
- sorbet_version = ENV["SORBET_VERSION"]
47
- if sorbet_version
48
- # mostly used to test against a stable version of Sorbet in Travis.
49
- gem 'sorbet', sorbet_version
50
- gem 'sorbet-runtime', sorbet_version
51
- else
52
- # prefer to test against latest version because sorbet is updated frequently
53
- gem 'sorbet'
54
- gem 'sorbet-runtime'
55
- end
35
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
36
+
37
+ gem 'sorbet-rails', path: '../../../.'
38
+ gem 'sorbet'
39
+ gem 'sorbet-runtime'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.4.0)
4
+ sorbet-rails (0.5.0)
5
5
  parlour (~> 0.6.0)
6
6
 
7
7
  GEM
@@ -49,6 +49,7 @@ GEM
49
49
  minitest (~> 5.1)
50
50
  tzinfo (~> 1.1)
51
51
  arel (9.0.0)
52
+ bindex (0.8.1)
52
53
  builder (3.2.3)
53
54
  byebug (11.0.1)
54
55
  concurrent-ruby (1.1.5)
@@ -58,6 +59,8 @@ GEM
58
59
  activesupport (>= 4.2.0)
59
60
  i18n (1.6.0)
60
61
  concurrent-ruby (~> 1.0)
62
+ jbuilder (2.9.1)
63
+ activesupport (>= 4.2.0)
61
64
  loofah (2.2.3)
62
65
  crass (~> 1.0.2)
63
66
  nokogiri (>= 1.5.9)
@@ -67,10 +70,10 @@ GEM
67
70
  mimemagic (~> 0.3.2)
68
71
  method_source (0.9.2)
69
72
  mimemagic (0.3.3)
70
- mini_mime (1.0.1)
73
+ mini_mime (1.0.2)
71
74
  mini_portile2 (2.4.0)
72
75
  minitest (5.11.3)
73
- nio4r (2.3.1)
76
+ nio4r (2.4.0)
74
77
  nokogiri (1.10.3)
75
78
  mini_portile2 (~> 2.4.0)
76
79
  parlour (0.6.1)
@@ -96,7 +99,7 @@ GEM
96
99
  rails-dom-testing (2.0.3)
97
100
  activesupport (>= 4.2.0)
98
101
  nokogiri (>= 1.6)
99
- rails-html-sanitizer (1.0.4)
102
+ rails-html-sanitizer (1.2.0)
100
103
  loofah (~> 2.2, >= 2.2.2)
101
104
  railties (5.2.3)
102
105
  actionpack (= 5.2.3)
@@ -105,11 +108,11 @@ GEM
105
108
  rake (>= 0.8.7)
106
109
  thor (>= 0.19.0, < 2.0)
107
110
  rainbow (3.0.0)
108
- rake (12.3.2)
109
- sorbet (0.4.4386)
110
- sorbet-static (= 0.4.4386)
111
- sorbet-runtime (0.4.4386)
112
- sorbet-static (0.4.4386-universal-darwin-14)
111
+ rake (12.3.3)
112
+ sorbet (0.4.4602)
113
+ sorbet-static (= 0.4.4602)
114
+ sorbet-runtime (0.4.4602)
115
+ sorbet-static (0.4.4602-universal-darwin-14)
113
116
  sprockets (3.7.2)
114
117
  concurrent-ruby (~> 1.0)
115
118
  rack (> 1, < 3)
@@ -122,6 +125,11 @@ GEM
122
125
  thread_safe (0.3.6)
123
126
  tzinfo (1.2.5)
124
127
  thread_safe (~> 0.1)
128
+ web-console (3.7.0)
129
+ actionview (>= 5.0)
130
+ activemodel (>= 5.0)
131
+ bindex (>= 0.4.0)
132
+ railties (>= 5.0)
125
133
  websocket-driver (0.7.1)
126
134
  websocket-extensions (>= 0.1.0)
127
135
  websocket-extensions (0.1.4)
@@ -131,12 +139,18 @@ PLATFORMS
131
139
 
132
140
  DEPENDENCIES
133
141
  byebug
142
+ jbuilder (~> 2.5)
134
143
  puma (~> 3.11)
135
144
  rails (~> 5.2.3)
136
145
  sorbet
137
146
  sorbet-rails!
138
147
  sorbet-runtime
139
- sqlite3 (~> 1.4.1)
148
+ sqlite3
149
+ tzinfo-data
150
+ web-console (>= 3.3.0)
151
+
152
+ RUBY VERSION
153
+ ruby 2.6.3p62
140
154
 
141
155
  BUNDLED WITH
142
156
  2.0.2
@@ -0,0 +1,2 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../stylesheets .css
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
6
+ * vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,3 @@
1
+ # typed: strong
2
+ class ApplicationController < ActionController::Base
3
+ end
@@ -0,0 +1,3 @@
1
+ # typed: strong
2
+ module ApplicationHelper
3
+ end
@@ -0,0 +1,3 @@
1
+ # typed: strong
2
+ module BarHelper
3
+ end
@@ -0,0 +1,3 @@
1
+ # typed: strong
2
+ module BazHelper
3
+ end
@@ -0,0 +1,3 @@
1
+ # typed: strong
2
+ module FooHelper
3
+ end
@@ -0,0 +1,5 @@
1
+ # typed: strict
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ scope :recent, -> { where('created_at > ?', 1.month.ago) }
5
+ end
@@ -0,0 +1,11 @@
1
+ # typed: false
2
+ require 'active_support/concern'
3
+ module Mythical
4
+ extend ActiveSupport::Concern
5
+
6
+ class_methods do
7
+ def mythicals
8
+ all.to_a # yeah!
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # typed: strong
2
+ # an abstract class that has no table
3
+ class Potion < ApplicationRecord
4
+ self.abstract_class = true
5
+ end
@@ -0,0 +1,5 @@
1
+ # typed: strong
2
+ class SpellBook < ApplicationRecord
3
+ validates :name, length: { minimum: 5 }, presence: true
4
+ belongs_to :wizard
5
+ end