sorbet-rails 0.7.3 → 0.7.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +7 -0
- data/.github/workflows/ci-master.yml +28 -0
- data/.github/workflows/ci.yml +26 -0
- data/.github/workflows/publish-gem.yml +18 -0
- data/CONTRIBUTING.md +1 -2
- data/Gemfile +5 -9
- data/README.md +15 -5
- data/Rakefile +13 -24
- data/lib/sorbet-rails/active_record_rbi_formatter.rb +16 -13
- data/lib/sorbet-rails/dependent_gem_rbis/activerecord.rbi +4 -0
- data/lib/sorbet-rails/dependent_gem_rbis/parlour.rbi +1896 -0
- data/lib/sorbet-rails/gem_plugins/aasm_plugin.rb +50 -0
- data/lib/sorbet-rails/gem_plugins/attr_json_plugin.rb +137 -0
- data/lib/sorbet-rails/gem_plugins/flag_shih_tzu_plugin.rb +201 -0
- data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +20 -0
- data/lib/sorbet-rails/gem_plugins/money_rails_plugin.rb +76 -0
- data/lib/sorbet-rails/gem_plugins/shrine_plugin.rb +1 -1
- data/lib/sorbet-rails/job_rbi_formatter.rb +1 -1
- data/lib/sorbet-rails/model_plugins/active_record_serialized_attribute.rb +3 -2
- data/lib/sorbet-rails/model_plugins/base.rb +8 -1
- data/lib/sorbet-rails/model_plugins/custom_finder_methods.rb +1 -1
- data/lib/sorbet-rails/model_plugins/plugins.rb +12 -0
- data/lib/sorbet-rails/railtie.rb +1 -1
- data/lib/sorbet-rails/routes_rbi_formatter.rb +8 -0
- data/lib/sorbet-rails/tasks/rails_rbi.rake +12 -8
- data/sorbet-rails.gemspec +2 -2
- data/spec/bin/run_all_specs.sh +3 -4
- data/spec/bin/run_spec.sh +4 -1
- data/spec/generators/rails-template.rb +3 -20
- data/spec/generators/sorbet_test_cases.rb +17 -4
- data/spec/rails_helper.rb +6 -10
- data/spec/rake_rails_rbi_models_spec.rb +11 -4
- data/spec/sorbet_spec.rb +2 -1
- data/spec/support/v5.2/Gemfile +1 -3
- data/spec/support/v5.2/Gemfile.lock +72 -74
- data/spec/support/v5.2/app/controllers/application_controller.rb +1 -1
- data/spec/support/v5.2/app/mailers/application_mailer.rb +1 -1
- data/spec/support/v5.2/app/mailers/daily_prophet_mailer.rb +1 -1
- data/spec/support/v5.2/app/mailers/hogwarts_acceptance_mailer.rb +1 -1
- data/spec/support/v5.2/app/models/spell_book.rb +1 -1
- data/spec/support/v5.2/app/models/wand.rb +1 -1
- data/spec/support/v5.2/app/models/wizard.rb +1 -1
- data/spec/support/v5.2/config/environments/development.rb +1 -1
- data/spec/support/v5.2/config/environments/production.rb +1 -1
- data/spec/support/v5.2/config/environments/test.rb +1 -1
- data/spec/support/v5.2/config/initializers/wrap_parameters.rb +1 -1
- data/spec/support/v5.2/config/routes.rb +1 -1
- data/spec/support/v5.2/sorbet_test_cases.rb +17 -4
- data/spec/support/v6.0/Gemfile +1 -1
- data/spec/support/v6.0/Gemfile.lock +87 -88
- data/spec/support/v6.0/app/mailers/application_mailer.rb +1 -1
- data/spec/support/v6.0/config/environments/development.rb +1 -1
- data/spec/support/v6.0/config/environments/test.rb +1 -1
- data/spec/support/v6.0/config/initializers/cookies_serializer.rb +1 -1
- data/spec/support/v6.0/config/initializers/sorbet_rails.rb +1 -1
- data/spec/support/v6.0/config/routes.rb +1 -1
- data/spec/support/v6.0/sorbet_test_cases.rb +17 -4
- data/spec/support/{v5.1 → v6.1}/.gitignore +13 -2
- data/spec/support/{v5.1 → v6.1}/Gemfile +12 -15
- data/spec/support/v6.1/Gemfile.lock +196 -0
- data/spec/support/{v5.0 → v6.1}/README.md +0 -0
- data/spec/support/{v5.0 → v6.1}/Rakefile +0 -0
- data/spec/support/{v5.0 → v6.1}/app/assets/config/manifest.js +0 -0
- data/spec/support/{v5.0 → v6.1}/app/assets/images/.keep +0 -0
- data/spec/support/{v5.1 → v6.1}/app/assets/stylesheets/application.css +0 -0
- data/spec/support/{v5.0 → v6.1}/app/controllers/application_controller.rb +1 -2
- data/spec/support/{v5.0 → v6.1}/app/controllers/concerns/.keep +0 -0
- data/spec/support/{v5.0 → v6.1}/app/helpers/application_helper.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/helpers/bar_helper.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/helpers/baz_helper.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/helpers/foo_helper.rb +0 -0
- data/spec/support/v6.1/app/jobs/application_job.rb +8 -0
- data/spec/support/{v5.0 → v6.1}/app/jobs/award_house_point_hourglasses.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/app/mailers/application_mailer.rb +1 -1
- data/spec/support/{v5.0 → v6.1}/app/mailers/daily_prophet_mailer.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/mailers/hogwarts_acceptance_mailer.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/application_record.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/concerns/.keep +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/concerns/mythical.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/app/models/headmaster.rb +1 -1
- data/spec/support/{v5.1 → v6.1}/app/models/potion.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/app/models/robe.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/school.rb +1 -1
- data/spec/support/{v5.1 → v6.1}/app/models/spell.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/spell_book.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/squib.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/app/models/subject.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/wand.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/models/wizard.rb +2 -1
- data/spec/support/{v5.1 → v6.1}/app/views/layouts/application.html.erb +2 -1
- data/spec/support/{v5.0 → v6.1}/app/views/layouts/mailer.html.erb +0 -0
- data/spec/support/{v5.0 → v6.1}/app/views/layouts/mailer.text.erb +0 -0
- data/spec/support/v6.1/bin/bundle +114 -0
- data/spec/support/{v5.0 → v6.1}/bin/rails +0 -0
- data/spec/support/{v5.0 → v6.1}/bin/rake +0 -0
- data/spec/support/{v5.1 → v6.1}/bin/setup +6 -11
- data/spec/support/{v5.1 → v6.1}/config/application.rb +8 -4
- data/spec/support/{v5.0 → v6.1}/config/boot.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/config/database.yml +1 -1
- data/spec/support/{v5.0 → v6.1}/config/environment.rb +0 -0
- data/spec/support/{v5.1 → v6.1}/config/environments/development.rb +12 -4
- data/spec/support/{v5.1 → v6.1}/config/environments/production.rb +29 -7
- data/spec/support/{v5.1 → v6.1}/config/environments/test.rb +13 -7
- data/spec/support/{v5.0 → v6.1}/config/initializers/application_controller_renderer.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/support/v6.1/config/initializers/content_security_policy.rb +29 -0
- data/spec/support/{v5.1 → v6.1}/config/initializers/cookies_serializer.rb +1 -1
- data/spec/support/{v5.0 → v6.1}/config/initializers/filter_parameter_logging.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/config/initializers/inflections.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/config/initializers/mime_types.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/config/initializers/sorbet_rails.rb +1 -1
- data/spec/support/{v5.0 → v6.1}/config/initializers/wrap_parameters.rb +1 -1
- data/spec/support/{v5.1 → v6.1}/config/locales/en.yml +1 -1
- data/spec/support/{v5.1 → v6.1}/config/puma.rb +8 -26
- data/spec/support/v6.1/config/routes.rb +5 -0
- data/spec/support/v6.1/config/storage.yml +34 -0
- data/spec/support/{v5.0 → v6.1}/config.ru +0 -0
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000001_create_wizards.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000002_create_wands.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000003_create_spell_books.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000004_add_more_column_types_to_wands.rb +2 -2
- data/spec/support/v6.1/db/migrate/20190620000005_add_broom_to_wizard.rb +6 -0
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000006_add_more_enums_to_wizard.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000007_add_type_to_wizard.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000008_add_robe_to_wizard.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000009_add_school.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000010_add_subject.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000011_add_subjects_wizards.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000012_add_spell.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/migrate/20190620000013_add_spells_spell_books.rb +2 -2
- data/spec/support/{v5.0 → v6.1}/db/migrate/20190620000014_create_headmasters.rb +2 -2
- data/spec/support/{v5.0 → v6.1}/db/migrate/20190620000015_add_serialized_to_wizards.rb +2 -2
- data/spec/support/{v5.1 → v6.1}/db/schema.rb +14 -11
- data/spec/support/{v5.0 → v6.1}/db/seeds.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/lib/assets/.keep +0 -0
- data/spec/support/{v5.0 → v6.1}/lib/mythical_rbi_plugin.rb +0 -0
- data/spec/support/{v5.0 → v6.1}/lib/tasks/.keep +0 -0
- data/spec/support/{v5.0 → v6.1}/log/.keep +0 -0
- data/spec/support/{v5.0 → v6.1}/sorbet_test_cases.rb +17 -4
- data/spec/support/{v5.0/tmp → v6.1/storage}/.keep +0 -0
- data/spec/support/{v5.0/vendor/assets/stylesheets → v6.1/tmp}/.keep +0 -0
- data/spec/support/{v5.1/app/assets/images → v6.1/tmp/pids}/.keep +0 -0
- data/spec/support/{v5.1/app/controllers/concerns → v6.1/vendor}/.keep +0 -0
- data/spec/test_data/v5.2/expected_active_record_base.rbi +10 -10
- data/spec/test_data/v5.2/expected_active_record_relation.rbi +10 -11
- data/spec/test_data/v5.2/expected_attachment.rbi +1 -1
- data/spec/test_data/v5.2/expected_blob.rbi +1 -1
- data/spec/test_data/v5.2/expected_headmaster.rbi +1 -1
- data/spec/test_data/v5.2/expected_internal_metadata.rbi +1 -1
- data/spec/test_data/v5.2/expected_potion.rbi +1 -1
- data/spec/test_data/v5.2/expected_robe.rbi +1 -1
- data/spec/test_data/v5.2/expected_routes.rbi +8 -0
- data/spec/test_data/v5.2/expected_schema_migration.rbi +1 -1
- data/spec/test_data/v5.2/expected_school.rbi +1 -1
- data/spec/test_data/v5.2/expected_spell/habtm_spell_books.rbi +1 -1
- data/spec/test_data/v5.2/expected_spell.rbi +1 -1
- data/spec/test_data/v5.2/expected_spell_book/habtm_spells.rbi +1 -1
- data/spec/test_data/v5.2/expected_spell_book.rbi +1 -1
- data/spec/test_data/v5.2/expected_squib.rbi +3 -3
- data/spec/test_data/v5.2/expected_subject/habtm_wizards.rbi +1 -1
- data/spec/test_data/v5.2/expected_subject.rbi +1 -1
- data/spec/test_data/v5.2/expected_wand.rbi +1 -1
- data/spec/test_data/v5.2/expected_wizard/habtm_subjects.rbi +1 -1
- data/spec/test_data/v5.2/expected_wizard.rbi +3 -3
- data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +3 -3
- data/spec/test_data/v6.0/expected_active_record_base.rbi +10 -10
- data/spec/test_data/v6.0/expected_active_record_relation.rbi +10 -11
- data/spec/test_data/v6.0/expected_attachment.rbi +1 -1
- data/spec/test_data/v6.0/expected_blob.rbi +1 -1
- data/spec/test_data/v6.0/expected_headmaster.rbi +1 -1
- data/spec/test_data/v6.0/expected_internal_metadata.rbi +1 -1
- data/spec/test_data/v6.0/expected_potion.rbi +1 -1
- data/spec/test_data/v6.0/expected_robe.rbi +1 -1
- data/spec/test_data/v6.0/expected_routes.rbi +8 -0
- data/spec/test_data/v6.0/expected_schema_migration.rbi +1 -1
- data/spec/test_data/v6.0/expected_school.rbi +1 -1
- data/spec/test_data/v6.0/expected_spell/habtm_spell_books.rbi +1 -1
- data/spec/test_data/v6.0/expected_spell.rbi +1 -1
- data/spec/test_data/v6.0/expected_spell_book/habtm_spells.rbi +1 -1
- data/spec/test_data/v6.0/expected_spell_book.rbi +1 -1
- data/spec/test_data/v6.0/expected_squib.rbi +3 -3
- data/spec/test_data/v6.0/expected_subject/habtm_wizards.rbi +1 -1
- data/spec/test_data/v6.0/expected_subject.rbi +1 -1
- data/spec/test_data/v6.0/expected_wand.rbi +1 -1
- data/spec/test_data/v6.0/expected_wizard/habtm_subjects.rbi +1 -1
- data/spec/test_data/v6.0/expected_wizard.rbi +3 -3
- data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +3 -3
- data/spec/test_data/{v5.1 → v6.1}/expected_active_record_base.rbi +16 -16
- data/spec/test_data/{v5.1 → v6.1}/expected_active_record_relation.rbi +26 -30
- data/spec/test_data/{v5.0 → v6.1}/expected_application_job.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_application_mailer.rbi +0 -0
- data/spec/test_data/v6.1/expected_attachment.rbi +328 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_award_house_point_hourglasses.rbi +0 -0
- data/spec/test_data/v6.1/expected_blob.rbi +376 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_custom_application_job.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_custom_application_mailer.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_custom_award_house_point_hourglasses.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_custom_daily_prophet_mailer.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_custom_hogwarts_acceptance_mailer.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_daily_prophet_mailer.rbi +0 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_habtm_subjects.rbi +48 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_habtm_wizards.rbi +48 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_headmaster.rbi +25 -1
- data/spec/test_data/{v5.0 → v6.1}/expected_helpers.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_helpers_with_application_and_devise_helpers.rbi +0 -0
- data/spec/test_data/{v5.0 → v6.1}/expected_hogwarts_acceptance_mailer.rbi +0 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_internal_metadata.rbi +25 -1
- data/spec/test_data/{v5.0 → v6.1}/expected_no_routes.rbi +0 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_potion.rbi +25 -1
- data/spec/test_data/v6.1/expected_record.rbi +289 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_robe.rbi +25 -1
- data/spec/test_data/v6.1/expected_routes.rbi +175 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_schema_migration.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_school.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_spell/habtm_spell_books.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_spell.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_spell_book/habtm_spell_books.rbi +48 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_spell_book/habtm_spells.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_spell_book.rbi +61 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_squib.rbi +497 -59
- data/spec/test_data/{v5.0 → v6.1}/expected_srb_tc_output.txt +0 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_subject/habtm_wizards.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_subject.rbi +25 -1
- data/spec/test_data/v6.1/expected_variant_record.rbi +364 -0
- data/spec/test_data/{v5.1 → v6.1}/expected_wand.rbi +91 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_wizard/habtm_subjects.rbi +25 -1
- data/spec/test_data/{v5.1 → v6.1}/expected_wizard.rbi +497 -59
- data/spec/test_data/{v5.1 → v6.1}/expected_wizard_wo_spellbook.rbi +491 -53
- metadata +269 -501
- data/.travis.yml +0 -42
- data/lib/sorbet-rails/type_assert/actionpack.rbi +0 -4
- data/spec/support/v5.0/.gitignore +0 -21
- data/spec/support/v5.0/Gemfile +0 -37
- data/spec/support/v5.0/Gemfile.lock +0 -158
- data/spec/support/v5.0/app/assets/stylesheets/application.css +0 -15
- data/spec/support/v5.0/app/jobs/application_job.rb +0 -3
- data/spec/support/v5.0/app/mailers/application_mailer.rb +0 -5
- data/spec/support/v5.0/app/models/headmaster.rb +0 -8
- data/spec/support/v5.0/app/models/potion.rb +0 -6
- data/spec/support/v5.0/app/models/robe.rb +0 -4
- data/spec/support/v5.0/app/models/spell.rb +0 -5
- data/spec/support/v5.0/app/models/subject.rb +0 -5
- data/spec/support/v5.0/app/views/layouts/application.html.erb +0 -13
- data/spec/support/v5.0/bin/bundle +0 -3
- data/spec/support/v5.0/bin/setup +0 -34
- data/spec/support/v5.0/bin/update +0 -29
- data/spec/support/v5.0/config/application.rb +0 -27
- data/spec/support/v5.0/config/database.yml +0 -25
- data/spec/support/v5.0/config/environments/development.rb +0 -48
- data/spec/support/v5.0/config/environments/production.rb +0 -75
- data/spec/support/v5.0/config/environments/test.rb +0 -43
- data/spec/support/v5.0/config/initializers/cookies_serializer.rb +0 -6
- data/spec/support/v5.0/config/initializers/new_framework_defaults.rb +0 -27
- data/spec/support/v5.0/config/initializers/session_store.rb +0 -4
- data/spec/support/v5.0/config/locales/en.yml +0 -23
- data/spec/support/v5.0/config/puma.rb +0 -48
- data/spec/support/v5.0/config/routes.rb +0 -5
- data/spec/support/v5.0/db/migrate/20190620000001_create_wizards.rb +0 -14
- data/spec/support/v5.0/db/migrate/20190620000002_create_wands.rb +0 -12
- data/spec/support/v5.0/db/migrate/20190620000003_create_spell_books.rb +0 -10
- data/spec/support/v5.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +0 -17
- data/spec/support/v5.0/db/migrate/20190620000005_add_broom_to_wizard.rb +0 -6
- data/spec/support/v5.0/db/migrate/20190620000006_add_more_enums_to_wizard.rb +0 -9
- data/spec/support/v5.0/db/migrate/20190620000007_add_type_to_wizard.rb +0 -6
- data/spec/support/v5.0/db/migrate/20190620000008_add_robe_to_wizard.rb +0 -8
- data/spec/support/v5.0/db/migrate/20190620000009_add_school.rb +0 -10
- data/spec/support/v5.0/db/migrate/20190620000010_add_subject.rb +0 -8
- data/spec/support/v5.0/db/migrate/20190620000011_add_subjects_wizards.rb +0 -8
- data/spec/support/v5.0/db/migrate/20190620000012_add_spell.rb +0 -8
- data/spec/support/v5.0/db/migrate/20190620000013_add_spells_spell_books.rb +0 -8
- data/spec/support/v5.0/db/schema.rb +0 -96
- data/spec/support/v5.0/public/robots.txt +0 -5
- data/spec/support/v5.1/Gemfile.lock +0 -165
- data/spec/support/v5.1/README.md +0 -24
- data/spec/support/v5.1/Rakefile +0 -6
- data/spec/support/v5.1/app/assets/config/manifest.js +0 -2
- data/spec/support/v5.1/app/controllers/application_controller.rb +0 -4
- data/spec/support/v5.1/app/helpers/application_helper.rb +0 -3
- data/spec/support/v5.1/app/helpers/bar_helper.rb +0 -3
- data/spec/support/v5.1/app/helpers/baz_helper.rb +0 -3
- data/spec/support/v5.1/app/helpers/foo_helper.rb +0 -3
- data/spec/support/v5.1/app/jobs/application_job.rb +0 -3
- data/spec/support/v5.1/app/jobs/award_house_point_hourglasses.rb +0 -12
- data/spec/support/v5.1/app/mailers/daily_prophet_mailer.rb +0 -9
- data/spec/support/v5.1/app/mailers/hogwarts_acceptance_mailer.rb +0 -29
- data/spec/support/v5.1/app/models/application_record.rb +0 -4
- data/spec/support/v5.1/app/models/concerns/.keep +0 -0
- data/spec/support/v5.1/app/models/concerns/mythical.rb +0 -11
- data/spec/support/v5.1/app/models/school.rb +0 -5
- data/spec/support/v5.1/app/models/spell_book.rb +0 -18
- data/spec/support/v5.1/app/models/squib.rb +0 -6
- data/spec/support/v5.1/app/models/wand.rb +0 -19
- data/spec/support/v5.1/app/models/wizard.rb +0 -65
- data/spec/support/v5.1/app/views/layouts/mailer.html.erb +0 -13
- data/spec/support/v5.1/app/views/layouts/mailer.text.erb +0 -1
- data/spec/support/v5.1/bin/bundle +0 -3
- data/spec/support/v5.1/bin/rails +0 -4
- data/spec/support/v5.1/bin/rake +0 -4
- data/spec/support/v5.1/bin/update +0 -29
- data/spec/support/v5.1/bin/yarn +0 -11
- data/spec/support/v5.1/config/boot.rb +0 -4
- data/spec/support/v5.1/config/environment.rb +0 -6
- data/spec/support/v5.1/config/initializers/application_controller_renderer.rb +0 -9
- data/spec/support/v5.1/config/initializers/backtrace_silencers.rb +0 -8
- data/spec/support/v5.1/config/initializers/filter_parameter_logging.rb +0 -5
- data/spec/support/v5.1/config/initializers/inflections.rb +0 -17
- data/spec/support/v5.1/config/initializers/mime_types.rb +0 -5
- data/spec/support/v5.1/config/initializers/sorbet_rails.rb +0 -3
- data/spec/support/v5.1/config/initializers/wrap_parameters.rb +0 -15
- data/spec/support/v5.1/config/routes.rb +0 -5
- data/spec/support/v5.1/config.ru +0 -5
- data/spec/support/v5.1/db/migrate/20190620000005_add_broom_to_wizard.rb +0 -6
- data/spec/support/v5.1/db/migrate/20190620000014_create_headmasters.rb +0 -9
- data/spec/support/v5.1/db/migrate/20190620000015_add_serialized_to_wizards.rb +0 -9
- data/spec/support/v5.1/db/seeds.rb +0 -8
- data/spec/support/v5.1/lib/assets/.keep +0 -0
- data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +0 -16
- data/spec/support/v5.1/lib/tasks/.keep +0 -0
- data/spec/support/v5.1/log/.keep +0 -0
- data/spec/support/v5.1/package.json +0 -5
- data/spec/support/v5.1/public/robots.txt +0 -1
- data/spec/support/v5.1/sorbet_test_cases.rb +0 -409
- data/spec/support/v5.1/tmp/.keep +0 -0
- data/spec/support/v5.1/vendor/.keep +0 -0
- data/spec/test_data/v5.0/expected_active_record_base.rbi +0 -113
- data/spec/test_data/v5.0/expected_active_record_relation.rbi +0 -199
- data/spec/test_data/v5.0/expected_habtm_subjects.rbi +0 -660
- data/spec/test_data/v5.0/expected_habtm_wizards.rbi +0 -660
- data/spec/test_data/v5.0/expected_headmaster.rbi +0 -328
- data/spec/test_data/v5.0/expected_internal_metadata.rbi +0 -298
- data/spec/test_data/v5.0/expected_potion.rbi +0 -280
- data/spec/test_data/v5.0/expected_robe.rbi +0 -301
- data/spec/test_data/v5.0/expected_routes.rbi +0 -27
- data/spec/test_data/v5.0/expected_schema_migration.rbi +0 -271
- data/spec/test_data/v5.0/expected_school.rbi +0 -301
- data/spec/test_data/v5.0/expected_spell/habtm_spell_books.rbi +0 -319
- data/spec/test_data/v5.0/expected_spell.rbi +0 -292
- data/spec/test_data/v5.0/expected_spell_book/habtm_spell_books.rbi +0 -637
- data/spec/test_data/v5.0/expected_spell_book/habtm_spells.rbi +0 -319
- data/spec/test_data/v5.0/expected_spell_book.rbi +0 -415
- data/spec/test_data/v5.0/expected_squib.rbi +0 -832
- data/spec/test_data/v5.0/expected_subject/habtm_wizards.rbi +0 -319
- data/spec/test_data/v5.0/expected_subject.rbi +0 -292
- data/spec/test_data/v5.0/expected_wand.rbi +0 -497
- data/spec/test_data/v5.0/expected_wizard/habtm_subjects.rbi +0 -319
- data/spec/test_data/v5.0/expected_wizard.rbi +0 -908
- data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +0 -902
- data/spec/test_data/v5.1/expected_application_job.rbi +0 -20
- data/spec/test_data/v5.1/expected_application_mailer.rbi +0 -5
- data/spec/test_data/v5.1/expected_award_house_point_hourglasses.rbi +0 -20
- data/spec/test_data/v5.1/expected_custom_application_job.rbi +0 -21
- data/spec/test_data/v5.1/expected_custom_application_mailer.rbi +0 -6
- data/spec/test_data/v5.1/expected_custom_award_house_point_hourglasses.rbi +0 -21
- data/spec/test_data/v5.1/expected_custom_daily_prophet_mailer.rbi +0 -8
- data/spec/test_data/v5.1/expected_custom_hogwarts_acceptance_mailer.rbi +0 -21
- data/spec/test_data/v5.1/expected_daily_prophet_mailer.rbi +0 -7
- data/spec/test_data/v5.1/expected_helpers.rbi +0 -27
- data/spec/test_data/v5.1/expected_helpers_with_application_and_devise_helpers.rbi +0 -34
- data/spec/test_data/v5.1/expected_hogwarts_acceptance_mailer.rbi +0 -20
- data/spec/test_data/v5.1/expected_no_routes.rbi +0 -4
- data/spec/test_data/v5.1/expected_routes.rbi +0 -27
- data/spec/test_data/v5.1/expected_srb_tc_output.txt +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46916b2838ddb2a8dbbbc8e7ddbaa6a01daa7c7d6be081cb26661ac23f314ffc
|
4
|
+
data.tar.gz: 9dbc6e5beedbf770274f2a0ef21a422579f80d1c27d14dea882109167e05acc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44e3a47dd6a57252cb1df2db05fd7c7717e9409e8739f9e8e9040092a3f1400390ed9de1cfd142f7efa79272718c1726ea73948787d458e8b3b7daf581d6de5c
|
7
|
+
data.tar.gz: ef8f746a76f3cda2bf5e83a0e94c6927487ce45d8ca3e8adc2cba42c0811d06ffeef44f6a6c09806ca659381c4c4b4f0adcde01c42f4375a45700331a1dde66e
|
@@ -0,0 +1,28 @@
|
|
1
|
+
name: ci-master
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: # Trigger only on the main branch to avoid duplicate runs on PR branches
|
6
|
+
- master
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
rspec:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
strategy:
|
13
|
+
fail-fast: false
|
14
|
+
matrix:
|
15
|
+
ruby: [2.5, 2.6, 2.7]
|
16
|
+
rails: [5.2, 6.0, 6.1]
|
17
|
+
|
18
|
+
env:
|
19
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
20
|
+
CI: true
|
21
|
+
|
22
|
+
steps:
|
23
|
+
- uses: actions/checkout@v2
|
24
|
+
- uses: ruby/setup-ruby@v1
|
25
|
+
with:
|
26
|
+
ruby-version: ${{ matrix.ruby }}
|
27
|
+
# bundler-cache: true -- this messes up some dynamic constants
|
28
|
+
- run: "./spec/bin/run_spec.sh"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: ci
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request: # Trigger All PRs
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
rspec:
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
|
10
|
+
strategy:
|
11
|
+
fail-fast: false
|
12
|
+
matrix:
|
13
|
+
ruby: [2.5, 2.6, 2.7]
|
14
|
+
rails: [5.2, 6.0, 6.1]
|
15
|
+
|
16
|
+
env:
|
17
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
18
|
+
CI: true
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
- uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
25
|
+
# bundler-cache: true -- this messes up some dynamic constants
|
26
|
+
- run: "./spec/bin/run_spec.sh"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
name: publish-gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
# pull_request: # test with pull request
|
5
|
+
push:
|
6
|
+
branches: # Trigger only on the main branch to avoid duplicate runs on PR branches
|
7
|
+
- master
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Release Gem
|
16
|
+
uses: dawidd6/action-publish-gem@v1
|
17
|
+
with:
|
18
|
+
api_key: ${{secrets.RUBYGEMS_API_KEY}}
|
data/CONTRIBUTING.md
CHANGED
@@ -87,10 +87,9 @@ To run the tests against all supported Rails branches, use:
|
|
87
87
|
You can also switch to a version of Rails with `RAILS_VERSION`:
|
88
88
|
|
89
89
|
```sh
|
90
|
-
❯ RAILS_VERSION=5.0 ./spec/bin/run_spec.sh
|
91
|
-
❯ RAILS_VERSION=5.1 ./spec/bin/run_spec.sh
|
92
90
|
❯ RAILS_VERSION=5.2 ./spec/bin/run_spec.sh
|
93
91
|
❯ RAILS_VERSION=6.0 ./spec/bin/run_spec.sh
|
92
|
+
❯ RAILS_VERSION=6.1 ./spec/bin/run_spec.sh
|
94
93
|
```
|
95
94
|
|
96
95
|
#### Debugging
|
data/Gemfile
CHANGED
@@ -13,14 +13,6 @@ case rails_version
|
|
13
13
|
when "master"
|
14
14
|
gem "rails", {github: "rails/rails"}
|
15
15
|
gem "bundler", ">= 1.3.0"
|
16
|
-
when "5.0"
|
17
|
-
gem "rails", "~> 5.0.7"
|
18
|
-
gem "bundler", ">= 2.0"
|
19
|
-
gem "sqlite3", "~> 1.3.6"
|
20
|
-
when "5.1"
|
21
|
-
gem "rails", "~> 5.1.7"
|
22
|
-
gem "bundler", ">= 2.0"
|
23
|
-
gem "sqlite3", "~> 1.4.1"
|
24
16
|
when "5.2"
|
25
17
|
gem "rails", "~> 5.2.3"
|
26
18
|
gem "bundler", ">= 2.0"
|
@@ -29,8 +21,12 @@ when "6.0"
|
|
29
21
|
gem "rails", "~> 6.0.0"
|
30
22
|
gem "bundler", ">= 2.0"
|
31
23
|
gem "sqlite3", "~> 1.4.1"
|
24
|
+
when "6.1"
|
25
|
+
gem "rails", "~> 6.1.0"
|
26
|
+
gem "bundler", ">= 2.0"
|
27
|
+
gem "sqlite3", "~> 1.4.1"
|
32
28
|
else
|
33
|
-
gem "rails", "~>
|
29
|
+
gem "rails", "~> 6.0.0"
|
34
30
|
gem "bundler", ">= 2.0"
|
35
31
|
gem "sqlite3", "~> 1.4.1"
|
36
32
|
end
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# sorbet-rails
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/sorbet-rails.svg)](https://badge.fury.io/rb/sorbet-rails)
|
3
|
-
[![Build Status](https://
|
3
|
+
[![Build Status](https://github.com/chanzuckerberg/sorbet-rails/actions/workflows/ci-master.yml/badge.svg)](https://github.com/chanzuckerberg/sorbet-rails)
|
4
4
|
[![codecov](https://codecov.io/gh/chanzuckerberg/sorbet-rails/branch/master/graph/badge.svg)](https://codecov.io/gh/chanzuckerberg/sorbet-rails)
|
5
5
|
|
6
6
|
A set of tools to make the [Sorbet](https://sorbet.org) typechecker work with Ruby on Rails seamlessly.
|
@@ -9,6 +9,8 @@ This gem adds a few Rake tasks to generate Ruby Interface (RBI) files for dynami
|
|
9
9
|
|
10
10
|
`sorbet-rails` supports Rails 5+ or later.
|
11
11
|
|
12
|
+
**Notice**: we automatically creates a new release on Rubygems with every merges to the master branch
|
13
|
+
|
12
14
|
**Notice**: we no longer support Rails 4.2. [Version 0.5.6](https://github.com/chanzuckerberg/sorbet-rails/releases/tag/v0.5.6) is the last version supporting Rails 4.2.
|
13
15
|
|
14
16
|
## Initial Setup
|
@@ -43,8 +45,8 @@ Add `sorbet-rails` to the [`:default` group](https://bundler.io/v2.0/guides/grou
|
|
43
45
|
|
44
46
|
4. Update hidden-definition files and automatically upgrade each file's typecheck level:
|
45
47
|
```sh
|
46
|
-
❯ srb rbi hidden-definitions
|
47
|
-
❯ srb rbi suggest-typed
|
48
|
+
❯ bundle exec srb rbi hidden-definitions
|
49
|
+
❯ bundle exec srb rbi suggest-typed
|
48
50
|
```
|
49
51
|
Because we've generated RBI files for routes, models, and helpers, a lot more files should be typecheckable now. Many methods in `hidden.rbi` may be removed because they are now typed.
|
50
52
|
|
@@ -206,7 +208,7 @@ end
|
|
206
208
|
❯ bundle exec rake rails_rbi:custom
|
207
209
|
```
|
208
210
|
|
209
|
-
`sorbet-rails` adds `TypedParams` to
|
211
|
+
`sorbet-rails` adds `TypedParams` to extract typed controller parameters.
|
210
212
|
|
211
213
|
TypedParams takes a parameter definition, which is a subclass of `T::Struct` and coerces the `params` object into an instance of that subclass using [sorbet-coerce](https://github.com/chanzuckerberg/sorbet-coerce):
|
212
214
|
```ruby
|
@@ -311,7 +313,7 @@ It is worth going through the list of files that is ignored and resolve them (an
|
|
311
313
|
|
312
314
|
### Overriding generated signatures if needed
|
313
315
|
|
314
|
-
`sorbet-rails` relies on Rails reflection to generate signatures. There are features this gem doesn't support yet such as [
|
316
|
+
`sorbet-rails` relies on Rails reflection to generate signatures. There are features this gem doesn't support yet such as [attribute custom types](https://github.com/chanzuckerberg/sorbet-rails/issues/16). The gem also doesn't know the signature of any methods you have overridden. However, it is possible to override the signatures that `sorbet-rails` generates.
|
315
317
|
|
316
318
|
For example, here is how to override the signature for a method in a model:
|
317
319
|
|
@@ -522,6 +524,10 @@ These are the currently-supported gems and their symbolized names:
|
|
522
524
|
| [Shrine] | `:shrine` |
|
523
525
|
| [active_flag]| `:active_flag` |
|
524
526
|
| [Paperclip] | `:paperclip` |
|
527
|
+
| [AttrJson] | `:attr_json` |
|
528
|
+
| [FlagShihTzu] | `:flag_shih_tzu` |
|
529
|
+
| [AASM] | `:aasm` |
|
530
|
+
| [Money-Rails] | `:money_rails` |
|
525
531
|
|
526
532
|
You can also configure the core model plugins if needed. The default plugins are defined in the [config](https://github.com/chanzuckerberg/sorbet-rails/blob/master/lib/sorbet-rails/config.rb). For the full list of plugin symbols, check out [here](https://github.com/chanzuckerberg/sorbet-rails/blob/master/lib/sorbet-rails/model_plugins/plugins.rb).
|
527
533
|
|
@@ -533,6 +539,10 @@ You can also configure the core model plugins if needed. The default plugins are
|
|
533
539
|
[Shrine]: https://github.com/shrinerb/shrine
|
534
540
|
[active_flag]: https://github.com/kenn/active_flag
|
535
541
|
[Paperclip]: https://github.com/thoughtbot/paperclip
|
542
|
+
[AttrJson]: https://github.com/jrochkind/attr_json
|
543
|
+
[FlagShihTzu]: https://github.com/pboling/flag_shih_tzu
|
544
|
+
[AASM]: https://github.com/aasm/aasm
|
545
|
+
[Money-Rails]: https://github.com/RubyMoney/money-rails
|
536
546
|
|
537
547
|
### Customize Generation Class
|
538
548
|
|
data/Rakefile
CHANGED
@@ -10,13 +10,22 @@ namespace :update_spec do
|
|
10
10
|
|
11
11
|
desc "Generate Rails apps for all versions."
|
12
12
|
task :all do |t, args|
|
13
|
+
Rake::Task['update_spec:v6_1'].invoke
|
13
14
|
Rake::Task['update_spec:v6_0'].invoke
|
14
15
|
Rake::Task['update_spec:v5_2'].invoke
|
15
|
-
Rake::Task['update_spec:v5_1'].invoke
|
16
|
-
Rake::Task['update_spec:v5_0'].invoke
|
17
16
|
end
|
18
17
|
|
19
|
-
desc "Delete the Rails 6 spec directory and regenerate it."
|
18
|
+
desc "Delete the Rails 6.1 spec directory and regenerate it."
|
19
|
+
task :v6_1 do |t, args|
|
20
|
+
Bundler.with_clean_env do
|
21
|
+
FileUtils.rm_rf 'spec/support/v6.1' if File.directory?('spec/support/v6.1')
|
22
|
+
system("gem install rails -v 6.1.4")
|
23
|
+
system("rails _6.1.4_ -v")
|
24
|
+
system("RAILS_VERSION='6.1' rails _6.1.4_ new --template spec/generators/rails-template.rb spec/support/v6.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Delete the Rails 6.0 spec directory and regenerate it."
|
20
29
|
task :v6_0 do |t, args|
|
21
30
|
Bundler.with_clean_env do
|
22
31
|
FileUtils.rm_rf 'spec/support/v6.0' if File.directory?('spec/support/v6.0')
|
@@ -36,29 +45,9 @@ namespace :update_spec do
|
|
36
45
|
end
|
37
46
|
end
|
38
47
|
|
39
|
-
desc "Delete the Rails 5.1 spec directory and regenerate it."
|
40
|
-
task :v5_1 do |t, args|
|
41
|
-
Bundler.with_clean_env do
|
42
|
-
FileUtils.rm_rf 'spec/support/v5.1' if File.directory?('spec/support/v5.1')
|
43
|
-
system("gem install rails -v 5.1.7")
|
44
|
-
system("rails _5.1.7_ -v")
|
45
|
-
system("RAILS_VERSION='5.1' rails _5.1.7_ new --template spec/generators/rails-template.rb spec/support/v5.1 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
desc "Delete the Rails 5.0 spec directory and regenerate it."
|
50
|
-
task :v5_0 do |t, args|
|
51
|
-
Bundler.with_clean_env do
|
52
|
-
FileUtils.rm_rf 'spec/support/v5.0' if File.directory?('spec/support/v5.0')
|
53
|
-
system("gem install rails -v 5.0.7")
|
54
|
-
system("rails _5.0.7_ -v")
|
55
|
-
system("RAILS_VERSION='5.0' rails _5.0.7_ new --template spec/generators/rails-template.rb spec/support/v5.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
48
|
desc "Update sorbet_test_cases.rb in all the Rails apps in spec/support."
|
60
49
|
task :sorbet_test_cases do |t, args|
|
61
|
-
['v6.
|
50
|
+
['v6.1', 'v6.0', 'v5.2'].each do |version|
|
62
51
|
FileUtils.cp("spec/generators/sorbet_test_cases.rb", "spec/support/#{version}/sorbet_test_cases.rb")
|
63
52
|
end
|
64
53
|
end
|
@@ -38,10 +38,10 @@ class SorbetRails::ActiveRecordRbiFormatter
|
|
38
38
|
|
39
39
|
parlour.root.create_class('ActiveRecord::Relation') do |class_rbi|
|
40
40
|
class_rbi.create_include("Enumerable")
|
41
|
-
class_rbi.create_constant(
|
42
|
-
|
43
|
-
|
44
|
-
)
|
41
|
+
# class_rbi.create_constant(
|
42
|
+
# "Elem",
|
43
|
+
# value: "type_member(fixed: T.untyped)",
|
44
|
+
# )
|
45
45
|
|
46
46
|
create_elem_specific_query_methods(class_rbi, type: 'Elem', class_method: false)
|
47
47
|
create_general_query_methods(class_rbi, class_method: false)
|
@@ -273,6 +273,18 @@ class SorbetRails::ActiveRecordRbiFormatter
|
|
273
273
|
class_method: class_method,
|
274
274
|
)
|
275
275
|
end
|
276
|
+
|
277
|
+
boolean_methods = %w(any? many? none? one?)
|
278
|
+
boolean_methods.each do |boolean_method|
|
279
|
+
class_rbi.create_method(
|
280
|
+
boolean_method,
|
281
|
+
parameters: [
|
282
|
+
Parameter.new("&block", type: "T.nilable(T.proc.params(e: #{type}).returns(T::Boolean))"),
|
283
|
+
],
|
284
|
+
return_type: "T::Boolean",
|
285
|
+
class_method: class_method,
|
286
|
+
)
|
287
|
+
end
|
276
288
|
end
|
277
289
|
|
278
290
|
sig {
|
@@ -288,14 +300,5 @@ class SorbetRails::ActiveRecordRbiFormatter
|
|
288
300
|
return_type: "T::Boolean",
|
289
301
|
class_method: class_method,
|
290
302
|
)
|
291
|
-
|
292
|
-
boolean_methods = %w(any? many? none? one?)
|
293
|
-
boolean_methods.each do |boolean_method|
|
294
|
-
class_rbi.create_method(
|
295
|
-
boolean_method,
|
296
|
-
return_type: "T::Boolean",
|
297
|
-
class_method: class_method,
|
298
|
-
)
|
299
|
-
end
|
300
303
|
end
|
301
304
|
end
|