sorbet-rails 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -10
- data/.travis.yml +0 -2
- data/Gemfile +2 -2
- data/README.md +2 -1
- data/Rakefile +4 -15
- data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +3 -4
- data/lib/sorbet-rails/model_plugins/active_record_enum.rb +0 -8
- data/lib/sorbet-rails/model_plugins/active_record_finder_methods.rb +3 -0
- data/lib/sorbet-rails/model_plugins/active_record_named_scope.rb +4 -3
- data/lib/sorbet-rails/model_plugins/active_record_querying.rb +6 -7
- data/lib/sorbet-rails/model_plugins/active_relation_where_not.rb +2 -2
- data/lib/sorbet-rails/model_plugins/custom_finder_methods.rb +2 -5
- data/lib/sorbet-rails/model_plugins/enumerable_collections.rb +15 -0
- data/lib/sorbet-rails/model_plugins/plugins.rb +1 -1
- data/lib/sorbet-rails/model_rbi_formatter.rb +11 -13
- data/lib/sorbet-rails/model_utils.rb +49 -2
- data/lib/sorbet-rails/railtie.rb +16 -1
- data/lib/sorbet-rails/routes_rbi_formatter.rb +48 -34
- data/sorbet-rails.gemspec +1 -1
- data/spec/bin/run_all_specs.sh +0 -2
- data/spec/bin/run_spec.sh +1 -5
- data/spec/generators/rails-template.rb +24 -17
- data/spec/generators/sorbet_test_cases.rb +78 -40
- data/spec/rails_helper.rb +1 -1
- data/spec/sorbet_spec.rb +16 -14
- data/spec/support/v4.2/Gemfile.lock +6 -6
- data/spec/support/v4.2/app/models/application_record.rb +1 -2
- data/spec/support/v4.2/app/models/spell_book.rb +6 -0
- data/spec/support/v4.2/app/models/wizard.rb +2 -0
- data/spec/support/v4.2/db/migrate/20190620000003_create_spell_books.rb +1 -0
- data/spec/support/v4.2/db/schema.rb +1 -0
- data/spec/support/v4.2/sorbet_test_cases.rb +78 -40
- data/spec/support/v5.0/Gemfile.lock +6 -6
- data/spec/support/v5.0/app/models/application_record.rb +1 -2
- data/spec/support/v5.0/app/models/spell_book.rb +7 -1
- data/spec/support/v5.0/app/models/wizard.rb +2 -0
- data/spec/support/v5.0/config/initializers/new_framework_defaults.rb +1 -1
- data/spec/support/v5.0/db/migrate/20190620000003_create_spell_books.rb +1 -0
- data/spec/support/v5.0/db/schema.rb +1 -0
- data/spec/support/v5.0/sorbet_test_cases.rb +78 -40
- data/spec/support/v5.1/Gemfile.lock +6 -6
- data/spec/support/v5.1/app/models/application_record.rb +1 -2
- data/spec/support/v5.1/app/models/spell_book.rb +7 -1
- data/spec/support/v5.1/app/models/wizard.rb +2 -0
- data/spec/support/v5.1/db/migrate/20190620000003_create_spell_books.rb +1 -0
- data/spec/support/v5.1/db/schema.rb +1 -0
- data/spec/support/v5.1/sorbet_test_cases.rb +78 -40
- data/spec/support/v5.2/Gemfile +1 -1
- data/spec/support/v5.2/Gemfile.lock +7 -7
- data/spec/support/v5.2/app/models/application_record.rb +1 -2
- data/spec/support/v5.2/app/models/spell_book.rb +7 -1
- data/spec/support/v5.2/app/models/wizard.rb +2 -0
- data/spec/support/v5.2/db/migrate/20190620000003_create_spell_books.rb +1 -0
- data/spec/support/v5.2/db/schema.rb +1 -0
- data/spec/support/v5.2/sorbet_test_cases.rb +78 -40
- data/spec/support/v6.0/Gemfile +2 -3
- data/spec/support/v6.0/Gemfile.lock +64 -64
- data/spec/support/v6.0/app/models/application_record.rb +1 -2
- data/spec/support/v6.0/app/models/spell_book.rb +7 -1
- data/spec/support/v6.0/app/models/wizard.rb +2 -0
- data/spec/support/v6.0/config/puma.rb +3 -0
- data/spec/support/v6.0/db/migrate/20190620000003_create_spell_books.rb +1 -0
- data/spec/support/v6.0/db/schema.rb +1 -0
- data/spec/support/v6.0/sorbet_test_cases.rb +78 -40
- data/spec/test_data/v4.2/expected_no_routes.rbi +3 -10
- data/spec/test_data/v4.2/expected_potion.rbi +356 -52
- data/spec/test_data/v4.2/expected_routes.rbi +10 -4
- data/spec/test_data/v4.2/expected_spell_book.rbi +428 -53
- data/spec/test_data/v4.2/expected_srb_tc_output.txt +1 -80
- data/spec/test_data/v4.2/expected_wand.rbi +347 -19
- data/spec/test_data/v4.2/expected_wizard.rbi +356 -16
- data/spec/test_data/v4.2/expected_wizard_wo_spellbook.rbi +356 -16
- data/spec/test_data/v5.0/expected_internal_metadata.rbi +385 -51
- data/spec/test_data/v5.0/expected_no_routes.rbi +3 -10
- data/spec/test_data/v5.0/expected_potion.rbi +383 -52
- data/spec/test_data/v5.0/expected_routes.rbi +10 -4
- data/spec/test_data/v5.0/expected_schema_migration.rbi +385 -51
- data/spec/test_data/v5.0/expected_spell_book.rbi +455 -53
- data/spec/test_data/v5.0/expected_srb_tc_output.txt +1 -98
- data/spec/test_data/v5.0/expected_wand.rbi +374 -19
- data/spec/test_data/v5.0/expected_wizard.rbi +383 -16
- data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +383 -16
- data/spec/test_data/v5.1/expected_internal_metadata.rbi +403 -51
- data/spec/test_data/v5.1/expected_no_routes.rbi +3 -10
- data/spec/test_data/v5.1/expected_potion.rbi +401 -52
- data/spec/test_data/v5.1/expected_routes.rbi +10 -4
- data/spec/test_data/v5.1/expected_schema_migration.rbi +403 -51
- data/spec/test_data/v5.1/expected_spell_book.rbi +473 -53
- data/spec/test_data/v5.1/expected_srb_tc_output.txt +1 -80
- data/spec/test_data/v5.1/expected_wand.rbi +392 -19
- data/spec/test_data/v5.1/expected_wizard.rbi +401 -16
- data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +401 -16
- data/spec/test_data/v5.2-no-sorbet/expected_attachment.rbi +403 -51
- data/spec/test_data/v5.2-no-sorbet/expected_blob.rbi +421 -51
- data/spec/test_data/v5.2-no-sorbet/expected_internal_metadata.rbi +403 -51
- data/spec/test_data/v5.2-no-sorbet/expected_no_routes.rbi +3 -10
- data/spec/test_data/v5.2-no-sorbet/expected_potion.rbi +401 -52
- data/spec/test_data/v5.2-no-sorbet/expected_routes.rbi +15 -4
- data/spec/test_data/v5.2-no-sorbet/expected_schema_migration.rbi +403 -51
- data/spec/test_data/v5.2-no-sorbet/expected_spell_book.rbi +473 -53
- data/spec/test_data/v5.2-no-sorbet/expected_srb_tc_output.txt +1 -80
- data/spec/test_data/v5.2-no-sorbet/expected_wand.rbi +392 -19
- data/spec/test_data/v5.2-no-sorbet/expected_wizard.rbi +401 -16
- data/spec/test_data/v5.2-no-sorbet/expected_wizard_wo_spellbook.rbi +401 -16
- data/spec/test_data/v5.2/expected_attachment.rbi +403 -51
- data/spec/test_data/v5.2/expected_blob.rbi +421 -51
- data/spec/test_data/v5.2/expected_internal_metadata.rbi +403 -51
- data/spec/test_data/v5.2/expected_no_routes.rbi +3 -10
- data/spec/test_data/v5.2/expected_potion.rbi +401 -52
- data/spec/test_data/v5.2/expected_routes.rbi +15 -4
- data/spec/test_data/v5.2/expected_schema_migration.rbi +403 -51
- data/spec/test_data/v5.2/expected_spell_book.rbi +473 -53
- data/spec/test_data/v5.2/expected_srb_tc_output.txt +1 -80
- data/spec/test_data/v5.2/expected_wand.rbi +392 -19
- data/spec/test_data/v5.2/expected_wizard.rbi +401 -16
- data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +401 -16
- data/spec/test_data/v6.0/expected_attachment.rbi +439 -51
- data/spec/test_data/v6.0/expected_blob.rbi +457 -51
- data/spec/test_data/v6.0/expected_internal_metadata.rbi +439 -51
- data/spec/test_data/v6.0/expected_no_routes.rbi +3 -10
- data/spec/test_data/v6.0/expected_potion.rbi +437 -52
- data/spec/test_data/v6.0/expected_routes.rbi +25 -4
- data/spec/test_data/v6.0/expected_schema_migration.rbi +439 -51
- data/spec/test_data/v6.0/expected_spell_book.rbi +545 -53
- data/spec/test_data/v6.0/expected_srb_tc_output.txt +1 -80
- data/spec/test_data/v6.0/expected_wand.rbi +464 -19
- data/spec/test_data/v6.0/expected_wizard.rbi +473 -16
- data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +473 -16
- metadata +29 -581
- data/spec/support/v4.2/sorbet/config +0 -2
- data/spec/support/v4.2/sorbet/rbi/gems/actionmailer.rbi +0 -267
- data/spec/support/v4.2/sorbet/rbi/gems/actionpack.rbi +0 -2883
- data/spec/support/v4.2/sorbet/rbi/gems/actionview.rbi +0 -978
- data/spec/support/v4.2/sorbet/rbi/gems/activejob.rbi +0 -19
- data/spec/support/v4.2/sorbet/rbi/gems/activemodel.rbi +0 -335
- data/spec/support/v4.2/sorbet/rbi/gems/activerecord.rbi +0 -3385
- data/spec/support/v4.2/sorbet/rbi/gems/activesupport.rbi +0 -1892
- data/spec/support/v4.2/sorbet/rbi/gems/arel.rbi +0 -1109
- data/spec/support/v4.2/sorbet/rbi/gems/byebug.rbi +0 -1039
- data/spec/support/v4.2/sorbet/rbi/gems/concurrent-ruby.rbi +0 -218
- data/spec/support/v4.2/sorbet/rbi/gems/crass.rbi +0 -92
- data/spec/support/v4.2/sorbet/rbi/gems/erubis.rbi +0 -265
- data/spec/support/v4.2/sorbet/rbi/gems/globalid.rbi +0 -98
- data/spec/support/v4.2/sorbet/rbi/gems/i18n.rbi +0 -186
- data/spec/support/v4.2/sorbet/rbi/gems/jbuilder.rbi +0 -99
- data/spec/support/v4.2/sorbet/rbi/gems/loofah.rbi +0 -129
- data/spec/support/v4.2/sorbet/rbi/gems/mail.rbi +0 -1091
- data/spec/support/v4.2/sorbet/rbi/gems/mini_mime.rbi +0 -51
- data/spec/support/v4.2/sorbet/rbi/gems/minitest.rbi +0 -276
- data/spec/support/v4.2/sorbet/rbi/gems/nokogiri.rbi +0 -1010
- data/spec/support/v4.2/sorbet/rbi/gems/parlour.rbi +0 -214
- data/spec/support/v4.2/sorbet/rbi/gems/rack-test.rbi +0 -145
- data/spec/support/v4.2/sorbet/rbi/gems/rack.rbi +0 -490
- data/spec/support/v4.2/sorbet/rbi/gems/rails-deprecated_sanitizer.rbi +0 -13
- data/spec/support/v4.2/sorbet/rbi/gems/rails-dom-testing.rbi +0 -76
- data/spec/support/v4.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +0 -91
- data/spec/support/v4.2/sorbet/rbi/gems/railties.rbi +0 -617
- data/spec/support/v4.2/sorbet/rbi/gems/sqlite3.rbi +0 -345
- data/spec/support/v4.2/sorbet/rbi/gems/thor.rbi +0 -401
- data/spec/support/v4.2/sorbet/rbi/gems/thread_safe.rbi +0 -81
- data/spec/support/v4.2/sorbet/rbi/gems/tzinfo.rbi +0 -407
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +0 -13
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +0 -468
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -422
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +0 -1263
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -458
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8575
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -99
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +0 -22
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
- data/spec/support/v4.2/sorbet/rbi/todo.rbi +0 -66
- data/spec/support/v5.0/sorbet/config +0 -2
- data/spec/support/v5.0/sorbet/rbi/gems/actionmailer.rbi +0 -331
- data/spec/support/v5.0/sorbet/rbi/gems/actionpack.rbi +0 -2987
- data/spec/support/v5.0/sorbet/rbi/gems/actionview.rbi +0 -1092
- data/spec/support/v5.0/sorbet/rbi/gems/activejob.rbi +0 -230
- data/spec/support/v5.0/sorbet/rbi/gems/activemodel.rbi +0 -562
- data/spec/support/v5.0/sorbet/rbi/gems/activerecord.rbi +0 -3684
- data/spec/support/v5.0/sorbet/rbi/gems/activesupport.rbi +0 -1943
- data/spec/support/v5.0/sorbet/rbi/gems/arel.rbi +0 -1222
- data/spec/support/v5.0/sorbet/rbi/gems/byebug.rbi +0 -1039
- data/spec/support/v5.0/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1587
- data/spec/support/v5.0/sorbet/rbi/gems/crass.rbi +0 -92
- data/spec/support/v5.0/sorbet/rbi/gems/erubis.rbi +0 -265
- data/spec/support/v5.0/sorbet/rbi/gems/globalid.rbi +0 -98
- data/spec/support/v5.0/sorbet/rbi/gems/i18n.rbi +0 -191
- data/spec/support/v5.0/sorbet/rbi/gems/jbuilder.rbi +0 -99
- data/spec/support/v5.0/sorbet/rbi/gems/loofah.rbi +0 -129
- data/spec/support/v5.0/sorbet/rbi/gems/mail.rbi +0 -1091
- data/spec/support/v5.0/sorbet/rbi/gems/mini_mime.rbi +0 -51
- data/spec/support/v5.0/sorbet/rbi/gems/nokogiri.rbi +0 -1010
- data/spec/support/v5.0/sorbet/rbi/gems/parlour.rbi +0 -214
- data/spec/support/v5.0/sorbet/rbi/gems/puma.rbi +0 -570
- data/spec/support/v5.0/sorbet/rbi/gems/rack-test.rbi +0 -145
- data/spec/support/v5.0/sorbet/rbi/gems/rack.rbi +0 -489
- data/spec/support/v5.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +0 -91
- data/spec/support/v5.0/sorbet/rbi/gems/railties.rbi +0 -472
- data/spec/support/v5.0/sorbet/rbi/gems/sqlite3.rbi +0 -345
- data/spec/support/v5.0/sorbet/rbi/gems/thread_safe.rbi +0 -81
- data/spec/support/v5.0/sorbet/rbi/gems/tzinfo.rbi +0 -407
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +0 -13
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +0 -468
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -422
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +0 -1263
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -458
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8575
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -99
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +0 -22
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
- data/spec/support/v5.0/sorbet/rbi/todo.rbi +0 -68
- data/spec/support/v5.1/sorbet/config +0 -2
- data/spec/support/v5.1/sorbet/rbi/gems/actionmailer.rbi +0 -382
- data/spec/support/v5.1/sorbet/rbi/gems/actionpack.rbi +0 -3027
- data/spec/support/v5.1/sorbet/rbi/gems/actionview.rbi +0 -1114
- data/spec/support/v5.1/sorbet/rbi/gems/activejob.rbi +0 -238
- data/spec/support/v5.1/sorbet/rbi/gems/activemodel.rbi +0 -547
- data/spec/support/v5.1/sorbet/rbi/gems/activerecord.rbi +0 -3943
- data/spec/support/v5.1/sorbet/rbi/gems/activesupport.rbi +0 -2042
- data/spec/support/v5.1/sorbet/rbi/gems/arel.rbi +0 -1220
- data/spec/support/v5.1/sorbet/rbi/gems/bindex.rbi +0 -36
- data/spec/support/v5.1/sorbet/rbi/gems/byebug.rbi +0 -1039
- data/spec/support/v5.1/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1587
- data/spec/support/v5.1/sorbet/rbi/gems/crass.rbi +0 -92
- data/spec/support/v5.1/sorbet/rbi/gems/erubi.rbi +0 -26
- data/spec/support/v5.1/sorbet/rbi/gems/globalid.rbi +0 -98
- data/spec/support/v5.1/sorbet/rbi/gems/i18n.rbi +0 -191
- data/spec/support/v5.1/sorbet/rbi/gems/jbuilder.rbi +0 -99
- data/spec/support/v5.1/sorbet/rbi/gems/loofah.rbi +0 -129
- data/spec/support/v5.1/sorbet/rbi/gems/mail.rbi +0 -1091
- data/spec/support/v5.1/sorbet/rbi/gems/mini_mime.rbi +0 -51
- data/spec/support/v5.1/sorbet/rbi/gems/nokogiri.rbi +0 -1010
- data/spec/support/v5.1/sorbet/rbi/gems/parlour.rbi +0 -214
- data/spec/support/v5.1/sorbet/rbi/gems/puma.rbi +0 -570
- data/spec/support/v5.1/sorbet/rbi/gems/rack-test.rbi +0 -161
- data/spec/support/v5.1/sorbet/rbi/gems/rack.rbi +0 -489
- data/spec/support/v5.1/sorbet/rbi/gems/rails-html-sanitizer.rbi +0 -91
- data/spec/support/v5.1/sorbet/rbi/gems/railties.rbi +0 -498
- data/spec/support/v5.1/sorbet/rbi/gems/sqlite3.rbi +0 -353
- data/spec/support/v5.1/sorbet/rbi/gems/thread_safe.rbi +0 -81
- data/spec/support/v5.1/sorbet/rbi/gems/tzinfo.rbi +0 -407
- data/spec/support/v5.1/sorbet/rbi/gems/web-console.rbi +0 -73
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +0 -13
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +0 -468
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -422
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +0 -1263
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -458
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8575
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -99
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +0 -22
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
- data/spec/support/v5.1/sorbet/rbi/todo.rbi +0 -68
- data/spec/support/v5.2-no-sorbet/.gitignore +0 -31
- data/spec/support/v5.2-no-sorbet/Gemfile +0 -39
- data/spec/support/v5.2-no-sorbet/Gemfile.lock +0 -156
- data/spec/support/v5.2-no-sorbet/README.md +0 -24
- data/spec/support/v5.2-no-sorbet/Rakefile +0 -6
- data/spec/support/v5.2-no-sorbet/app/assets/config/manifest.js +0 -2
- data/spec/support/v5.2-no-sorbet/app/assets/images/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/app/assets/stylesheets/application.css +0 -15
- data/spec/support/v5.2-no-sorbet/app/controllers/application_controller.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/controllers/concerns/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/app/helpers/application_helper.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/helpers/bar_helper.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/helpers/baz_helper.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/helpers/foo_helper.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/jobs/application_job.rb +0 -2
- data/spec/support/v5.2-no-sorbet/app/mailers/application_mailer.rb +0 -4
- data/spec/support/v5.2-no-sorbet/app/models/application_record.rb +0 -4
- data/spec/support/v5.2-no-sorbet/app/models/concerns/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/app/models/concerns/mythical.rb +0 -10
- data/spec/support/v5.2-no-sorbet/app/models/potion.rb +0 -4
- data/spec/support/v5.2-no-sorbet/app/models/spell_book.rb +0 -4
- data/spec/support/v5.2-no-sorbet/app/models/wand.rb +0 -16
- data/spec/support/v5.2-no-sorbet/app/models/wizard.rb +0 -13
- data/spec/support/v5.2-no-sorbet/app/views/layouts/application.html.erb +0 -14
- data/spec/support/v5.2-no-sorbet/app/views/layouts/mailer.html.erb +0 -13
- data/spec/support/v5.2-no-sorbet/app/views/layouts/mailer.text.erb +0 -1
- data/spec/support/v5.2-no-sorbet/bin/bundle +0 -3
- data/spec/support/v5.2-no-sorbet/bin/rails +0 -4
- data/spec/support/v5.2-no-sorbet/bin/rake +0 -4
- data/spec/support/v5.2-no-sorbet/bin/setup +0 -36
- data/spec/support/v5.2-no-sorbet/bin/update +0 -31
- data/spec/support/v5.2-no-sorbet/bin/yarn +0 -11
- data/spec/support/v5.2-no-sorbet/config.ru +0 -5
- data/spec/support/v5.2-no-sorbet/config/application.rb +0 -33
- data/spec/support/v5.2-no-sorbet/config/boot.rb +0 -3
- data/spec/support/v5.2-no-sorbet/config/database.yml +0 -25
- data/spec/support/v5.2-no-sorbet/config/environment.rb +0 -5
- data/spec/support/v5.2-no-sorbet/config/environments/development.rb +0 -54
- data/spec/support/v5.2-no-sorbet/config/environments/production.rb +0 -80
- data/spec/support/v5.2-no-sorbet/config/environments/test.rb +0 -46
- data/spec/support/v5.2-no-sorbet/config/initializers/application_controller_renderer.rb +0 -8
- data/spec/support/v5.2-no-sorbet/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/support/v5.2-no-sorbet/config/initializers/content_security_policy.rb +0 -25
- data/spec/support/v5.2-no-sorbet/config/initializers/cookies_serializer.rb +0 -5
- data/spec/support/v5.2-no-sorbet/config/initializers/filter_parameter_logging.rb +0 -4
- data/spec/support/v5.2-no-sorbet/config/initializers/inflections.rb +0 -16
- data/spec/support/v5.2-no-sorbet/config/initializers/mime_types.rb +0 -4
- data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +0 -3
- data/spec/support/v5.2-no-sorbet/config/initializers/wrap_parameters.rb +0 -14
- data/spec/support/v5.2-no-sorbet/config/locales/en.yml +0 -33
- data/spec/support/v5.2-no-sorbet/config/puma.rb +0 -34
- data/spec/support/v5.2-no-sorbet/config/routes.rb +0 -4
- data/spec/support/v5.2-no-sorbet/config/storage.yml +0 -34
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000001_create_wizards.rb +0 -12
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000002_create_wands.rb +0 -11
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000003_create_spell_books.rb +0 -8
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000004_add_more_column_types_to_wands.rb +0 -15
- data/spec/support/v5.2-no-sorbet/db/schema.rb +0 -47
- data/spec/support/v5.2-no-sorbet/db/seeds.rb +0 -7
- data/spec/support/v5.2-no-sorbet/lib/assets/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +0 -16
- data/spec/support/v5.2-no-sorbet/lib/tasks/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/log/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/package.json +0 -5
- data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +0 -123
- data/spec/support/v5.2-no-sorbet/storage/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/tmp/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/typed-override.yaml +0 -2
- data/spec/support/v5.2-no-sorbet/vendor/.keep +0 -0
- data/spec/support/v5.2/sorbet/config +0 -2
- data/spec/support/v5.2/sorbet/rbi/gems/actionmailer.rbi +0 -391
- data/spec/support/v5.2/sorbet/rbi/gems/actionpack.rbi +0 -3109
- data/spec/support/v5.2/sorbet/rbi/gems/actionview.rbi +0 -1128
- data/spec/support/v5.2/sorbet/rbi/gems/activejob.rbi +0 -244
- data/spec/support/v5.2/sorbet/rbi/gems/activemodel.rbi +0 -741
- data/spec/support/v5.2/sorbet/rbi/gems/activerecord.rbi +0 -3827
- data/spec/support/v5.2/sorbet/rbi/gems/activestorage.rbi +0 -173
- data/spec/support/v5.2/sorbet/rbi/gems/activesupport.rbi +0 -2167
- data/spec/support/v5.2/sorbet/rbi/gems/arel.rbi +0 -1252
- data/spec/support/v5.2/sorbet/rbi/gems/bindex.rbi +0 -36
- data/spec/support/v5.2/sorbet/rbi/gems/byebug.rbi +0 -1039
- data/spec/support/v5.2/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1587
- data/spec/support/v5.2/sorbet/rbi/gems/crass.rbi +0 -92
- data/spec/support/v5.2/sorbet/rbi/gems/erubi.rbi +0 -26
- data/spec/support/v5.2/sorbet/rbi/gems/globalid.rbi +0 -98
- data/spec/support/v5.2/sorbet/rbi/gems/i18n.rbi +0 -191
- data/spec/support/v5.2/sorbet/rbi/gems/jbuilder.rbi +0 -99
- data/spec/support/v5.2/sorbet/rbi/gems/loofah.rbi +0 -129
- data/spec/support/v5.2/sorbet/rbi/gems/mail.rbi +0 -1091
- data/spec/support/v5.2/sorbet/rbi/gems/marcel.rbi +0 -12
- data/spec/support/v5.2/sorbet/rbi/gems/mini_mime.rbi +0 -51
- data/spec/support/v5.2/sorbet/rbi/gems/nokogiri.rbi +0 -1010
- data/spec/support/v5.2/sorbet/rbi/gems/parlour.rbi +0 -214
- data/spec/support/v5.2/sorbet/rbi/gems/puma.rbi +0 -570
- data/spec/support/v5.2/sorbet/rbi/gems/rack-test.rbi +0 -161
- data/spec/support/v5.2/sorbet/rbi/gems/rack.rbi +0 -493
- data/spec/support/v5.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +0 -91
- data/spec/support/v5.2/sorbet/rbi/gems/railties.rbi +0 -508
- data/spec/support/v5.2/sorbet/rbi/gems/sqlite3.rbi +0 -353
- data/spec/support/v5.2/sorbet/rbi/gems/thread_safe.rbi +0 -81
- data/spec/support/v5.2/sorbet/rbi/gems/tzinfo.rbi +0 -407
- data/spec/support/v5.2/sorbet/rbi/gems/web-console.rbi +0 -73
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +0 -13
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +0 -468
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -422
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +0 -17
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +0 -1263
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/~>5.2.0/activerecord.rbi +0 -10
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -458
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8575
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -99
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +0 -22
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
- data/spec/support/v5.2/sorbet/rbi/todo.rbi +0 -68
- data/spec/support/v6.0/sorbet/config +0 -2
- data/spec/support/v6.0/sorbet/rbi/gems/actionmailbox.rbi +0 -56
- data/spec/support/v6.0/sorbet/rbi/gems/actionmailer.rbi +0 -20
- data/spec/support/v6.0/sorbet/rbi/gems/actionpack.rbi +0 -2154
- data/spec/support/v6.0/sorbet/rbi/gems/actiontext.rbi +0 -32
- data/spec/support/v6.0/sorbet/rbi/gems/actionview.rbi +0 -1135
- data/spec/support/v6.0/sorbet/rbi/gems/activejob.rbi +0 -80
- data/spec/support/v6.0/sorbet/rbi/gems/activemodel.rbi +0 -751
- data/spec/support/v6.0/sorbet/rbi/gems/activerecord.rbi +0 -5414
- data/spec/support/v6.0/sorbet/rbi/gems/activestorage.rbi +0 -221
- data/spec/support/v6.0/sorbet/rbi/gems/activesupport.rbi +0 -2251
- data/spec/support/v6.0/sorbet/rbi/gems/bindex.rbi +0 -36
- data/spec/support/v6.0/sorbet/rbi/gems/byebug.rbi +0 -1039
- data/spec/support/v6.0/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1587
- data/spec/support/v6.0/sorbet/rbi/gems/crass.rbi +0 -92
- data/spec/support/v6.0/sorbet/rbi/gems/erubi.rbi +0 -26
- data/spec/support/v6.0/sorbet/rbi/gems/globalid.rbi +0 -98
- data/spec/support/v6.0/sorbet/rbi/gems/i18n.rbi +0 -191
- data/spec/support/v6.0/sorbet/rbi/gems/jbuilder.rbi +0 -99
- data/spec/support/v6.0/sorbet/rbi/gems/loofah.rbi +0 -129
- data/spec/support/v6.0/sorbet/rbi/gems/mail.rbi +0 -1542
- data/spec/support/v6.0/sorbet/rbi/gems/marcel.rbi +0 -12
- data/spec/support/v6.0/sorbet/rbi/gems/mini_mime.rbi +0 -51
- data/spec/support/v6.0/sorbet/rbi/gems/nokogiri.rbi +0 -1010
- data/spec/support/v6.0/sorbet/rbi/gems/parlour.rbi +0 -214
- data/spec/support/v6.0/sorbet/rbi/gems/puma.rbi +0 -570
- data/spec/support/v6.0/sorbet/rbi/gems/rack-test.rbi +0 -161
- data/spec/support/v6.0/sorbet/rbi/gems/rack.rbi +0 -481
- data/spec/support/v6.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +0 -91
- data/spec/support/v6.0/sorbet/rbi/gems/railties.rbi +0 -548
- data/spec/support/v6.0/sorbet/rbi/gems/sqlite3.rbi +0 -353
- data/spec/support/v6.0/sorbet/rbi/gems/thread_safe.rbi +0 -81
- data/spec/support/v6.0/sorbet/rbi/gems/tzinfo.rbi +0 -407
- data/spec/support/v6.0/sorbet/rbi/gems/web-console.rbi +0 -72
- data/spec/support/v6.0/sorbet/rbi/gems/zeitwerk.rbi +0 -127
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +0 -13
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +0 -468
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -422
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +0 -17
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +0 -1263
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0.rc1/activerecord.rbi +0 -10
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +0 -23
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -458
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8575
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -99
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +0 -22
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
- data/spec/support/v6.0/sorbet/rbi/todo.rbi +0 -70
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../..
|
3
3
|
specs:
|
4
|
-
sorbet-rails (0.5.
|
4
|
+
sorbet-rails (0.5.1)
|
5
5
|
parlour (~> 0.6.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -61,7 +61,7 @@ GEM
|
|
61
61
|
mini_mime (1.0.2)
|
62
62
|
mini_portile2 (2.4.0)
|
63
63
|
minitest (5.11.3)
|
64
|
-
nokogiri (1.10.
|
64
|
+
nokogiri (1.10.4)
|
65
65
|
mini_portile2 (~> 2.4.0)
|
66
66
|
parlour (0.6.1)
|
67
67
|
rainbow (~> 3.0.0)
|
@@ -95,10 +95,10 @@ GEM
|
|
95
95
|
thor (>= 0.18.1, < 2.0)
|
96
96
|
rainbow (3.0.0)
|
97
97
|
rake (12.3.3)
|
98
|
-
sorbet (0.4.
|
99
|
-
sorbet-static (= 0.4.
|
100
|
-
sorbet-runtime (0.4.
|
101
|
-
sorbet-static (0.4.
|
98
|
+
sorbet (0.4.4663)
|
99
|
+
sorbet-static (= 0.4.4663)
|
100
|
+
sorbet-runtime (0.4.4663)
|
101
|
+
sorbet-static (0.4.4663-x86_64-linux)
|
102
102
|
sprockets (3.7.2)
|
103
103
|
concurrent-ruby (~> 1.0)
|
104
104
|
rack (> 1, < 3)
|
@@ -11,37 +11,30 @@ T.assert_type!(wizard.name, T.nilable(String))
|
|
11
11
|
T.assert_type!(wizard.wand, T.nilable(Wand))
|
12
12
|
T.assert_type!(T.must(wizard.wand).wizard, Wizard)
|
13
13
|
|
14
|
-
|
15
|
-
T.
|
14
|
+
# need the exact type to works! they aren't subclass of each other
|
15
|
+
# T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_Relation)
|
16
|
+
# T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_AssociationRelation)
|
17
|
+
T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_Associations_CollectionProxy)
|
16
18
|
|
17
19
|
# -- model relation
|
18
20
|
# default
|
19
|
-
T.assert_type!(Wizard.all,
|
20
|
-
T.reveal_type(Wizard.all) # Wizard::ActiveRecord_Relation
|
21
|
+
T.assert_type!(Wizard.all, Wizard::ActiveRecord_Relation)
|
21
22
|
|
22
23
|
# custom scope
|
23
|
-
T.assert_type!(Wizard.recent,
|
24
|
-
T.reveal_type(Wizard.recent)
|
24
|
+
T.assert_type!(Wizard.recent, Wizard::ActiveRecord_Relation)
|
25
25
|
|
26
26
|
# enum scope
|
27
|
-
T.assert_type!(Wizard.Gryffindor,
|
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)
|
27
|
+
T.assert_type!(Wizard.Gryffindor, Wizard::ActiveRecord_Relation)
|
35
28
|
|
36
29
|
# ActiveRecord Querying
|
37
|
-
T.assert_type!(Wizard.
|
38
|
-
T.
|
39
|
-
T.assert_type!(Wizard.
|
40
|
-
T.
|
41
|
-
T.assert_type!(Wizard.
|
42
|
-
T.
|
43
|
-
T.assert_type!(Wizard.
|
44
|
-
T.
|
30
|
+
T.assert_type!(Wizard.Gryffindor.recent, Wizard::ActiveRecord_Relation)
|
31
|
+
T.assert_type!(Wizard.Gryffindor.recent.unscoped, Wizard::ActiveRecord_Relation)
|
32
|
+
T.assert_type!(Wizard.where(id: 1), Wizard::ActiveRecord_Relation)
|
33
|
+
T.assert_type!(Wizard.where(id: 1).recent, Wizard::ActiveRecord_Relation)
|
34
|
+
T.assert_type!(Wizard.where.not(id: 1), Wizard::ActiveRecord_Relation)
|
35
|
+
T.assert_type!(Wizard.preload(:spell_books), Wizard::ActiveRecord_Relation)
|
36
|
+
T.assert_type!(Wizard.eager_load(:spell_books), Wizard::ActiveRecord_Relation)
|
37
|
+
T.assert_type!(Wizard.order(:id), Wizard::ActiveRecord_Relation)
|
45
38
|
|
46
39
|
# Finder methods -- Model
|
47
40
|
T.assert_type!(Wizard.exists?(name: 'Test'), T::Boolean)
|
@@ -73,51 +66,96 @@ T.assert_type!(Wizard.all.find_by_id!(wizard.id), Wizard)
|
|
73
66
|
|
74
67
|
# Finder methods -- CollectionProxy
|
75
68
|
spell_book = wizard.spell_books.first!
|
76
|
-
|
77
|
-
T.assert_type!(
|
78
|
-
T.assert_type!(
|
79
|
-
|
80
|
-
T.assert_type!(
|
81
|
-
|
82
|
-
T.assert_type!(
|
83
|
-
T.assert_type!(
|
84
|
-
T.assert_type!(
|
85
|
-
T.assert_type!(
|
86
|
-
T.assert_type!(
|
87
|
-
T.assert_type!(
|
88
|
-
|
89
|
-
#
|
69
|
+
spell_books = wizard.spell_books
|
70
|
+
T.assert_type!(spell_books.exists?(name: 'Fantastic Beasts'), T::Boolean)
|
71
|
+
T.assert_type!(spell_books.find(spell_book.id), SpellBook)
|
72
|
+
T.assert_type!(spell_books.first!, SpellBook)
|
73
|
+
# T.assert_type!(spell_books.first, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
74
|
+
T.assert_type!(spell_books.last!, SpellBook)
|
75
|
+
# T.assert_type!(spell_books.last, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
76
|
+
T.assert_type!(spell_books.first_n(5), T::Array[SpellBook])
|
77
|
+
T.assert_type!(spell_books.last_n(5), T::Array[SpellBook])
|
78
|
+
T.assert_type!(spell_books.find_by(name: 'Fantastic Beasts'), T.nilable(SpellBook))
|
79
|
+
T.assert_type!(spell_books.find_by!(name: 'Fantastic Beasts'), SpellBook)
|
80
|
+
T.assert_type!(spell_books.find_by_id(spell_book.id), T.nilable(SpellBook))
|
81
|
+
T.assert_type!(spell_books.find_by_id!(spell_book.id), SpellBook)
|
82
|
+
# CollectionProxy query also typed correctly!
|
83
|
+
T.assert_type!(spell_books.where(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
84
|
+
T.assert_type!(spell_books.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
85
|
+
T.assert_type!(spell_books.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
86
|
+
T.assert_type!(spell_books.order(:id), SpellBook::ActiveRecord_AssociationRelation)
|
87
|
+
T.assert_type!(spell_books.where.not(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
88
|
+
T.assert_type!(spell_books.biology, SpellBook::ActiveRecord_AssociationRelation)
|
89
|
+
|
90
|
+
# finder methods -- AssociationRelation
|
91
|
+
spell_books_query = spell_books.where(id: 1)
|
92
|
+
T.assert_type!(spell_books_query.exists?(name: 'Fantastic Beasts'), T::Boolean)
|
93
|
+
T.assert_type!(spell_books_query.find(spell_book.id), SpellBook)
|
94
|
+
T.assert_type!(spell_books_query.first!, SpellBook)
|
95
|
+
# T.assert_type!(spell_books_query.first, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
96
|
+
T.assert_type!(spell_books_query.last!, SpellBook)
|
97
|
+
# T.assert_type!(spell_books_query.last, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
98
|
+
T.assert_type!(spell_books_query.first_n(5), T::Array[SpellBook])
|
99
|
+
T.assert_type!(spell_books_query.last_n(5), T::Array[SpellBook])
|
100
|
+
T.assert_type!(spell_books_query.find_by(name: 'Fantastic Beasts'), T.nilable(SpellBook))
|
101
|
+
T.assert_type!(spell_books_query.find_by!(name: 'Fantastic Beasts'), SpellBook)
|
102
|
+
T.assert_type!(spell_books_query.find_by_id(spell_book.id), T.nilable(SpellBook))
|
103
|
+
T.assert_type!(spell_books_query.find_by_id!(spell_book.id), SpellBook)
|
104
|
+
# Query chaining
|
105
|
+
T.assert_type!(spell_books_query.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
106
|
+
T.assert_type!(spell_books_query.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
107
|
+
T.assert_type!(spell_books_query.order(:id), SpellBook::ActiveRecord_AssociationRelation)
|
108
|
+
T.assert_type!(spell_books_query.where.not(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
109
|
+
T.assert_type!(spell_books_query.biology, SpellBook::ActiveRecord_AssociationRelation)
|
110
|
+
|
111
|
+
# Enumerable on activerecord relation
|
90
112
|
T.assert_type!(Wizard.all.to_a, T::Array[Wizard])
|
91
113
|
Wizard.all.each do |w|
|
92
114
|
T.assert_type!(w, Wizard)
|
93
115
|
end
|
94
116
|
Wizard.all.map do |w|
|
95
|
-
T.assert_type!(w, Wizard)
|
117
|
+
T.assert_type!(w, Wizard)
|
96
118
|
end
|
97
119
|
Wizard.all.to_a.map do |w|
|
98
120
|
T.assert_type!(w, Wizard)
|
99
121
|
end
|
100
122
|
|
123
|
+
# enum on association collection proxy
|
101
124
|
T.assert_type!(wizard.spell_books.to_a, T::Array[SpellBook])
|
102
125
|
wizard.spell_books.each do |sp|
|
103
126
|
T.assert_type!(sp, SpellBook)
|
104
127
|
end
|
105
128
|
wizard.spell_books.map do |sp|
|
106
|
-
T.assert_type!(sp, SpellBook)
|
129
|
+
T.assert_type!(sp, SpellBook)
|
107
130
|
end
|
108
131
|
wizard.spell_books.to_a.map do |sp|
|
109
|
-
T.assert_type!(sp, SpellBook)
|
132
|
+
T.assert_type!(sp, SpellBook)
|
133
|
+
end
|
134
|
+
|
135
|
+
# enum on association relation
|
136
|
+
T.assert_type!(wizard.spell_books.where(id: 1).to_a, T::Array[SpellBook])
|
137
|
+
wizard.spell_books.where(id: 1).each do |sp|
|
138
|
+
T.assert_type!(sp, SpellBook)
|
139
|
+
end
|
140
|
+
wizard.spell_books.where(id: 1).map do |sp|
|
141
|
+
T.assert_type!(sp, SpellBook)
|
142
|
+
end
|
143
|
+
wizard.spell_books.where(id: 1).to_a.map do |sp|
|
144
|
+
T.assert_type!(sp, SpellBook)
|
110
145
|
end
|
111
146
|
|
112
147
|
# Model columns
|
113
148
|
T.assert_type!(wizard.id, Integer)
|
114
149
|
T.assert_type!(wizard.id?, T::Boolean)
|
115
150
|
T.assert_type!(wizard.notes, T.nilable(String))
|
116
|
-
T.assert_type!(wizard.house, T.nilable(String))
|
117
151
|
|
118
152
|
# Model enum
|
119
153
|
T.assert_type!(wizard.Gryffindor?, T::Boolean)
|
154
|
+
T.assert_type!(wizard.house, T.nilable(String))
|
120
155
|
T.assert_type!(Wizard.houses, T::Hash[T.any(String, Symbol), Integer])
|
156
|
+
T.assert_type!(spell_book.biology?, T::Boolean)
|
157
|
+
T.assert_type!(spell_book.book_type, String)
|
158
|
+
T.assert_type!(SpellBook.book_types, T::Hash[T.any(String, Symbol), Integer])
|
121
159
|
|
122
160
|
# Mythical plugin
|
123
161
|
T.assert_type!(Wand.mythicals, T::Array[Wand])
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../..
|
3
3
|
specs:
|
4
|
-
sorbet-rails (0.5.
|
4
|
+
sorbet-rails (0.5.1)
|
5
5
|
parlour (~> 0.6.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -66,7 +66,7 @@ GEM
|
|
66
66
|
mini_portile2 (2.4.0)
|
67
67
|
minitest (5.11.3)
|
68
68
|
nio4r (2.4.0)
|
69
|
-
nokogiri (1.10.
|
69
|
+
nokogiri (1.10.4)
|
70
70
|
mini_portile2 (~> 2.4.0)
|
71
71
|
parlour (0.6.1)
|
72
72
|
rainbow (~> 3.0.0)
|
@@ -100,10 +100,10 @@ GEM
|
|
100
100
|
thor (>= 0.18.1, < 2.0)
|
101
101
|
rainbow (3.0.0)
|
102
102
|
rake (12.3.3)
|
103
|
-
sorbet (0.4.
|
104
|
-
sorbet-static (= 0.4.
|
105
|
-
sorbet-runtime (0.4.
|
106
|
-
sorbet-static (0.4.
|
103
|
+
sorbet (0.4.4663)
|
104
|
+
sorbet-static (= 0.4.4663)
|
105
|
+
sorbet-runtime (0.4.4663)
|
106
|
+
sorbet-static (0.4.4663-universal-darwin-14)
|
107
107
|
sprockets (3.7.2)
|
108
108
|
concurrent-ruby (~> 1.0)
|
109
109
|
rack (> 1, < 3)
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# Read the Guide for Upgrading Ruby on Rails for more info on each option.
|
7
7
|
|
8
|
-
Rails.application.config.action_controller.raise_on_unfiltered_parameters = true
|
8
|
+
# Rails.application.config.action_controller.raise_on_unfiltered_parameters = true
|
9
9
|
|
10
10
|
# Enable per-form CSRF tokens. Previous versions had false.
|
11
11
|
Rails.application.config.action_controller.per_form_csrf_tokens = true
|
@@ -16,6 +16,7 @@ ActiveRecord::Schema.define(version: 20190620000004) do
|
|
16
16
|
create_table "spell_books", force: :cascade do |t|
|
17
17
|
t.string "name"
|
18
18
|
t.integer "wizard_id"
|
19
|
+
t.integer "book_type", default: 0, null: false
|
19
20
|
t.index ["wizard_id"], name: "index_spell_books_on_wizard_id"
|
20
21
|
end
|
21
22
|
|
@@ -11,37 +11,30 @@ T.assert_type!(wizard.name, T.nilable(String))
|
|
11
11
|
T.assert_type!(wizard.wand, T.nilable(Wand))
|
12
12
|
T.assert_type!(T.must(wizard.wand).wizard, Wizard)
|
13
13
|
|
14
|
-
|
15
|
-
T.
|
14
|
+
# need the exact type to works! they aren't subclass of each other
|
15
|
+
# T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_Relation)
|
16
|
+
# T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_AssociationRelation)
|
17
|
+
T.assert_type!(wizard.spell_books, SpellBook::ActiveRecord_Associations_CollectionProxy)
|
16
18
|
|
17
19
|
# -- model relation
|
18
20
|
# default
|
19
|
-
T.assert_type!(Wizard.all,
|
20
|
-
T.reveal_type(Wizard.all) # Wizard::ActiveRecord_Relation
|
21
|
+
T.assert_type!(Wizard.all, Wizard::ActiveRecord_Relation)
|
21
22
|
|
22
23
|
# custom scope
|
23
|
-
T.assert_type!(Wizard.recent,
|
24
|
-
T.reveal_type(Wizard.recent)
|
24
|
+
T.assert_type!(Wizard.recent, Wizard::ActiveRecord_Relation)
|
25
25
|
|
26
26
|
# enum scope
|
27
|
-
T.assert_type!(Wizard.Gryffindor,
|
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)
|
27
|
+
T.assert_type!(Wizard.Gryffindor, Wizard::ActiveRecord_Relation)
|
35
28
|
|
36
29
|
# ActiveRecord Querying
|
37
|
-
T.assert_type!(Wizard.
|
38
|
-
T.
|
39
|
-
T.assert_type!(Wizard.
|
40
|
-
T.
|
41
|
-
T.assert_type!(Wizard.
|
42
|
-
T.
|
43
|
-
T.assert_type!(Wizard.
|
44
|
-
T.
|
30
|
+
T.assert_type!(Wizard.Gryffindor.recent, Wizard::ActiveRecord_Relation)
|
31
|
+
T.assert_type!(Wizard.Gryffindor.recent.unscoped, Wizard::ActiveRecord_Relation)
|
32
|
+
T.assert_type!(Wizard.where(id: 1), Wizard::ActiveRecord_Relation)
|
33
|
+
T.assert_type!(Wizard.where(id: 1).recent, Wizard::ActiveRecord_Relation)
|
34
|
+
T.assert_type!(Wizard.where.not(id: 1), Wizard::ActiveRecord_Relation)
|
35
|
+
T.assert_type!(Wizard.preload(:spell_books), Wizard::ActiveRecord_Relation)
|
36
|
+
T.assert_type!(Wizard.eager_load(:spell_books), Wizard::ActiveRecord_Relation)
|
37
|
+
T.assert_type!(Wizard.order(:id), Wizard::ActiveRecord_Relation)
|
45
38
|
|
46
39
|
# Finder methods -- Model
|
47
40
|
T.assert_type!(Wizard.exists?(name: 'Test'), T::Boolean)
|
@@ -73,51 +66,96 @@ T.assert_type!(Wizard.all.find_by_id!(wizard.id), Wizard)
|
|
73
66
|
|
74
67
|
# Finder methods -- CollectionProxy
|
75
68
|
spell_book = wizard.spell_books.first!
|
76
|
-
|
77
|
-
T.assert_type!(
|
78
|
-
T.assert_type!(
|
79
|
-
|
80
|
-
T.assert_type!(
|
81
|
-
|
82
|
-
T.assert_type!(
|
83
|
-
T.assert_type!(
|
84
|
-
T.assert_type!(
|
85
|
-
T.assert_type!(
|
86
|
-
T.assert_type!(
|
87
|
-
T.assert_type!(
|
88
|
-
|
89
|
-
#
|
69
|
+
spell_books = wizard.spell_books
|
70
|
+
T.assert_type!(spell_books.exists?(name: 'Fantastic Beasts'), T::Boolean)
|
71
|
+
T.assert_type!(spell_books.find(spell_book.id), SpellBook)
|
72
|
+
T.assert_type!(spell_books.first!, SpellBook)
|
73
|
+
# T.assert_type!(spell_books.first, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
74
|
+
T.assert_type!(spell_books.last!, SpellBook)
|
75
|
+
# T.assert_type!(spell_books.last, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
76
|
+
T.assert_type!(spell_books.first_n(5), T::Array[SpellBook])
|
77
|
+
T.assert_type!(spell_books.last_n(5), T::Array[SpellBook])
|
78
|
+
T.assert_type!(spell_books.find_by(name: 'Fantastic Beasts'), T.nilable(SpellBook))
|
79
|
+
T.assert_type!(spell_books.find_by!(name: 'Fantastic Beasts'), SpellBook)
|
80
|
+
T.assert_type!(spell_books.find_by_id(spell_book.id), T.nilable(SpellBook))
|
81
|
+
T.assert_type!(spell_books.find_by_id!(spell_book.id), SpellBook)
|
82
|
+
# CollectionProxy query also typed correctly!
|
83
|
+
T.assert_type!(spell_books.where(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
84
|
+
T.assert_type!(spell_books.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
85
|
+
T.assert_type!(spell_books.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
86
|
+
T.assert_type!(spell_books.order(:id), SpellBook::ActiveRecord_AssociationRelation)
|
87
|
+
T.assert_type!(spell_books.where.not(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
88
|
+
T.assert_type!(spell_books.biology, SpellBook::ActiveRecord_AssociationRelation)
|
89
|
+
|
90
|
+
# finder methods -- AssociationRelation
|
91
|
+
spell_books_query = spell_books.where(id: 1)
|
92
|
+
T.assert_type!(spell_books_query.exists?(name: 'Fantastic Beasts'), T::Boolean)
|
93
|
+
T.assert_type!(spell_books_query.find(spell_book.id), SpellBook)
|
94
|
+
T.assert_type!(spell_books_query.first!, SpellBook)
|
95
|
+
# T.assert_type!(spell_books_query.first, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
96
|
+
T.assert_type!(spell_books_query.last!, SpellBook)
|
97
|
+
# T.assert_type!(spell_books_query.last, T.nilable(SpellBook)) # TODO fix sig for 4.2 and 5.0
|
98
|
+
T.assert_type!(spell_books_query.first_n(5), T::Array[SpellBook])
|
99
|
+
T.assert_type!(spell_books_query.last_n(5), T::Array[SpellBook])
|
100
|
+
T.assert_type!(spell_books_query.find_by(name: 'Fantastic Beasts'), T.nilable(SpellBook))
|
101
|
+
T.assert_type!(spell_books_query.find_by!(name: 'Fantastic Beasts'), SpellBook)
|
102
|
+
T.assert_type!(spell_books_query.find_by_id(spell_book.id), T.nilable(SpellBook))
|
103
|
+
T.assert_type!(spell_books_query.find_by_id!(spell_book.id), SpellBook)
|
104
|
+
# Query chaining
|
105
|
+
T.assert_type!(spell_books_query.preload(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
106
|
+
T.assert_type!(spell_books_query.eager_load(:wizard), SpellBook::ActiveRecord_AssociationRelation)
|
107
|
+
T.assert_type!(spell_books_query.order(:id), SpellBook::ActiveRecord_AssociationRelation)
|
108
|
+
T.assert_type!(spell_books_query.where.not(id: 1), SpellBook::ActiveRecord_AssociationRelation)
|
109
|
+
T.assert_type!(spell_books_query.biology, SpellBook::ActiveRecord_AssociationRelation)
|
110
|
+
|
111
|
+
# Enumerable on activerecord relation
|
90
112
|
T.assert_type!(Wizard.all.to_a, T::Array[Wizard])
|
91
113
|
Wizard.all.each do |w|
|
92
114
|
T.assert_type!(w, Wizard)
|
93
115
|
end
|
94
116
|
Wizard.all.map do |w|
|
95
|
-
T.assert_type!(w, Wizard)
|
117
|
+
T.assert_type!(w, Wizard)
|
96
118
|
end
|
97
119
|
Wizard.all.to_a.map do |w|
|
98
120
|
T.assert_type!(w, Wizard)
|
99
121
|
end
|
100
122
|
|
123
|
+
# enum on association collection proxy
|
101
124
|
T.assert_type!(wizard.spell_books.to_a, T::Array[SpellBook])
|
102
125
|
wizard.spell_books.each do |sp|
|
103
126
|
T.assert_type!(sp, SpellBook)
|
104
127
|
end
|
105
128
|
wizard.spell_books.map do |sp|
|
106
|
-
T.assert_type!(sp, SpellBook)
|
129
|
+
T.assert_type!(sp, SpellBook)
|
107
130
|
end
|
108
131
|
wizard.spell_books.to_a.map do |sp|
|
109
|
-
T.assert_type!(sp, SpellBook)
|
132
|
+
T.assert_type!(sp, SpellBook)
|
133
|
+
end
|
134
|
+
|
135
|
+
# enum on association relation
|
136
|
+
T.assert_type!(wizard.spell_books.where(id: 1).to_a, T::Array[SpellBook])
|
137
|
+
wizard.spell_books.where(id: 1).each do |sp|
|
138
|
+
T.assert_type!(sp, SpellBook)
|
139
|
+
end
|
140
|
+
wizard.spell_books.where(id: 1).map do |sp|
|
141
|
+
T.assert_type!(sp, SpellBook)
|
142
|
+
end
|
143
|
+
wizard.spell_books.where(id: 1).to_a.map do |sp|
|
144
|
+
T.assert_type!(sp, SpellBook)
|
110
145
|
end
|
111
146
|
|
112
147
|
# Model columns
|
113
148
|
T.assert_type!(wizard.id, Integer)
|
114
149
|
T.assert_type!(wizard.id?, T::Boolean)
|
115
150
|
T.assert_type!(wizard.notes, T.nilable(String))
|
116
|
-
T.assert_type!(wizard.house, T.nilable(String))
|
117
151
|
|
118
152
|
# Model enum
|
119
153
|
T.assert_type!(wizard.Gryffindor?, T::Boolean)
|
154
|
+
T.assert_type!(wizard.house, T.nilable(String))
|
120
155
|
T.assert_type!(Wizard.houses, T::Hash[T.any(String, Symbol), Integer])
|
156
|
+
T.assert_type!(spell_book.biology?, T::Boolean)
|
157
|
+
T.assert_type!(spell_book.book_type, String)
|
158
|
+
T.assert_type!(SpellBook.book_types, T::Hash[T.any(String, Symbol), Integer])
|
121
159
|
|
122
160
|
# Mythical plugin
|
123
161
|
T.assert_type!(Wand.mythicals, T::Array[Wand])
|