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.
- checksums.yaml +4 -4
- data/.gitignore +6 -1
- data/.travis.yml +1 -1
- data/CONTRIBUTING.md +21 -12
- data/Rakefile +81 -0
- data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +21 -0
- data/lib/sorbet-rails/tasks/rails_rbi.rake +10 -6
- data/sorbet-rails.gemspec +1 -1
- data/spec/bin/run_spec.sh +2 -2
- data/spec/generators/rails-template.rb +268 -0
- data/spec/{support/rails_shared → generators}/sorbet_test_cases.rb +0 -0
- data/spec/helper_rbi_formatter_spec.rb +1 -1
- data/spec/support/v4.2/Gemfile +3 -14
- data/spec/support/v4.2/Gemfile.lock +8 -23
- data/spec/support/v4.2/app/controllers/application_controller.rb +1 -1
- data/spec/support/v4.2/app/helpers/application_helper.rb +3 -0
- data/spec/support/v4.2/app/helpers/bar_helper.rb +3 -0
- data/spec/support/v4.2/app/helpers/baz_helper.rb +3 -0
- data/spec/support/v4.2/app/helpers/foo_helper.rb +3 -0
- data/spec/support/{rails_shared/app/controllers/concerns → v4.2/app/models}/.keep +0 -0
- data/spec/support/v4.2/app/models/application_record.rb +5 -0
- data/spec/support/{v5.0/test/controllers → v4.2/app/models/concerns}/.keep +0 -0
- data/spec/support/v4.2/app/models/concerns/mythical.rb +11 -0
- data/spec/support/v4.2/app/models/potion.rb +5 -0
- data/spec/support/v4.2/app/models/spell_book.rb +5 -0
- data/spec/support/v4.2/app/models/wand.rb +17 -0
- data/spec/support/v4.2/app/models/wizard.rb +14 -0
- data/spec/support/v4.2/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v4.2/config/routes.rb +55 -2
- data/spec/support/v4.2/db/migrate/{20190620001234_create_wizards.rb → 20190620000001_create_wizards.rb} +0 -0
- data/spec/support/v4.2/db/migrate/{20190620003037_create_wands.rb → 20190620000002_create_wands.rb} +0 -0
- data/spec/support/v4.2/db/migrate/{20190620003739_create_spell_books.rb → 20190620000003_create_spell_books.rb} +0 -0
- 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
- data/spec/support/v4.2/db/schema.rb +1 -1
- data/spec/support/v4.2/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v4.2/sorbet/rbi/gems/actionpack.rbi +277 -279
- data/spec/support/v4.2/sorbet/rbi/gems/actionview.rbi +18 -18
- data/spec/support/v4.2/sorbet/rbi/gems/activemodel.rbi +46 -46
- data/spec/support/v4.2/sorbet/rbi/gems/activerecord.rbi +413 -410
- data/spec/support/v4.2/sorbet/rbi/gems/activesupport.rbi +58 -58
- data/spec/support/v4.2/sorbet/rbi/gems/byebug.rbi +22 -22
- data/spec/support/v4.2/sorbet/rbi/gems/mail.rbi +2 -2
- data/spec/support/v4.2/sorbet/rbi/gems/mini_mime.rbi +8 -2
- data/spec/support/v4.2/sorbet/rbi/gems/parlour.rbi +214 -0
- data/spec/support/v4.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
- data/spec/support/v4.2/sorbet/rbi/gems/railties.rbi +0 -6
- data/spec/support/v4.2/sorbet/rbi/gems/thor.rbi +2 -2
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
- data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
- data/spec/support/v4.2/sorbet/rbi/todo.rbi +59 -1
- data/spec/support/v4.2/sorbet_test_cases.rb +123 -0
- data/spec/support/v4.2/typed-override.yaml +2 -0
- data/spec/support/v5.0/Gemfile +6 -19
- data/spec/support/v5.0/Gemfile.lock +12 -9
- data/spec/support/v5.0/app/assets/config/manifest.js +2 -0
- data/spec/support/v5.0/{test/fixtures → app/assets/images}/.keep +0 -0
- data/spec/support/v5.0/app/assets/stylesheets/application.css +15 -0
- data/spec/support/v5.0/app/controllers/application_controller.rb +4 -0
- data/spec/support/v5.0/{test/fixtures/files → app/controllers/concerns}/.keep +0 -0
- data/spec/support/v5.0/app/helpers/application_helper.rb +3 -0
- data/spec/support/v5.0/app/helpers/bar_helper.rb +3 -0
- data/spec/support/v5.0/app/helpers/baz_helper.rb +3 -0
- data/spec/support/v5.0/app/helpers/foo_helper.rb +3 -0
- data/spec/support/v5.0/app/models/application_record.rb +5 -0
- data/spec/support/v5.0/{test/integration → app/models/concerns}/.keep +0 -0
- data/spec/support/v5.0/app/models/concerns/mythical.rb +11 -0
- data/spec/support/v5.0/app/models/potion.rb +5 -0
- data/spec/support/v5.0/app/models/spell_book.rb +5 -0
- data/spec/support/v5.0/app/models/wand.rb +17 -0
- data/spec/support/v5.0/app/models/wizard.rb +14 -0
- data/spec/support/v5.0/app/views/layouts/application.html.erb +13 -0
- data/spec/support/v5.0/config/application.rb +2 -7
- data/spec/support/v5.0/config/environments/production.rb +0 -4
- data/spec/support/v5.0/config/initializers/cookies_serializer.rb +6 -0
- data/spec/support/v5.0/config/initializers/new_framework_defaults.rb +8 -0
- data/spec/support/v5.0/config/initializers/session_store.rb +4 -0
- data/spec/support/v5.0/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v5.0/config/routes.rb +2 -2
- data/spec/support/{rails_shared/db/migrate/20190620001234_create_wizards.rb → v5.0/db/migrate/20190620000001_create_wizards.rb} +2 -1
- data/spec/support/{rails_shared/db/migrate/20190620003037_create_wands.rb → v5.0/db/migrate/20190620000002_create_wands.rb} +2 -1
- data/spec/support/{rails_shared/db/migrate/20190620003739_create_spell_books.rb → v5.0/db/migrate/20190620000003_create_spell_books.rb} +2 -1
- data/spec/support/v5.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
- data/spec/support/v5.0/db/schema.rb +1 -1
- data/spec/support/v5.0/{test/mailers → lib/assets}/.keep +0 -0
- data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v5.0/sorbet/rbi/gems/actionmailer.rbi +2 -50
- data/spec/support/v5.0/sorbet/rbi/gems/actionpack.rbi +533 -696
- data/spec/support/v5.0/sorbet/rbi/gems/actionview.rbi +56 -57
- data/spec/support/v5.0/sorbet/rbi/gems/activejob.rbi +0 -22
- data/spec/support/v5.0/sorbet/rbi/gems/activemodel.rbi +75 -75
- data/spec/support/v5.0/sorbet/rbi/gems/activerecord.rbi +644 -1020
- data/spec/support/v5.0/sorbet/rbi/gems/activesupport.rbi +81 -216
- data/spec/support/v5.0/sorbet/rbi/gems/arel.rbi +6 -6
- data/spec/support/v5.0/sorbet/rbi/gems/byebug.rbi +22 -22
- data/spec/support/v5.0/sorbet/rbi/gems/jbuilder.rbi +99 -0
- data/spec/support/v5.0/sorbet/rbi/gems/mail.rbi +2 -2
- data/spec/support/v5.0/sorbet/rbi/gems/mini_mime.rbi +8 -2
- data/spec/support/v5.0/sorbet/rbi/gems/nokogiri.rbi +6 -6
- data/spec/support/v5.0/sorbet/rbi/gems/parlour.rbi +214 -0
- data/spec/support/v5.0/sorbet/rbi/gems/rack.rbi +53 -98
- data/spec/support/v5.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
- data/spec/support/v5.0/sorbet/rbi/gems/railties.rbi +0 -210
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
- data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
- data/spec/support/v5.0/sorbet/rbi/todo.rbi +62 -4
- data/spec/support/v5.0/sorbet_test_cases.rb +123 -0
- data/spec/support/v5.0/typed-override.yaml +2 -0
- data/spec/support/v5.0/{test/models → vendor/assets/stylesheets}/.keep +0 -0
- data/spec/support/v5.1/.gitignore +23 -0
- data/spec/support/v5.1/Gemfile +9 -25
- data/spec/support/v5.1/Gemfile.lock +22 -11
- data/spec/support/v5.1/app/assets/config/manifest.js +2 -0
- data/spec/support/v5.1/{test/controllers → app/assets/images}/.keep +0 -0
- data/spec/support/v5.1/app/assets/stylesheets/application.css +15 -0
- data/spec/support/v5.1/app/controllers/application_controller.rb +4 -0
- data/spec/support/v5.1/{test/fixtures → app/controllers/concerns}/.keep +0 -0
- data/spec/support/v5.1/app/helpers/application_helper.rb +3 -0
- data/spec/support/v5.1/app/helpers/bar_helper.rb +3 -0
- data/spec/support/v5.1/app/helpers/baz_helper.rb +3 -0
- data/spec/support/v5.1/app/helpers/foo_helper.rb +3 -0
- data/spec/support/v5.1/app/models/application_record.rb +5 -0
- data/spec/support/v5.1/{test/fixtures/files → app/models/concerns}/.keep +0 -0
- data/spec/support/v5.1/app/models/concerns/mythical.rb +11 -0
- data/spec/support/v5.1/app/models/potion.rb +5 -0
- data/spec/support/v5.1/app/models/spell_book.rb +5 -0
- data/spec/support/v5.1/app/models/wand.rb +17 -0
- data/spec/support/v5.1/app/models/wizard.rb +14 -0
- data/spec/support/v5.1/app/views/layouts/application.html.erb +13 -0
- data/spec/support/v5.1/bin/setup +3 -0
- data/spec/support/v5.1/bin/yarn +11 -0
- data/spec/support/v5.1/config/application.rb +5 -7
- data/spec/support/v5.1/config/environments/production.rb +1 -5
- data/spec/support/v5.1/config/initializers/cookies_serializer.rb +6 -0
- data/spec/support/v5.1/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v5.1/config/routes.rb +5 -0
- data/spec/support/v5.1/db/migrate/20190620000001_create_wizards.rb +13 -0
- data/spec/support/v5.1/db/migrate/20190620000002_create_wands.rb +12 -0
- data/spec/support/v5.1/db/migrate/20190620000003_create_spell_books.rb +9 -0
- data/spec/support/v5.1/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
- data/spec/support/v5.1/db/schema.rb +1 -1
- data/spec/support/v5.1/{test/integration → lib/assets}/.keep +0 -0
- data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v5.1/package.json +5 -0
- data/spec/support/v5.1/sorbet/rbi/gems/actionmailer.rbi +2 -49
- data/spec/support/v5.1/sorbet/rbi/gems/actionpack.rbi +588 -732
- data/spec/support/v5.1/sorbet/rbi/gems/actionview.rbi +123 -124
- data/spec/support/v5.1/sorbet/rbi/gems/activejob.rbi +0 -35
- data/spec/support/v5.1/sorbet/rbi/gems/activemodel.rbi +68 -68
- data/spec/support/v5.1/sorbet/rbi/gems/activerecord.rbi +501 -651
- data/spec/support/v5.1/sorbet/rbi/gems/activesupport.rbi +80 -218
- data/spec/support/v5.1/sorbet/rbi/gems/bindex.rbi +36 -0
- data/spec/support/v5.1/sorbet/rbi/gems/byebug.rbi +22 -22
- data/spec/support/v5.1/sorbet/rbi/gems/jbuilder.rbi +99 -0
- data/spec/support/v5.1/sorbet/rbi/gems/mail.rbi +2 -2
- data/spec/support/v5.1/sorbet/rbi/gems/mini_mime.rbi +8 -2
- data/spec/support/v5.1/sorbet/rbi/gems/nokogiri.rbi +6 -6
- data/spec/support/v5.1/sorbet/rbi/gems/parlour.rbi +214 -0
- data/spec/support/v5.1/sorbet/rbi/gems/rack.rbi +53 -98
- data/spec/support/v5.1/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
- data/spec/support/v5.1/sorbet/rbi/gems/railties.rbi +0 -209
- data/spec/support/v5.1/sorbet/rbi/gems/sqlite3.rbi +13 -5
- data/spec/support/{v4.2 → v5.1}/sorbet/rbi/gems/web-console.rbi +10 -73
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
- data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
- data/spec/support/v5.1/sorbet/rbi/todo.rbi +59 -2
- data/spec/support/v5.1/sorbet_test_cases.rb +123 -0
- data/spec/support/v5.1/typed-override.yaml +2 -0
- data/spec/support/v5.2-no-sorbet/.gitignore +31 -0
- data/spec/support/v5.2-no-sorbet/Gemfile +12 -28
- data/spec/support/v5.2-no-sorbet/Gemfile.lock +24 -10
- data/spec/support/v5.2-no-sorbet/app/assets/config/manifest.js +2 -0
- data/spec/support/{v5.1/test/mailers → v5.2-no-sorbet/app/assets/images}/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/app/assets/stylesheets/application.css +15 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/controllers/application_controller.rb +0 -0
- data/spec/support/{v5.1/test/models → v5.2-no-sorbet/app/controllers/concerns}/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/app/helpers/application_helper.rb +2 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/bar_helper.rb +0 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/baz_helper.rb +0 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/helpers/foo_helper.rb +0 -0
- data/spec/support/v5.2-no-sorbet/app/jobs/application_job.rb +0 -1
- data/spec/support/v5.2-no-sorbet/app/mailers/application_mailer.rb +0 -1
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/application_record.rb +0 -1
- data/spec/support/v5.2-no-sorbet/{test/controllers → app/models/concerns}/.keep +0 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/concerns/mythical.rb +1 -1
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/potion.rb +0 -1
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/spell_book.rb +0 -2
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/wand.rb +0 -0
- data/spec/support/{rails_shared → v5.2-no-sorbet}/app/models/wizard.rb +0 -1
- data/spec/support/v5.2-no-sorbet/app/views/layouts/application.html.erb +14 -0
- data/spec/support/v5.2-no-sorbet/bin/setup +3 -0
- data/spec/support/v5.2-no-sorbet/bin/update +3 -0
- data/spec/support/v5.2-no-sorbet/bin/yarn +11 -0
- data/spec/support/v5.2-no-sorbet/config/application.rb +5 -8
- data/spec/support/v5.2-no-sorbet/config/boot.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/environment.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/environments/development.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/environments/production.rb +1 -7
- data/spec/support/v5.2-no-sorbet/config/environments/test.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/application_controller_renderer.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/backtrace_silencers.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/content_security_policy.rb +25 -0
- data/spec/support/v5.2-no-sorbet/config/initializers/cookies_serializer.rb +5 -0
- data/spec/support/v5.2-no-sorbet/config/initializers/filter_parameter_logging.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/inflections.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/mime_types.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v5.2-no-sorbet/config/initializers/wrap_parameters.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/puma.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/routes.rb +4 -0
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000001_create_wizards.rb +12 -0
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000002_create_wands.rb +11 -0
- data/spec/support/v5.2-no-sorbet/db/migrate/20190620000003_create_spell_books.rb +8 -0
- 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
- data/spec/support/v5.2-no-sorbet/db/schema.rb +1 -2
- data/spec/support/v5.2-no-sorbet/db/seeds.rb +0 -1
- data/spec/support/v5.2-no-sorbet/{test/fixtures → lib/assets}/.keep +0 -0
- data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v5.2-no-sorbet/package.json +5 -0
- data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +123 -0
- data/spec/support/v5.2-no-sorbet/typed-override.yaml +2 -0
- data/spec/support/v5.2/.gitignore +31 -0
- data/spec/support/v5.2/Gemfile +12 -28
- data/spec/support/v5.2/Gemfile.lock +24 -10
- data/spec/support/v5.2/app/assets/config/manifest.js +2 -0
- data/spec/support/{v5.2-no-sorbet/test/fixtures/files → v5.2/app/assets/images}/.keep +0 -0
- data/spec/support/v5.2/app/assets/stylesheets/application.css +15 -0
- data/spec/support/v5.2/app/controllers/application_controller.rb +3 -0
- data/spec/support/{v5.2-no-sorbet/test/integration → v5.2/app/controllers/concerns}/.keep +0 -0
- data/spec/support/v5.2/app/helpers/application_helper.rb +3 -0
- data/spec/support/v5.2/app/helpers/bar_helper.rb +3 -0
- data/spec/support/v5.2/app/helpers/baz_helper.rb +3 -0
- data/spec/support/v5.2/app/helpers/foo_helper.rb +3 -0
- data/spec/support/v5.2/app/models/application_record.rb +5 -0
- data/spec/support/{v5.2-no-sorbet/test/mailers → v5.2/app/models/concerns}/.keep +0 -0
- data/spec/support/v5.2/app/models/concerns/mythical.rb +11 -0
- data/spec/support/v5.2/app/models/potion.rb +5 -0
- data/spec/support/v5.2/app/models/spell_book.rb +5 -0
- data/spec/support/v5.2/app/models/wand.rb +17 -0
- data/spec/support/v5.2/app/models/wizard.rb +14 -0
- data/spec/support/v5.2/app/views/layouts/application.html.erb +14 -0
- data/spec/support/v5.2/bin/setup +3 -0
- data/spec/support/v5.2/bin/update +3 -0
- data/spec/support/v5.2/bin/yarn +11 -0
- data/spec/support/v5.2/config/application.rb +5 -7
- data/spec/support/v5.2/config/environments/production.rb +1 -6
- data/spec/support/v5.2/config/initializers/content_security_policy.rb +26 -0
- data/spec/support/v5.2/config/initializers/cookies_serializer.rb +6 -0
- data/spec/support/v5.2/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v5.2/config/routes.rb +5 -0
- data/spec/support/v5.2/db/migrate/20190620000001_create_wizards.rb +13 -0
- data/spec/support/v5.2/db/migrate/20190620000002_create_wands.rb +12 -0
- data/spec/support/v5.2/db/migrate/20190620000003_create_spell_books.rb +9 -0
- data/spec/support/v5.2/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
- data/spec/support/v5.2/db/schema.rb +1 -1
- data/spec/support/{v5.2-no-sorbet/test/models → v5.2/lib/assets}/.keep +0 -0
- data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v5.2/package.json +5 -0
- data/spec/support/v5.2/sorbet/rbi/gems/actionmailer.rbi +2 -50
- data/spec/support/v5.2/sorbet/rbi/gems/actionpack.rbi +504 -640
- data/spec/support/v5.2/sorbet/rbi/gems/actionview.rbi +123 -124
- data/spec/support/v5.2/sorbet/rbi/gems/activejob.rbi +0 -37
- data/spec/support/v5.2/sorbet/rbi/gems/activemodel.rbi +70 -69
- data/spec/support/v5.2/sorbet/rbi/gems/activerecord.rbi +521 -690
- data/spec/support/v5.2/sorbet/rbi/gems/activesupport.rbi +93 -235
- data/spec/support/v5.2/sorbet/rbi/gems/arel.rbi +4 -0
- data/spec/support/v5.2/sorbet/rbi/gems/bindex.rbi +36 -0
- data/spec/support/v5.2/sorbet/rbi/gems/byebug.rbi +22 -22
- data/spec/support/v5.2/sorbet/rbi/gems/concurrent-ruby.rbi +4 -0
- data/spec/support/v5.2/sorbet/rbi/gems/jbuilder.rbi +99 -0
- data/spec/support/v5.2/sorbet/rbi/gems/mail.rbi +2 -2
- data/spec/support/v5.2/sorbet/rbi/gems/mini_mime.rbi +8 -2
- data/spec/support/v5.2/sorbet/rbi/gems/nokogiri.rbi +10 -6
- data/spec/support/v5.2/sorbet/rbi/gems/parlour.rbi +214 -0
- data/spec/support/v5.2/sorbet/rbi/gems/rack.rbi +57 -98
- data/spec/support/v5.2/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
- data/spec/support/v5.2/sorbet/rbi/gems/railties.rbi +1 -215
- data/spec/support/v5.2/sorbet/rbi/gems/web-console.rbi +73 -0
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/{~>5.2 → ~>5.2.0}/activerecord.rbi +1 -1
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +360 -9
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
- data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
- data/spec/support/v5.2/sorbet/rbi/todo.rbi +59 -2
- data/spec/support/v5.2/sorbet_test_cases.rb +123 -0
- data/spec/support/v5.2/typed-override.yaml +2 -0
- data/spec/support/v6.0/.gitignore +2 -0
- data/spec/support/v6.0/Gemfile +8 -17
- data/spec/support/v6.0/Gemfile.lock +19 -6
- data/spec/support/v6.0/app/assets/config/manifest.js +2 -0
- data/spec/support/{v5.2/sorbet → v6.0/app/assets/images}/.keep +0 -0
- data/spec/support/v6.0/app/assets/stylesheets/application.css +15 -0
- data/spec/support/v6.0/app/controllers/application_controller.rb +3 -0
- data/spec/support/{v5.2/test/controllers → v6.0/app/controllers/concerns}/.keep +0 -0
- data/spec/support/v6.0/app/helpers/application_helper.rb +3 -0
- data/spec/support/v6.0/app/helpers/bar_helper.rb +3 -0
- data/spec/support/v6.0/app/helpers/baz_helper.rb +3 -0
- data/spec/support/v6.0/app/helpers/foo_helper.rb +3 -0
- data/spec/support/v6.0/app/models/application_record.rb +5 -0
- data/spec/support/{v5.2/test/fixtures → v6.0/app/models/concerns}/.keep +0 -0
- data/spec/support/v6.0/app/models/concerns/mythical.rb +11 -0
- data/spec/support/v6.0/app/models/potion.rb +5 -0
- data/spec/support/v6.0/app/models/spell_book.rb +5 -0
- data/spec/support/v6.0/app/models/wand.rb +17 -0
- data/spec/support/v6.0/app/models/wizard.rb +14 -0
- data/spec/support/v6.0/app/views/layouts/application.html.erb +14 -0
- data/spec/support/v6.0/config/application.rb +4 -6
- data/spec/support/v6.0/config/database.yml +1 -1
- data/spec/support/v6.0/config/environments/development.rb +3 -0
- data/spec/support/v6.0/config/environments/production.rb +1 -5
- data/spec/support/v6.0/config/initializers/content_security_policy.rb +29 -0
- data/spec/support/v6.0/config/initializers/cookies_serializer.rb +6 -0
- data/spec/support/v6.0/config/initializers/sorbet_rails.rb +3 -0
- data/spec/support/v6.0/config/routes.rb +2 -2
- data/spec/support/v6.0/db/migrate/20190620000001_create_wizards.rb +13 -0
- data/spec/support/v6.0/db/migrate/20190620000002_create_wands.rb +12 -0
- data/spec/support/v6.0/db/migrate/20190620000003_create_spell_books.rb +9 -0
- data/spec/support/v6.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +16 -0
- data/spec/support/v6.0/db/schema.rb +1 -1
- data/spec/support/{v5.2/test/fixtures/files → v6.0/lib/assets}/.keep +0 -0
- data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +16 -0
- data/spec/support/v6.0/public/robots.txt +1 -1
- data/spec/support/v6.0/sorbet/rbi/gems/actionmailbox.rbi +1 -1
- data/spec/support/v6.0/sorbet/rbi/gems/actionmailer.rbi +1 -50
- data/spec/support/v6.0/sorbet/rbi/gems/actionpack.rbi +232 -479
- data/spec/support/v6.0/sorbet/rbi/gems/actiontext.rbi +1 -1
- data/spec/support/v6.0/sorbet/rbi/gems/actionview.rbi +179 -77
- data/spec/support/v6.0/sorbet/rbi/gems/activejob.rbi +1 -283
- data/spec/support/v6.0/sorbet/rbi/gems/activemodel.rbi +71 -70
- data/spec/support/v6.0/sorbet/rbi/gems/activerecord.rbi +705 -843
- data/spec/support/v6.0/sorbet/rbi/gems/activestorage.rbi +5 -1
- data/spec/support/v6.0/sorbet/rbi/gems/activesupport.rbi +121 -300
- data/spec/support/v6.0/sorbet/rbi/gems/bindex.rbi +36 -0
- data/spec/support/v6.0/sorbet/rbi/gems/byebug.rbi +22 -22
- data/spec/support/v6.0/sorbet/rbi/gems/jbuilder.rbi +99 -0
- data/spec/support/v6.0/sorbet/rbi/gems/mail.rbi +1 -1
- data/spec/support/v6.0/sorbet/rbi/gems/mini_mime.rbi +8 -2
- data/spec/support/v6.0/sorbet/rbi/gems/parlour.rbi +214 -0
- data/spec/support/v6.0/sorbet/rbi/gems/rack.rbi +54 -95
- data/spec/support/v6.0/sorbet/rbi/gems/rails-html-sanitizer.rbi +3 -2
- data/spec/support/v6.0/sorbet/rbi/gems/railties.rbi +9 -221
- data/spec/support/v6.0/sorbet/rbi/gems/web-console.rbi +72 -0
- data/spec/support/v6.0/sorbet/rbi/gems/zeitwerk.rbi +12 -4
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +457 -2
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +422 -0
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1229 -17
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0.rc1/activerecord.rbi +10 -0
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +361 -10
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +32 -4
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
- data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +14 -14
- data/spec/support/v6.0/sorbet/rbi/todo.rbi +59 -0
- data/spec/support/v6.0/sorbet_test_cases.rb +123 -0
- data/spec/support/v6.0/typed-override.yaml +2 -0
- data/spec/test_data/v4.2/expected_helpers.rbi +5 -0
- data/spec/test_data/v5.0/expected_helpers.rbi +5 -0
- data/spec/test_data/v5.1/expected_helpers.rbi +5 -0
- data/spec/test_data/v5.2-no-sorbet/expected_helpers.rbi +5 -0
- data/spec/test_data/v5.2/expected_helpers.rbi +5 -0
- data/spec/test_data/v6.0/expected_helpers.rbi +5 -0
- data/spec/test_data/v6.0/expected_routes.rbi +12 -0
- metadata +356 -317
- data/spec/support/rails_shared/config/initializers/sorbet_rails.rb +0 -3
- data/spec/support/rails_shared/config/routes.rb +0 -6
- data/spec/support/rails_shared/lib/mythical_rbi_plugin.rb +0 -16
- data/spec/support/rails_shared/typed-override.yaml +0 -2
- data/spec/support/rails_symlinks/app/controllers +0 -1
- data/spec/support/rails_symlinks/app/helpers +0 -1
- data/spec/support/rails_symlinks/app/models +0 -1
- data/spec/support/rails_symlinks/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/rails_symlinks/config/routes.rb +0 -5
- data/spec/support/rails_symlinks/db/migrate +0 -1
- data/spec/support/rails_symlinks/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/rails_symlinks/sorbet_test_cases.rb +0 -1
- data/spec/support/rails_symlinks/typed-override.yaml +0 -1
- data/spec/support/v4.2/app/helpers +0 -1
- data/spec/support/v4.2/app/models +0 -1
- data/spec/support/v4.2/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v4.2/config/secrets.yml +0 -22
- data/spec/support/v4.2/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v4.2/sorbet/rbi/gems/binding_of_caller.rbi +0 -22
- data/spec/support/v4.2/sorbet/rbi/gems/debug_inspector.rbi +0 -18
- data/spec/support/v4.2/sorbet/rbi/gems/rdoc.rbi +0 -1053
- data/spec/support/v4.2/sorbet/rbi/gems/sdoc.rbi +0 -73
- data/spec/support/v4.2/sorbet_test_cases.rb +0 -1
- data/spec/support/v4.2/typed-override.yaml +0 -1
- data/spec/support/v5.0/app/channels/application_cable/channel.rb +0 -5
- data/spec/support/v5.0/app/channels/application_cable/connection.rb +0 -5
- data/spec/support/v5.0/app/controllers +0 -1
- data/spec/support/v5.0/app/helpers +0 -1
- data/spec/support/v5.0/app/models +0 -1
- data/spec/support/v5.0/config/cable.yml +0 -9
- data/spec/support/v5.0/config/initializers/cors.rb +0 -17
- data/spec/support/v5.0/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v5.0/config/secrets.yml +0 -22
- data/spec/support/v5.0/db/migrate +0 -1
- data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v5.0/rails_symlinks/app/controllers +0 -1
- data/spec/support/v5.0/rails_symlinks/app/models +0 -1
- data/spec/support/v5.0/rails_symlinks/config/routes.rb +0 -6
- data/spec/support/v5.0/rails_symlinks/db/migrate +0 -1
- data/spec/support/v5.0/sorbet/rbi/gems/actioncable.rbi +0 -309
- data/spec/support/v5.0/sorbet/rbi/gems/method_source.rbi +0 -63
- data/spec/support/v5.0/sorbet/rbi/gems/minitest.rbi +0 -276
- data/spec/support/v5.0/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
- data/spec/support/v5.0/sorbet/rbi/gems/rake.rbi +0 -255
- data/spec/support/v5.0/sorbet/rbi/gems/thor.rbi +0 -401
- data/spec/support/v5.0/sorbet_test_cases.rb +0 -1
- data/spec/support/v5.0/test/test_helper.rb +0 -11
- data/spec/support/v5.0/typed-override.yaml +0 -1
- data/spec/support/v5.1/app/channels/application_cable/channel.rb +0 -5
- data/spec/support/v5.1/app/channels/application_cable/connection.rb +0 -5
- data/spec/support/v5.1/app/controllers +0 -1
- data/spec/support/v5.1/app/helpers +0 -1
- data/spec/support/v5.1/app/models +0 -1
- data/spec/support/v5.1/bin/spring +0 -17
- data/spec/support/v5.1/config/cable.yml +0 -10
- data/spec/support/v5.1/config/initializers/cors.rb +0 -17
- data/spec/support/v5.1/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v5.1/config/routes.rb +0 -1
- data/spec/support/v5.1/config/secrets.yml +0 -32
- data/spec/support/v5.1/config/spring.rb +0 -7
- data/spec/support/v5.1/db/migrate +0 -1
- data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v5.1/sorbet/rbi/gems/actioncable.rbi +0 -309
- data/spec/support/v5.1/sorbet/rbi/gems/method_source.rbi +0 -63
- data/spec/support/v5.1/sorbet/rbi/gems/minitest.rbi +0 -276
- data/spec/support/v5.1/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
- data/spec/support/v5.1/sorbet/rbi/gems/rake.rbi +0 -255
- data/spec/support/v5.1/sorbet/rbi/gems/thor.rbi +0 -450
- data/spec/support/v5.1/sorbet_test_cases.rb +0 -1
- data/spec/support/v5.1/test/test_helper.rb +0 -11
- data/spec/support/v5.1/typed-override.yaml +0 -1
- data/spec/support/v5.2-no-sorbet/app/channels/application_cable/channel.rb +0 -5
- data/spec/support/v5.2-no-sorbet/app/channels/application_cable/connection.rb +0 -5
- data/spec/support/v5.2-no-sorbet/app/controllers +0 -1
- data/spec/support/v5.2-no-sorbet/app/helpers +0 -1
- data/spec/support/v5.2-no-sorbet/app/models +0 -1
- data/spec/support/v5.2-no-sorbet/bin/spring +0 -17
- data/spec/support/v5.2-no-sorbet/config/cable.yml +0 -10
- data/spec/support/v5.2-no-sorbet/config/credentials.yml.enc +0 -1
- data/spec/support/v5.2-no-sorbet/config/initializers/cors.rb +0 -17
- data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/routes.rb +0 -1
- data/spec/support/v5.2-no-sorbet/config/spring.rb +0 -7
- data/spec/support/v5.2-no-sorbet/db/migrate +0 -1
- data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +0 -1
- data/spec/support/v5.2-no-sorbet/test/test_helper.rb +0 -11
- data/spec/support/v5.2-no-sorbet/typed-override.yaml +0 -1
- data/spec/support/v5.2/app/channels/application_cable/channel.rb +0 -5
- data/spec/support/v5.2/app/channels/application_cable/connection.rb +0 -5
- data/spec/support/v5.2/app/controllers +0 -1
- data/spec/support/v5.2/app/helpers +0 -1
- data/spec/support/v5.2/app/models +0 -1
- data/spec/support/v5.2/bin/spring +0 -17
- data/spec/support/v5.2/config/cable.yml +0 -10
- data/spec/support/v5.2/config/credentials.yml.enc +0 -1
- data/spec/support/v5.2/config/initializers/cors.rb +0 -17
- data/spec/support/v5.2/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v5.2/config/routes.rb +0 -1
- data/spec/support/v5.2/config/spring.rb +0 -7
- data/spec/support/v5.2/db/migrate +0 -1
- data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v5.2/sorbet/rbi/gems/actioncable.rbi +0 -309
- data/spec/support/v5.2/sorbet/rbi/gems/method_source.rbi +0 -63
- data/spec/support/v5.2/sorbet/rbi/gems/minitest.rbi +0 -276
- data/spec/support/v5.2/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
- data/spec/support/v5.2/sorbet/rbi/gems/rake.rbi +0 -251
- data/spec/support/v5.2/sorbet/rbi/gems/thor.rbi +0 -449
- data/spec/support/v5.2/sorbet_test_cases.rb +0 -1
- data/spec/support/v5.2/test/integration/.keep +0 -0
- data/spec/support/v5.2/test/mailers/.keep +0 -0
- data/spec/support/v5.2/test/models/.keep +0 -0
- data/spec/support/v5.2/test/test_helper.rb +0 -11
- data/spec/support/v5.2/typed-override.yaml +0 -1
- data/spec/support/v6.0/app/channels/application_cable/channel.rb +0 -5
- data/spec/support/v6.0/app/channels/application_cable/connection.rb +0 -5
- data/spec/support/v6.0/app/controllers +0 -1
- data/spec/support/v6.0/app/helpers +0 -1
- data/spec/support/v6.0/app/models +0 -1
- data/spec/support/v6.0/config/cable.yml +0 -10
- data/spec/support/v6.0/config/credentials.yml.enc +0 -1
- data/spec/support/v6.0/config/initializers/cors.rb +0 -17
- data/spec/support/v6.0/config/initializers/sorbet_rails.rb +0 -1
- data/spec/support/v6.0/db/migrate +0 -1
- data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +0 -1
- data/spec/support/v6.0/sorbet/rbi/gems/actioncable.rbi +0 -245
- data/spec/support/v6.0/sorbet/rbi/gems/method_source.rbi +0 -63
- data/spec/support/v6.0/sorbet/rbi/gems/minitest.rbi +0 -276
- data/spec/support/v6.0/sorbet/rbi/gems/rails-dom-testing.rbi +0 -67
- data/spec/support/v6.0/sorbet/rbi/gems/rake.rbi +0 -254
- data/spec/support/v6.0/sorbet/rbi/gems/thor.rbi +0 -450
- data/spec/support/v6.0/sorbet_test_cases.rb +0 -1
- data/spec/support/v6.0/test/channels/application_cable/connection_test.rb +0 -12
- data/spec/support/v6.0/test/controllers/.keep +0 -0
- data/spec/support/v6.0/test/fixtures/.keep +0 -0
- data/spec/support/v6.0/test/fixtures/files/.keep +0 -0
- data/spec/support/v6.0/test/integration/.keep +0 -0
- data/spec/support/v6.0/test/mailers/.keep +0 -0
- data/spec/support/v6.0/test/models/.keep +0 -0
- data/spec/support/v6.0/test/test_helper.rb +0 -14
- data/spec/support/v6.0/typed-override.yaml +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b140547379c65a11d38f65b8f1947e8d14e904e17a45d3a47d00898414cfecc
|
4
|
+
data.tar.gz: 491a878f313376278994b35ae9a1fd2a62408be09572167f92d4ea822da54562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ffa8138e362bb2b8799826fc14b39cc2bd0e213e56e9aa2e783e476cd1d92b84561be6844bf2cca573339f432815fa9d95ba3aef3d88fbba78d226d3edf43f3a
|
7
|
+
data.tar.gz: 03c4a2fcc89ac330c883a098b44864bf3bff7170d0b929c84e4a38e3b806be322f988babaef8508f87c8dcf41ae4d1bb1859df05a2dfd4343ea24ea4395b2e8f
|
data/.gitignore
CHANGED
@@ -73,8 +73,10 @@ build-iPhoneSimulator/
|
|
73
73
|
/spec/support/**/public/assets
|
74
74
|
.byebug_history
|
75
75
|
|
76
|
-
# Ignore master key for decrypting credentials and
|
76
|
+
# Ignore master key for decrypting credentials and the secrets.yml that was used in older versions of Rails.
|
77
77
|
/spec/support/**/config/master.key
|
78
|
+
/spec/support/**/config/secrets.yml
|
79
|
+
/spec/support/**/config/credentials.yml.enc
|
78
80
|
|
79
81
|
# Ignore sorbet-rails generated files
|
80
82
|
/spec/support/**/sorbet/rails-rbi/*
|
@@ -87,6 +89,9 @@ build-iPhoneSimulator/
|
|
87
89
|
/spec/support/v5.2-no-sorbet/sorbet/*
|
88
90
|
/spec/support/v5.2-no-sorbet/sorbet/**/*
|
89
91
|
|
92
|
+
# Ignore files in the public/ directories.
|
93
|
+
/spec/support/**/public/*
|
94
|
+
|
90
95
|
# editor swap files
|
91
96
|
*.swp
|
92
97
|
*.swo
|
data/.travis.yml
CHANGED
data/CONTRIBUTING.md
CHANGED
@@ -62,7 +62,10 @@ The most important files are:
|
|
62
62
|
Generates RBI files for models. You can regenerate these using `bundle exec rake rails_rbi:models`.
|
63
63
|
|
64
64
|
* [`lib/sorbet-rails/routes_rbi_formatter.rb`](lib/sorbet-rails/routes_rbi_formatter.rb):
|
65
|
-
Generates an RBI
|
65
|
+
Generates an RBI file for routes. You can regenerate this using `bundle exec rake rails_rbi:routes`.
|
66
|
+
|
67
|
+
* [`lib/sorbet-rails/helper_rbi_formatter.rb`](lib/sorbet-rails/helper_rbi_formatter.rb):
|
68
|
+
Generates an RBI file for helpers. You can regenerate this using `bundle exec rake rails_rbi:helpers`.
|
66
69
|
|
67
70
|
## Tests
|
68
71
|
|
@@ -109,19 +112,21 @@ execution to stop, which will then start a debugger. For more, check out the
|
|
109
112
|
|
110
113
|
### Writing Tests
|
111
114
|
|
112
|
-
Tests are in the `_spec.rb` files in the [`spec/`](spec/) directory. Sorbet's `srb tc` test
|
113
|
-
|
114
|
-
Rails apps are stored in [`spec/support/`](spec/support/). Code shared across Rails versions
|
115
|
-
(models, views, controllers) are in [`spec/support/rails_shared/`](spec/support/rails_shared/)
|
116
|
-
and symlinked to the individual Rails apps.
|
115
|
+
Tests are in the `_spec.rb` files in the [`spec/`](spec/) directory. Sorbet's `srb tc` test
|
116
|
+
cases are in [`spec/generators/sorbet_test_cases.rb`](spec/generators/sorbet_test_cases.rb).
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
Rails apps are stored in [`spec/support/`](spec/support/). All models,
|
119
|
+
controllers, helpers, migrations, and any other shared code comes
|
120
|
+
from [`spec/generators/rails-template.rb`](spec/generators/rails-template.rb).
|
121
|
+
The only exception to this is `spec/generators/sorbet_test_cases.rb`, which is
|
122
|
+
copied into each app with `cp`.
|
121
123
|
|
122
|
-
|
123
|
-
|
124
|
-
|
124
|
+
The `rails-template.rb` file uses the
|
125
|
+
[Rails Application Template](https://guides.rubyonrails.org/rails_application_templates.html)
|
126
|
+
functionality included in Rails. You can then regenerate each Rails app from
|
127
|
+
the same file using `bundle _1.17.3_ exec rake update_spec:v4.2`, `bundle exec rake update_spec:v5.0`,
|
128
|
+
`bundle exec rake update_spec:v5.1`, etc. (or just `bundle exec rake update_spec:v5_plus`,
|
129
|
+
though this excludes regenerating 4.2 because 4.2 blocks usage of Bundler 2.x).
|
125
130
|
|
126
131
|
#### Expected Output
|
127
132
|
|
@@ -135,3 +140,7 @@ by running:
|
|
135
140
|
Only do this once you're confident that your code is correct, because it will update
|
136
141
|
the expected test data stored in [`spec/test_data/`](spec/test_data/) based on your current
|
137
142
|
code, and all tests will then pass.
|
143
|
+
|
144
|
+
If you want to update `sorbet_test_cases.rb`, you can run `bundle exec rake update_spec:sorbet_test_cases`
|
145
|
+
to copy the file from `spec/generators/sorbet_test_cases.rb` into each of the Rails apps
|
146
|
+
in `spec/support/`.
|
data/Rakefile
CHANGED
@@ -4,3 +4,84 @@ require 'bundler/gem_tasks'
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
5
5
|
|
6
6
|
task :default => :spec
|
7
|
+
|
8
|
+
namespace :update_spec do
|
9
|
+
require 'fileutils'
|
10
|
+
|
11
|
+
# This excludes 4.2 because it won't work with Bundler 2.0
|
12
|
+
desc "Generate Rails apps for all versions (except 4.2)."
|
13
|
+
task :v5_plus do |t, args|
|
14
|
+
Rake::Task['update_spec:v6_0'].invoke
|
15
|
+
Rake::Task['update_spec:v5_2'].invoke
|
16
|
+
Rake::Task['update_spec:v5_2_no_sorbet'].invoke
|
17
|
+
Rake::Task['update_spec:v5_1'].invoke
|
18
|
+
Rake::Task['update_spec:v5_0'].invoke
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "Delete the Rails 6 spec directory and regenerate it."
|
22
|
+
task :v6_0 do |t, args|
|
23
|
+
Bundler.with_clean_env do
|
24
|
+
FileUtils.rm_rf 'spec/support/v6.0' if File.directory?('spec/support/v6.0')
|
25
|
+
system("gem install rails -v 6.0.0.rc2")
|
26
|
+
system("rails _6.0.0.rc2_ -v")
|
27
|
+
system("RAILS_VERSION='6.0' rails _6.0.0.rc2_ new --template spec/generators/rails-template.rb spec/support/v6.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "Delete the Rails 5.2 spec directory and regenerate it."
|
32
|
+
task :v5_2 do |t, args|
|
33
|
+
Bundler.with_clean_env do
|
34
|
+
FileUtils.rm_rf 'spec/support/v5.2' if File.directory?('spec/support/v5.2')
|
35
|
+
system("gem install rails -v 5.2.3")
|
36
|
+
system("rails _5.2.3_ -v")
|
37
|
+
system("RAILS_VERSION='5.2' rails _5.2.3_ new --template spec/generators/rails-template.rb spec/support/v5.2 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "Delete the Rails 5.2-no-sorbet spec directory and regenerate it."
|
42
|
+
task :v5_2_no_sorbet do |t, args|
|
43
|
+
Bundler.with_clean_env do
|
44
|
+
FileUtils.rm_rf 'spec/support/v5.2-no-sorbet' if File.directory?('spec/support/v5.2-no-sorbet')
|
45
|
+
system("gem install rails -v 5.2.3")
|
46
|
+
system("rails _5.2.3_ -v")
|
47
|
+
system("RUN_WITH_SORBET='false' RAILS_VERSION='5.2' rails _5.2.3_ new --template spec/generators/rails-template.rb spec/support/v5.2-no-sorbet --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-bootsnap --skip-listen")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Delete the Rails 5.1 spec directory and regenerate it."
|
52
|
+
task :v5_1 do |t, args|
|
53
|
+
Bundler.with_clean_env do
|
54
|
+
FileUtils.rm_rf 'spec/support/v5.1' if File.directory?('spec/support/v5.1')
|
55
|
+
system("gem install rails -v 5.1.7")
|
56
|
+
system("rails _5.1.7_ -v")
|
57
|
+
system("RAILS_VERSION='5.1' rails _5.1.7_ new --template spec/generators/rails-template.rb spec/support/v5.1 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "Delete the Rails 5.0 spec directory and regenerate it."
|
62
|
+
task :v5_0 do |t, args|
|
63
|
+
Bundler.with_clean_env do
|
64
|
+
FileUtils.rm_rf 'spec/support/v5.0' if File.directory?('spec/support/v5.0')
|
65
|
+
system("gem install rails -v 5.0.7")
|
66
|
+
system("rails _5.0.7_ -v")
|
67
|
+
system("RAILS_VERSION='5.0' rails _5.0.7_ new --template spec/generators/rails-template.rb spec/support/v5.0 --skip-javascript --skip-action-cable --skip-test --skip-sprockets --skip-spring --skip-listen")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
desc "Delete the Rails 4.2 spec directory and regenerate it."
|
72
|
+
task :v4_2 do |t, args|
|
73
|
+
Bundler.with_clean_env do
|
74
|
+
FileUtils.rm_rf 'spec/support/v4.2' if File.directory?('spec/support/v4.2')
|
75
|
+
system("gem install rails -v 4.2.11")
|
76
|
+
system("rails _4.2.11_ -v")
|
77
|
+
system("RAILS_VERSION='4.2' rails _4.2.11_ new --template spec/generators/rails-template.rb spec/support/v4.2 --skip-javascript --skip-test --skip-sprockets --skip-spring --skip-listen")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
desc "Update sorbet_test_cases.rb in all the Rails apps in spec/support."
|
82
|
+
task :sorbet_test_cases do |t, args|
|
83
|
+
['v6.0', 'v5.2', 'v5.2-no-sorbet', 'v5.1', 'v5.0', 'v4.2'].each do |version|
|
84
|
+
FileUtils.cp("spec/generators/sorbet_test_cases.rb", "spec/support/#{version}/sorbet_test_cases.rb")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
class KaminariPlugin < SorbetRails::ModelPlugins::Base
|
3
|
+
# Kaminari generates a dynamic `page` method on ActiveRecord relations.
|
4
|
+
# https://github.com/kaminari/kaminari/blob/c5186f5d9b7f23299d115408e62047447fd3189d/kaminari-activerecord/lib/kaminari/activerecord/active_record_model_extension.rb#L15
|
5
|
+
sig { params(root: Parlour::RbiGenerator::Namespace).void.implementation }
|
6
|
+
def generate(root)
|
7
|
+
return unless @model_class.include?(Kaminari::ActiveRecordModelExtension)
|
8
|
+
|
9
|
+
# Get the configured Kaminari page method name, or fall back to 'page' if necessary.
|
10
|
+
page_method = T.unsafe(Kaminari).config.page_method_name || 'page'
|
11
|
+
|
12
|
+
ar_querying_rbi = root.create_module(model_relation_shared_module_name)
|
13
|
+
ar_querying_rbi.create_method(
|
14
|
+
page_method.to_s,
|
15
|
+
parameters: [
|
16
|
+
Parameter.new('num', type: 'T.nilable(Integer)', default: 'nil')
|
17
|
+
],
|
18
|
+
return_type: model_relation_class_name
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
@@ -49,15 +49,19 @@ namespace :rails_rbi do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# If ApplicationController doesn't work or doesn't return any helpers,
|
52
|
-
#
|
53
|
-
if ActionController::Base.methods.include?(:modules_for_helpers) && (helpers.length == 0
|
52
|
+
# try using ActionController::Base.
|
53
|
+
if ActionController::Base.methods.include?(:modules_for_helpers) && (helpers.nil? || helpers.length == 0)
|
54
54
|
helpers = ActionController::Base.modules_for_helpers([:all])
|
55
55
|
end
|
56
56
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
if helpers.nil? || helpers.length == 0
|
58
|
+
puts 'No helpers found.'
|
59
|
+
else
|
60
|
+
formatter = SorbetRails::HelperRbiFormatter.new(helpers)
|
61
|
+
file_path = Rails.root.join("sorbet", "rails-rbi", "helpers.rbi")
|
62
|
+
FileUtils.mkdir_p(File.dirname(file_path))
|
63
|
+
File.write(file_path, formatter.generate_rbi)
|
64
|
+
end
|
61
65
|
end
|
62
66
|
|
63
67
|
def generate_rbis_for_models(model_classes, available_classes)
|
data/sorbet-rails.gemspec
CHANGED
data/spec/bin/run_spec.sh
CHANGED
@@ -32,9 +32,9 @@ cd $current_dir
|
|
32
32
|
|
33
33
|
if [[ -z $RAILS_VERSION ]]; then
|
34
34
|
echo "---- Run DEFAULT ----"
|
35
|
-
bundle update && bundle exec rake
|
35
|
+
bundle update && DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake
|
36
36
|
else
|
37
37
|
echo "---- Run $RAILS_VERSION ----"
|
38
38
|
RAILS_VERSION=$RAILS_VERSION bundle $bundle_version update
|
39
|
-
RAILS_VERSION=$RAILS_VERSION bundle $bundle_version exec rake
|
39
|
+
RAILS_VERSION=$RAILS_VERSION DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle $bundle_version exec rake
|
40
40
|
fi
|
@@ -0,0 +1,268 @@
|
|
1
|
+
# Generate a Rails app.
|
2
|
+
# Use the rake tasks in this repository to generate the Rails apps.
|
3
|
+
|
4
|
+
def add_gems
|
5
|
+
gem 'sorbet-rails', path: '../../../.'
|
6
|
+
|
7
|
+
sorbet_version = ENV["SORBET_VERSION"]
|
8
|
+
if sorbet_version
|
9
|
+
# mostly used to test against a stable version of Sorbet in Travis.
|
10
|
+
gem 'sorbet', sorbet_version
|
11
|
+
gem 'sorbet-runtime', sorbet_version
|
12
|
+
else
|
13
|
+
# prefer to test against latest version because sorbet is updated frequently
|
14
|
+
gem 'sorbet'
|
15
|
+
gem 'sorbet-runtime'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_routes
|
20
|
+
route "get 'test/index' => 'test#index'"
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_initializers
|
24
|
+
initializer "sorbet_rails.rb", <<~RUBY
|
25
|
+
# typed: strict
|
26
|
+
require(Rails.root.join('lib/mythical_rbi_plugin'))
|
27
|
+
SorbetRails::ModelRbiFormatter.register_plugin(MythicalRbiPlugin)
|
28
|
+
RUBY
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_lib
|
32
|
+
lib "mythical_rbi_plugin.rb", <<~'RUBY'
|
33
|
+
# typed: true
|
34
|
+
class MythicalRbiPlugin < SorbetRails::ModelPlugins::Base
|
35
|
+
def generate(root)
|
36
|
+
return unless @model_class.include?(Mythical)
|
37
|
+
|
38
|
+
model_class_rbi = root.create_class(self.model_class_name)
|
39
|
+
|
40
|
+
# ActiveSupport::Concern class method will be inserted to the class
|
41
|
+
# directly. We need to also put the sig in the model class rbi directly
|
42
|
+
model_class_rbi.create_method(
|
43
|
+
'mythicals',
|
44
|
+
class_method: true,
|
45
|
+
return_type: "T::Array[#{@model_class.name}]",
|
46
|
+
)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
RUBY
|
50
|
+
end
|
51
|
+
|
52
|
+
def create_helpers
|
53
|
+
file "app/helpers/foo_helper.rb", <<~RUBY
|
54
|
+
module FooHelper
|
55
|
+
end
|
56
|
+
RUBY
|
57
|
+
|
58
|
+
file "app/helpers/bar_helper.rb", <<~RUBY
|
59
|
+
module BarHelper
|
60
|
+
end
|
61
|
+
RUBY
|
62
|
+
|
63
|
+
file "app/helpers/baz_helper.rb", <<~RUBY
|
64
|
+
module BazHelper
|
65
|
+
end
|
66
|
+
RUBY
|
67
|
+
end
|
68
|
+
|
69
|
+
def create_models
|
70
|
+
if ENV['RAILS_VERSION'] != '4.2'
|
71
|
+
inject_into_file "app/models/application_record.rb", after: "self.abstract_class = true\n" do
|
72
|
+
# Need to include indentation manually
|
73
|
+
" scope :recent, -> { where('created_at > ?', 1.month.ago) }\n"
|
74
|
+
end
|
75
|
+
else
|
76
|
+
file "app/models/application_record.rb", <<~RUBY
|
77
|
+
class ApplicationRecord < ActiveRecord::Base
|
78
|
+
self.abstract_class = true
|
79
|
+
scope :recent, -> { where('created_at > ?', 1.month.ago) }
|
80
|
+
end
|
81
|
+
RUBY
|
82
|
+
end
|
83
|
+
|
84
|
+
file "app/models/spell_book.rb", <<~RUBY
|
85
|
+
class SpellBook < ApplicationRecord
|
86
|
+
validates :name, length: { minimum: 5 }, presence: true
|
87
|
+
belongs_to :wizard
|
88
|
+
end
|
89
|
+
RUBY
|
90
|
+
|
91
|
+
file "app/models/potion.rb", <<~RUBY
|
92
|
+
# an abstract class that has no table
|
93
|
+
class Potion < ApplicationRecord
|
94
|
+
self.abstract_class = true
|
95
|
+
end
|
96
|
+
RUBY
|
97
|
+
|
98
|
+
file "app/models/wand.rb", <<~RUBY
|
99
|
+
class Wand < ApplicationRecord
|
100
|
+
include Mythical
|
101
|
+
|
102
|
+
enum core_type: {
|
103
|
+
phoenix_feather: 0,
|
104
|
+
dragon_heartstring: 1,
|
105
|
+
unicorn_tail_hair: 2,
|
106
|
+
basilisk_horn: 3,
|
107
|
+
}
|
108
|
+
|
109
|
+
belongs_to :wizard
|
110
|
+
|
111
|
+
def wood_type
|
112
|
+
'Type ' + super
|
113
|
+
end
|
114
|
+
end
|
115
|
+
RUBY
|
116
|
+
|
117
|
+
file "app/models/wizard.rb", <<~RUBY
|
118
|
+
class Wizard < ApplicationRecord
|
119
|
+
validates :name, length: { minimum: 5 }, presence: true
|
120
|
+
|
121
|
+
enum house: {
|
122
|
+
Gryffindor: 0,
|
123
|
+
Hufflepuff: 1,
|
124
|
+
Ravenclaw: 2,
|
125
|
+
Slytherin: 3,
|
126
|
+
}
|
127
|
+
|
128
|
+
has_one :wand
|
129
|
+
has_many :spell_books
|
130
|
+
end
|
131
|
+
RUBY
|
132
|
+
|
133
|
+
file "app/models/concerns/mythical.rb", <<~RUBY
|
134
|
+
require 'active_support/concern'
|
135
|
+
module Mythical
|
136
|
+
extend ActiveSupport::Concern
|
137
|
+
|
138
|
+
class_methods do
|
139
|
+
def mythicals
|
140
|
+
all.to_a # yeah!
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
RUBY
|
145
|
+
end
|
146
|
+
|
147
|
+
def create_migrations
|
148
|
+
if ENV["RAILS_VERSION"] == "4.2"
|
149
|
+
migration_superclass = 'ActiveRecord::Migration'
|
150
|
+
else
|
151
|
+
migration_superclass = "ActiveRecord::Migration[#{ENV['RAILS_VERSION']}]"
|
152
|
+
end
|
153
|
+
|
154
|
+
file "db/migrate/20190620000001_create_wizards.rb", <<~RUBY
|
155
|
+
class CreateWizards < #{migration_superclass}
|
156
|
+
def change
|
157
|
+
create_table :wizards do |t|
|
158
|
+
t.string :name
|
159
|
+
t.integer :house
|
160
|
+
t.string :parent_email
|
161
|
+
t.text :notes
|
162
|
+
|
163
|
+
t.timestamps
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
RUBY
|
168
|
+
|
169
|
+
file "db/migrate/20190620000002_create_wands.rb", <<~RUBY
|
170
|
+
class CreateWands < #{migration_superclass}
|
171
|
+
def change
|
172
|
+
create_table :wands do |t|
|
173
|
+
t.references :wizard, unique: true, null: false
|
174
|
+
t.string :wood_type
|
175
|
+
t.integer :core_type
|
176
|
+
|
177
|
+
t.timestamps
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
RUBY
|
182
|
+
|
183
|
+
file "db/migrate/20190620000003_create_spell_books.rb", <<~RUBY
|
184
|
+
class CreateSpellBooks < #{migration_superclass}
|
185
|
+
def change
|
186
|
+
create_table :spell_books do |t|
|
187
|
+
t.string :name
|
188
|
+
t.references :wizard
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
RUBY
|
193
|
+
|
194
|
+
file "db/migrate/20190620000004_add_more_column_types_to_wands.rb", <<~RUBY
|
195
|
+
class AddMoreColumnTypesToWands < #{migration_superclass}
|
196
|
+
def change
|
197
|
+
add_column :wands, :flexibility, :float, null: false, default: 0.5
|
198
|
+
add_column :wands, :hardness, :decimal, null: false, precision: 10, scale: 10, default: 5
|
199
|
+
add_column :wands, :reflectance, :decimal, null: false, precision: 10, scale: 0, default: 0.5
|
200
|
+
add_column :wands, :broken, :boolean, null: false, default: false
|
201
|
+
add_column :wands, :chosen_at_date, :date
|
202
|
+
add_column :wands, :chosen_at_time, :time
|
203
|
+
# JSON column type is only supported on 5.2 or higher
|
204
|
+
unless ['4.2', '5.0', '5.1'].include?(ENV['RAILS_VERSION'])
|
205
|
+
add_column :wands, :spell_history, :json
|
206
|
+
add_column :wands, :maker_info, :json, null: false, default: '{}'
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
RUBY
|
211
|
+
end
|
212
|
+
|
213
|
+
def add_sorbet_test_files
|
214
|
+
file "typed-override.yaml", <<~YAML
|
215
|
+
true:
|
216
|
+
- ./sorbet_test_cases.rb
|
217
|
+
YAML
|
218
|
+
|
219
|
+
copy_file "./sorbet_test_cases.rb", "sorbet_test_cases.rb"
|
220
|
+
end
|
221
|
+
|
222
|
+
# Get files relative to this template when copying.
|
223
|
+
def source_paths
|
224
|
+
[__dir__]
|
225
|
+
end
|
226
|
+
|
227
|
+
# Main setup
|
228
|
+
source_paths
|
229
|
+
|
230
|
+
if ['4.2', '5.0'].include?(ENV["RAILS_VERSION"])
|
231
|
+
File.open('Gemfile', 'r+') do |f|
|
232
|
+
out = ""
|
233
|
+
f.each do |line|
|
234
|
+
# We remove sdoc and web-console because they misbehave.
|
235
|
+
# sqlite needs to be limited to 1.3.x or it won't work.
|
236
|
+
out << line.gsub("gem 'sqlite3'", "gem 'sqlite3', '~> 1.3.6'") unless line =~ /gem \'(sdoc|web-console)\'.*/
|
237
|
+
end
|
238
|
+
f.pos = 0
|
239
|
+
f.print out
|
240
|
+
f.truncate(f.pos)
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
add_gems
|
245
|
+
|
246
|
+
after_bundle do
|
247
|
+
say "Creating application..."
|
248
|
+
add_routes
|
249
|
+
create_initializers
|
250
|
+
create_lib
|
251
|
+
create_helpers
|
252
|
+
create_models
|
253
|
+
create_migrations
|
254
|
+
add_sorbet_test_files
|
255
|
+
|
256
|
+
Bundler.with_clean_env do
|
257
|
+
# Rails 4.2 doesn't have the rails_command method, so just use run.
|
258
|
+
run "bundle exec rake db:migrate"
|
259
|
+
end
|
260
|
+
|
261
|
+
if ENV["RUN_WITH_SORBET"] != 'false'
|
262
|
+
Bundler.with_clean_env do
|
263
|
+
run "SRB_YES=true bundle exec srb init"
|
264
|
+
run "bundle exec rake rails_rbi:all"
|
265
|
+
end
|
266
|
+
end
|
267
|
+
say "Done!"
|
268
|
+
end
|