omg-railties 8.0.0.alpha3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +171 -0
- data/MIT-LICENSE +20 -0
- data/RDOC_MAIN.md +99 -0
- data/README.rdoc +39 -0
- data/exe/rails +10 -0
- data/lib/minitest/rails_plugin.rb +140 -0
- data/lib/rails/all.rb +21 -0
- data/lib/rails/api/generator.rb +38 -0
- data/lib/rails/api/task.rb +235 -0
- data/lib/rails/app_loader.rb +77 -0
- data/lib/rails/application/bootstrap.rb +118 -0
- data/lib/rails/application/configuration.rb +659 -0
- data/lib/rails/application/default_middleware_stack.rb +140 -0
- data/lib/rails/application/dummy_config.rb +19 -0
- data/lib/rails/application/finisher.rb +238 -0
- data/lib/rails/application/routes_reloader.rb +79 -0
- data/lib/rails/application.rb +658 -0
- data/lib/rails/application_controller.rb +28 -0
- data/lib/rails/autoloaders/inflector.rb +21 -0
- data/lib/rails/autoloaders.rb +48 -0
- data/lib/rails/backtrace_cleaner.rb +42 -0
- data/lib/rails/cli.rb +21 -0
- data/lib/rails/code_statistics.rb +159 -0
- data/lib/rails/code_statistics_calculator.rb +99 -0
- data/lib/rails/command/actions.rb +52 -0
- data/lib/rails/command/base.rb +185 -0
- data/lib/rails/command/behavior.rb +84 -0
- data/lib/rails/command/environment_argument.rb +56 -0
- data/lib/rails/command/helpers/editor.rb +40 -0
- data/lib/rails/command.rb +172 -0
- data/lib/rails/commands/about/about_command.rb +14 -0
- data/lib/rails/commands/app/update_command.rb +94 -0
- data/lib/rails/commands/application/application_command.rb +33 -0
- data/lib/rails/commands/boot/boot_command.rb +14 -0
- data/lib/rails/commands/console/console_command.rb +91 -0
- data/lib/rails/commands/console/irb_console.rb +136 -0
- data/lib/rails/commands/credentials/USAGE +73 -0
- data/lib/rails/commands/credentials/credentials_command/diffing.rb +53 -0
- data/lib/rails/commands/credentials/credentials_command.rb +139 -0
- data/lib/rails/commands/db/system/change/change_command.rb +26 -0
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +88 -0
- data/lib/rails/commands/destroy/destroy_command.rb +29 -0
- data/lib/rails/commands/dev/dev_command.rb +14 -0
- data/lib/rails/commands/devcontainer/devcontainer_command.rb +39 -0
- data/lib/rails/commands/encrypted/USAGE +23 -0
- data/lib/rails/commands/encrypted/encrypted_command.rb +98 -0
- data/lib/rails/commands/gem_help/USAGE +16 -0
- data/lib/rails/commands/gem_help/gem_help_command.rb +13 -0
- data/lib/rails/commands/generate/generate_command.rb +30 -0
- data/lib/rails/commands/help/USAGE +17 -0
- data/lib/rails/commands/help/help_command.rb +34 -0
- data/lib/rails/commands/initializers/initializers_command.rb +20 -0
- data/lib/rails/commands/middleware/middleware_command.rb +17 -0
- data/lib/rails/commands/new/new_command.rb +21 -0
- data/lib/rails/commands/notes/notes_command.rb +30 -0
- data/lib/rails/commands/plugin/plugin_command.rb +47 -0
- data/lib/rails/commands/rake/rake_command.rb +55 -0
- data/lib/rails/commands/restart/restart_command.rb +14 -0
- data/lib/rails/commands/routes/routes_command.rb +49 -0
- data/lib/rails/commands/runner/USAGE +22 -0
- data/lib/rails/commands/runner/runner_command.rb +81 -0
- data/lib/rails/commands/secret/secret_command.rb +13 -0
- data/lib/rails/commands/server/server_command.rb +290 -0
- data/lib/rails/commands/stats/stats_command.rb +19 -0
- data/lib/rails/commands/test/USAGE +14 -0
- data/lib/rails/commands/test/test_command.rb +81 -0
- data/lib/rails/commands/unused_routes/unused_routes_command.rb +75 -0
- data/lib/rails/commands/version/version_command.rb +12 -0
- data/lib/rails/commands.rb +18 -0
- data/lib/rails/configuration.rb +170 -0
- data/lib/rails/console/app.rb +8 -0
- data/lib/rails/console/helpers.rb +8 -0
- data/lib/rails/console/methods.rb +23 -0
- data/lib/rails/deprecator.rb +7 -0
- data/lib/rails/dev_caching.rb +44 -0
- data/lib/rails/engine/commands.rb +9 -0
- data/lib/rails/engine/configuration.rb +138 -0
- data/lib/rails/engine/lazy_route_set.rb +109 -0
- data/lib/rails/engine/railties.rb +23 -0
- data/lib/rails/engine/updater.rb +21 -0
- data/lib/rails/engine.rb +760 -0
- data/lib/rails/gem_version.rb +17 -0
- data/lib/rails/generators/actions/create_migration.rb +75 -0
- data/lib/rails/generators/actions.rb +528 -0
- data/lib/rails/generators/active_model.rb +94 -0
- data/lib/rails/generators/app_base.rb +806 -0
- data/lib/rails/generators/app_name.rb +39 -0
- data/lib/rails/generators/base.rb +432 -0
- data/lib/rails/generators/database.rb +287 -0
- data/lib/rails/generators/erb/authentication/authentication_generator.rb +15 -0
- data/lib/rails/generators/erb/authentication/templates/views/passwords/edit.html.erb +9 -0
- data/lib/rails/generators/erb/authentication/templates/views/passwords/new.html.erb +8 -0
- data/lib/rails/generators/erb/authentication/templates/views/sessions/new.html.erb +11 -0
- data/lib/rails/generators/erb/controller/controller_generator.rb +24 -0
- data/lib/rails/generators/erb/controller/templates/view.html.erb.tt +2 -0
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +41 -0
- data/lib/rails/generators/erb/mailer/templates/layout.html.erb.tt +13 -0
- data/lib/rails/generators/erb/mailer/templates/layout.text.erb.tt +1 -0
- data/lib/rails/generators/erb/mailer/templates/view.html.erb.tt +5 -0
- data/lib/rails/generators/erb/mailer/templates/view.text.erb.tt +3 -0
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +34 -0
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +37 -0
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +12 -0
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +16 -0
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +11 -0
- data/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt +17 -0
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +10 -0
- data/lib/rails/generators/erb.rb +26 -0
- data/lib/rails/generators/generated_attribute.rb +274 -0
- data/lib/rails/generators/migration.rb +71 -0
- data/lib/rails/generators/model_helpers.rb +62 -0
- data/lib/rails/generators/named_base.rb +227 -0
- data/lib/rails/generators/rails/app/USAGE +31 -0
- data/lib/rails/generators/rails/app/app_generator.rb +678 -0
- data/lib/rails/generators/rails/app/templates/Dockerfile.tt +119 -0
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +83 -0
- data/lib/rails/generators/rails/app/templates/README.md.tt +24 -0
- data/lib/rails/generators/rails/app/templates/Rakefile.tt +6 -0
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +15 -0
- data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +6 -0
- data/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb.tt +2 -0
- data/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt +7 -0
- data/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +4 -0
- data/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +3 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +33 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt +13 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.text.erb.tt +1 -0
- data/lib/rails/generators/rails/app/templates/app/views/pwa/manifest.json.erb.tt +22 -0
- data/lib/rails/generators/rails/app/templates/app/views/pwa/service-worker.js +26 -0
- data/lib/rails/generators/rails/app/templates/bin/brakeman.tt +6 -0
- data/lib/rails/generators/rails/app/templates/bin/dev.tt +1 -0
- data/lib/rails/generators/rails/app/templates/bin/rails.tt +3 -0
- data/lib/rails/generators/rails/app/templates/bin/rake.tt +3 -0
- data/lib/rails/generators/rails/app/templates/bin/rubocop.tt +7 -0
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +45 -0
- data/lib/rails/generators/rails/app/templates/bin/thrust.tt +4 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb.tt +42 -0
- data/lib/rails/generators/rails/app/templates/config/boot.rb.tt +6 -0
- data/lib/rails/generators/rails/app/templates/config/cable.yml.tt +10 -0
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +82 -0
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +114 -0
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +72 -0
- data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +82 -0
- data/lib/rails/generators/rails/app/templates/config/deploy.yml.tt +107 -0
- data/lib/rails/generators/rails/app/templates/config/environment.rb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +89 -0
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +125 -0
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +62 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +7 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +25 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +16 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +8 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +16 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_8_0.rb.tt +25 -0
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +31 -0
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +43 -0
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +16 -0
- data/lib/rails/generators/rails/app/templates/config/storage.yml.tt +34 -0
- data/lib/rails/generators/rails/app/templates/config.ru.tt +6 -0
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +9 -0
- data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +16 -0
- data/lib/rails/generators/rails/app/templates/dockerignore.tt +56 -0
- data/lib/rails/generators/rails/app/templates/env.erb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/gitattributes.tt +9 -0
- data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +138 -0
- data/lib/rails/generators/rails/app/templates/github/dependabot.yml +12 -0
- data/lib/rails/generators/rails/app/templates/gitignore.tt +38 -0
- data/lib/rails/generators/rails/app/templates/node-version.tt +1 -0
- data/lib/rails/generators/rails/app/templates/public/400.html +67 -0
- data/lib/rails/generators/rails/app/templates/public/404.html +67 -0
- data/lib/rails/generators/rails/app/templates/public/406-unsupported-browser.html +66 -0
- data/lib/rails/generators/rails/app/templates/public/422.html +67 -0
- data/lib/rails/generators/rails/app/templates/public/500.html +66 -0
- data/lib/rails/generators/rails/app/templates/public/icon.png +0 -0
- data/lib/rails/generators/rails/app/templates/public/icon.svg +3 -0
- data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -0
- data/lib/rails/generators/rails/app/templates/rubocop.yml.tt +8 -0
- data/lib/rails/generators/rails/app/templates/ruby-version.tt +1 -0
- data/lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +21 -0
- data/lib/rails/generators/rails/application_record/application_record_generator.rb +13 -0
- data/lib/rails/generators/rails/authentication/USAGE +6 -0
- data/lib/rails/generators/rails/authentication/authentication_generator.rb +54 -0
- data/lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rb +55 -0
- data/lib/rails/generators/rails/authentication/templates/controllers/passwords_controller.rb +33 -0
- data/lib/rails/generators/rails/authentication/templates/controllers/sessions_controller.rb +21 -0
- data/lib/rails/generators/rails/authentication/templates/mailers/passwords_mailer.rb +6 -0
- data/lib/rails/generators/rails/authentication/templates/models/current.rb +4 -0
- data/lib/rails/generators/rails/authentication/templates/models/session.rb +3 -0
- data/lib/rails/generators/rails/authentication/templates/models/user.rb +6 -0
- data/lib/rails/generators/rails/authentication/templates/test/mailers/previews/passwords_mailer_preview.rb +7 -0
- data/lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.html.erb +4 -0
- data/lib/rails/generators/rails/authentication/templates/views/passwords_mailer/reset.text.erb +2 -0
- data/lib/rails/generators/rails/benchmark/USAGE +19 -0
- data/lib/rails/generators/rails/benchmark/benchmark_generator.rb +30 -0
- data/lib/rails/generators/rails/benchmark/templates/benchmark.rb.tt +15 -0
- data/lib/rails/generators/rails/controller/USAGE +26 -0
- data/lib/rails/generators/rails/controller/controller_generator.rb +42 -0
- data/lib/rails/generators/rails/controller/templates/controller.rb.tt +9 -0
- data/lib/rails/generators/rails/credentials/credentials_generator.rb +61 -0
- data/lib/rails/generators/rails/credentials/templates/credentials.yml.tt +12 -0
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +206 -0
- data/lib/rails/generators/rails/devcontainer/devcontainer_generator.rb +168 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt +3 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/compose.yaml.tt +47 -0
- data/lib/rails/generators/rails/devcontainer/templates/devcontainer/devcontainer.json.tt +37 -0
- data/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +31 -0
- data/lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb +57 -0
- data/lib/rails/generators/rails/generator/USAGE +13 -0
- data/lib/rails/generators/rails/generator/generator_generator.rb +27 -0
- data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +3 -0
- data/lib/rails/generators/rails/generator/templates/USAGE.tt +8 -0
- data/lib/rails/generators/rails/generator/templates/templates/.empty_directory +0 -0
- data/lib/rails/generators/rails/helper/USAGE +12 -0
- data/lib/rails/generators/rails/helper/helper_generator.rb +20 -0
- data/lib/rails/generators/rails/helper/templates/helper.rb.tt +4 -0
- data/lib/rails/generators/rails/integration_test/USAGE +10 -0
- data/lib/rails/generators/rails/integration_test/integration_test_generator.rb +9 -0
- data/lib/rails/generators/rails/master_key/master_key_generator.rb +53 -0
- data/lib/rails/generators/rails/migration/USAGE +45 -0
- data/lib/rails/generators/rails/migration/migration_generator.rb +14 -0
- data/lib/rails/generators/rails/model/model_generator.rb +18 -0
- data/lib/rails/generators/rails/plugin/USAGE +21 -0
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +499 -0
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +28 -0
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +23 -0
- data/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
- data/lib/rails/generators/rails/plugin/templates/README.md.tt +28 -0
- data/lib/rails/generators/rails/plugin/templates/Rakefile.tt +14 -0
- data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/app/helpers/%namespaced_name%/application_helper.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/app/jobs/%namespaced_name%/application_job.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +6 -0
- data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +17 -0
- data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +15 -0
- data/lib/rails/generators/rails/plugin/templates/bin/rubocop.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/bin/test.tt +4 -0
- data/lib/rails/generators/rails/plugin/templates/config/routes.rb.tt +6 -0
- data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +103 -0
- data/lib/rails/generators/rails/plugin/templates/github/dependabot.yml +12 -0
- data/lib/rails/generators/rails/plugin/templates/gitignore.tt +14 -0
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -0
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb.tt +8 -0
- data/lib/rails/generators/rails/plugin/templates/lib/tasks/%namespaced_name%_tasks.rake.tt +4 -0
- data/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/rails/routes.rb.tt +3 -0
- data/lib/rails/generators/rails/plugin/templates/rails/stylesheets.css +15 -0
- data/lib/rails/generators/rails/plugin/templates/rubocop.yml.tt +8 -0
- data/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/test/application_system_test_case.rb.tt +5 -0
- data/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb.tt +7 -0
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +21 -0
- data/lib/rails/generators/rails/resource/USAGE +23 -0
- data/lib/rails/generators/rails/resource/resource_generator.rb +27 -0
- data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +23 -0
- data/lib/rails/generators/rails/scaffold/USAGE +41 -0
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +18 -0
- data/lib/rails/generators/rails/scaffold_controller/USAGE +19 -0
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +56 -0
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +57 -0
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +64 -0
- data/lib/rails/generators/rails/script/USAGE +18 -0
- data/lib/rails/generators/rails/script/script_generator.rb +18 -0
- data/lib/rails/generators/rails/script/templates/script.rb.tt +3 -0
- data/lib/rails/generators/rails/system_test/USAGE +10 -0
- data/lib/rails/generators/rails/system_test/system_test_generator.rb +9 -0
- data/lib/rails/generators/rails/task/USAGE +9 -0
- data/lib/rails/generators/rails/task/task_generator.rb +13 -0
- data/lib/rails/generators/rails/task/templates/task.rb.tt +8 -0
- data/lib/rails/generators/resource_helpers.rb +82 -0
- data/lib/rails/generators/test_case.rb +37 -0
- data/lib/rails/generators/test_unit/controller/controller_generator.rb +19 -0
- data/lib/rails/generators/test_unit/controller/templates/functional_test.rb.tt +23 -0
- data/lib/rails/generators/test_unit/generator/generator_generator.rb +27 -0
- data/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +16 -0
- data/lib/rails/generators/test_unit/helper/helper_generator.rb +11 -0
- data/lib/rails/generators/test_unit/integration/integration_generator.rb +20 -0
- data/lib/rails/generators/test_unit/integration/templates/integration_test.rb.tt +9 -0
- data/lib/rails/generators/test_unit/job/job_generator.rb +20 -0
- data/lib/rails/generators/test_unit/job/templates/unit_test.rb.tt +9 -0
- data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +28 -0
- data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb.tt +23 -0
- data/lib/rails/generators/test_unit/mailer/templates/preview.rb.tt +14 -0
- data/lib/rails/generators/test_unit/model/model_generator.rb +37 -0
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +29 -0
- data/lib/rails/generators/test_unit/model/templates/unit_test.rb.tt +9 -0
- data/lib/rails/generators/test_unit/plugin/plugin_generator.rb +15 -0
- data/lib/rails/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +7 -0
- data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +2 -0
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +82 -0
- data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +44 -0
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +54 -0
- data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +57 -0
- data/lib/rails/generators/test_unit/system/system_generator.rb +24 -0
- data/lib/rails/generators/test_unit/system/templates/application_system_test_case.rb.tt +5 -0
- data/lib/rails/generators/test_unit/system/templates/system_test.rb.tt +9 -0
- data/lib/rails/generators/test_unit.rb +10 -0
- data/lib/rails/generators/testing/assertions.rb +147 -0
- data/lib/rails/generators/testing/behavior.rb +116 -0
- data/lib/rails/generators/testing/setup_and_teardown.rb +20 -0
- data/lib/rails/generators.rb +327 -0
- data/lib/rails/health_controller.rb +55 -0
- data/lib/rails/info.rb +105 -0
- data/lib/rails/info_controller.rb +71 -0
- data/lib/rails/initializable.rb +95 -0
- data/lib/rails/mailers_controller.rb +122 -0
- data/lib/rails/paths.rb +246 -0
- data/lib/rails/plugin/test.rb +9 -0
- data/lib/rails/pwa_controller.rb +15 -0
- data/lib/rails/rack/logger.rb +88 -0
- data/lib/rails/rack/silence_request.rb +33 -0
- data/lib/rails/rack.rb +8 -0
- data/lib/rails/rackup/server.rb +15 -0
- data/lib/rails/railtie/configurable.rb +36 -0
- data/lib/rails/railtie/configuration.rb +114 -0
- data/lib/rails/railtie.rb +302 -0
- data/lib/rails/source_annotation_extractor.rb +214 -0
- data/lib/rails/tasks/engine.rake +85 -0
- data/lib/rails/tasks/framework.rake +34 -0
- data/lib/rails/tasks/log.rake +41 -0
- data/lib/rails/tasks/misc.rake +68 -0
- data/lib/rails/tasks/statistics.rake +23 -0
- data/lib/rails/tasks/tmp.rake +51 -0
- data/lib/rails/tasks/yarn.rake +29 -0
- data/lib/rails/tasks/zeitwerk.rake +41 -0
- data/lib/rails/tasks.rb +17 -0
- data/lib/rails/templates/layouts/application.html.erb +51 -0
- data/lib/rails/templates/rails/info/notes.html.erb +65 -0
- data/lib/rails/templates/rails/info/properties.html.erb +1 -0
- data/lib/rails/templates/rails/info/routes.html.erb +9 -0
- data/lib/rails/templates/rails/mailers/email.html.erb +201 -0
- data/lib/rails/templates/rails/mailers/index.html.erb +15 -0
- data/lib/rails/templates/rails/mailers/mailer.html.erb +12 -0
- data/lib/rails/templates/rails/welcome/index.html.erb +93 -0
- data/lib/rails/test_help.rb +47 -0
- data/lib/rails/test_unit/line_filtering.rb +13 -0
- data/lib/rails/test_unit/railtie.rb +25 -0
- data/lib/rails/test_unit/reporter.rb +121 -0
- data/lib/rails/test_unit/runner.rb +209 -0
- data/lib/rails/test_unit/test_parser.rb +133 -0
- data/lib/rails/test_unit/testing.rake +39 -0
- data/lib/rails/testing/maintain_test_schema.rb +16 -0
- data/lib/rails/version.rb +10 -0
- data/lib/rails/welcome_controller.rb +11 -0
- data/lib/rails/zeitwerk_checker.rb +15 -0
- data/lib/rails.rb +130 -0
- metadata +518 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
module Generators
|
5
|
+
class TaskGenerator < NamedBase # :nodoc:
|
6
|
+
argument :actions, type: :array, default: [], banner: "action action"
|
7
|
+
|
8
|
+
def create_task_files
|
9
|
+
template "task.rb", File.join("lib/tasks", "#{file_name}.rake")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/active_model"
|
4
|
+
require "rails/generators/model_helpers"
|
5
|
+
|
6
|
+
module Rails
|
7
|
+
module Generators
|
8
|
+
# Deal with controller names on scaffold and add some helpers to deal with
|
9
|
+
# ActiveModel.
|
10
|
+
module ResourceHelpers # :nodoc:
|
11
|
+
def self.included(base) # :nodoc:
|
12
|
+
base.include(Rails::Generators::ModelHelpers)
|
13
|
+
base.class_option :model_name, type: :string, desc: "ModelName to be used"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Set controller variables on initialization.
|
17
|
+
def initialize(*args) # :nodoc:
|
18
|
+
super
|
19
|
+
controller_name = name
|
20
|
+
if options[:model_name]
|
21
|
+
self.name = options[:model_name]
|
22
|
+
assign_names!(name)
|
23
|
+
end
|
24
|
+
|
25
|
+
assign_controller_names!(controller_name.pluralize)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
attr_reader :controller_name, :controller_file_name
|
30
|
+
|
31
|
+
def controller_class_path
|
32
|
+
if options[:model_name]
|
33
|
+
@controller_class_path
|
34
|
+
else
|
35
|
+
class_path
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def assign_controller_names!(name)
|
40
|
+
@controller_name = name
|
41
|
+
@controller_class_path = name.include?("/") ? name.split("/") : name.split("::")
|
42
|
+
@controller_class_path.map!(&:underscore)
|
43
|
+
@controller_file_name = @controller_class_path.pop
|
44
|
+
end
|
45
|
+
|
46
|
+
def controller_file_path
|
47
|
+
@controller_file_path ||= (controller_class_path + [controller_file_name]).join("/")
|
48
|
+
end
|
49
|
+
|
50
|
+
def controller_class_name
|
51
|
+
(controller_class_path + [controller_file_name]).map!(&:camelize).join("::")
|
52
|
+
end
|
53
|
+
|
54
|
+
def controller_i18n_scope
|
55
|
+
@controller_i18n_scope ||= controller_file_path.tr("/", ".")
|
56
|
+
end
|
57
|
+
|
58
|
+
# Loads the ORM::Generators::ActiveModel class. This class is responsible
|
59
|
+
# to tell scaffold entities how to generate a specific method for the
|
60
|
+
# ORM. Check Rails::Generators::ActiveModel for more information.
|
61
|
+
def orm_class
|
62
|
+
@orm_class ||= begin
|
63
|
+
# Raise an error if the class_option :orm was not defined.
|
64
|
+
unless self.class.class_options[:orm]
|
65
|
+
raise "You need to have :orm as class option to invoke orm_class and orm_instance"
|
66
|
+
end
|
67
|
+
|
68
|
+
begin
|
69
|
+
"#{options[:orm].to_s.camelize}::Generators::ActiveModel".constantize
|
70
|
+
rescue NameError
|
71
|
+
Rails::Generators::ActiveModel
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Initialize ORM::Generators::ActiveModel to access instance methods.
|
77
|
+
def orm_instance(name = singular_table_name)
|
78
|
+
@orm_instance ||= orm_class.new(name)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators"
|
4
|
+
require "rails/generators/testing/behavior"
|
5
|
+
require "rails/generators/testing/setup_and_teardown"
|
6
|
+
require "rails/generators/testing/assertions"
|
7
|
+
require "fileutils"
|
8
|
+
|
9
|
+
module Rails
|
10
|
+
module Generators
|
11
|
+
# Disable color in output. Easier to debug.
|
12
|
+
no_color!
|
13
|
+
|
14
|
+
# This class provides a TestCase for testing generators. To set up, you need
|
15
|
+
# just to configure the destination and set which generator is being tested:
|
16
|
+
#
|
17
|
+
# class AppGeneratorTest < Rails::Generators::TestCase
|
18
|
+
# tests AppGenerator
|
19
|
+
# destination File.expand_path("../tmp", __dir__)
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# If you want to ensure your destination root is clean before running each test,
|
23
|
+
# you can set a setup callback:
|
24
|
+
#
|
25
|
+
# class AppGeneratorTest < Rails::Generators::TestCase
|
26
|
+
# tests AppGenerator
|
27
|
+
# destination File.expand_path("../tmp", __dir__)
|
28
|
+
# setup :prepare_destination
|
29
|
+
# end
|
30
|
+
class TestCase < ActiveSupport::TestCase
|
31
|
+
include Rails::Generators::Testing::Behavior
|
32
|
+
include Rails::Generators::Testing::SetupAndTeardown
|
33
|
+
include Rails::Generators::Testing::Assertions
|
34
|
+
include FileUtils
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class ControllerGenerator < Base # :nodoc:
|
8
|
+
argument :actions, type: :array, default: [], banner: "action action"
|
9
|
+
class_option :skip_routes, type: :boolean
|
10
|
+
|
11
|
+
check_class_collision suffix: "ControllerTest"
|
12
|
+
|
13
|
+
def create_test_files
|
14
|
+
template "functional_test.rb",
|
15
|
+
File.join("test/controllers", class_path, "#{file_name}_controller_test.rb")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
<% module_namespacing do -%>
|
4
|
+
class <%= class_name %>ControllerTest < ActionDispatch::IntegrationTest
|
5
|
+
<% if mountable_engine? -%>
|
6
|
+
include Engine.routes.url_helpers
|
7
|
+
|
8
|
+
<% end -%>
|
9
|
+
<% if actions.empty? || options[:skip_routes] -%>
|
10
|
+
# test "the truth" do
|
11
|
+
# assert true
|
12
|
+
# end
|
13
|
+
<% else -%>
|
14
|
+
<% actions.each do |action| -%>
|
15
|
+
test "should get <%= action %>" do
|
16
|
+
get <%= url_helper_prefix %>_<%= action %>_url
|
17
|
+
assert_response :success
|
18
|
+
end
|
19
|
+
<%= "\n" unless action == actions.last -%>
|
20
|
+
<% end -%>
|
21
|
+
<% end -%>
|
22
|
+
end
|
23
|
+
<% end -%>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class GeneratorGenerator < Base # :nodoc:
|
8
|
+
check_class_collision suffix: "GeneratorTest"
|
9
|
+
|
10
|
+
class_option :namespace, type: :boolean, default: true,
|
11
|
+
desc: "Namespace generator under lib/generators/name"
|
12
|
+
|
13
|
+
def create_generator_files
|
14
|
+
template "generator_test.rb", File.join("test/lib/generators", class_path, "#{file_name}_generator_test.rb")
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def generator_path
|
19
|
+
if options[:namespace]
|
20
|
+
File.join("generators", regular_class_path, file_name, "#{file_name}_generator")
|
21
|
+
else
|
22
|
+
File.join("generators", regular_class_path, "#{file_name}_generator")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "<%= generator_path %>"
|
3
|
+
|
4
|
+
<% module_namespacing do -%>
|
5
|
+
class <%= class_name %>GeneratorTest < Rails::Generators::TestCase
|
6
|
+
tests <%= class_name %>Generator
|
7
|
+
destination Rails.root.join("tmp/generators")
|
8
|
+
setup :prepare_destination
|
9
|
+
|
10
|
+
# test "generator runs without errors" do
|
11
|
+
# assert_nothing_raised do
|
12
|
+
# run_generator ["arguments"]
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
end
|
16
|
+
<% end -%>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class IntegrationGenerator < Base # :nodoc:
|
8
|
+
check_class_collision suffix: "Test"
|
9
|
+
|
10
|
+
def create_test_files
|
11
|
+
template "integration_test.rb", File.join("test/integration", class_path, "#{file_name}_test.rb")
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def file_name
|
16
|
+
@_file_name ||= super.sub(/_test\z/i, "")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class JobGenerator < Base # :nodoc:
|
8
|
+
check_class_collision suffix: "JobTest"
|
9
|
+
|
10
|
+
def create_test_file
|
11
|
+
template "unit_test.rb", File.join("test/jobs", class_path, "#{file_name}_job_test.rb")
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def file_name
|
16
|
+
@_file_name ||= super.sub(/_job\z/i, "")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class MailerGenerator < Base # :nodoc:
|
8
|
+
argument :actions, type: :array, default: [], banner: "method method"
|
9
|
+
|
10
|
+
def check_class_collision
|
11
|
+
class_collisions "#{class_name}MailerTest", "#{class_name}MailerPreview"
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_test_files
|
15
|
+
template "functional_test.rb", File.join("test/mailers", class_path, "#{file_name}_mailer_test.rb")
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_preview_files
|
19
|
+
template "preview.rb", File.join("test/mailers/previews", class_path, "#{file_name}_mailer_preview.rb")
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def file_name
|
24
|
+
@_file_name ||= super.sub(/_mailer\z/i, "")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
<% module_namespacing do -%>
|
4
|
+
class <%= class_name %>MailerTest < ActionMailer::TestCase
|
5
|
+
<% actions.each_with_index do |action, index| -%>
|
6
|
+
<% if index != 0 -%>
|
7
|
+
|
8
|
+
<% end -%>
|
9
|
+
test "<%= action %>" do
|
10
|
+
mail = <%= class_name %>Mailer.<%= action %>
|
11
|
+
assert_equal <%= action.to_s.humanize.inspect %>, mail.subject
|
12
|
+
assert_equal [ "to@example.org" ], mail.to
|
13
|
+
assert_equal [ "from@example.com" ], mail.from
|
14
|
+
assert_match "Hi", mail.body.encoded
|
15
|
+
end
|
16
|
+
<% end -%>
|
17
|
+
<% if actions.blank? -%>
|
18
|
+
# test "the truth" do
|
19
|
+
# assert true
|
20
|
+
# end
|
21
|
+
<% end -%>
|
22
|
+
end
|
23
|
+
<% end -%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% module_namespacing do -%>
|
2
|
+
# Preview all emails at http://localhost:3000/rails/mailers/<%= file_path %>_mailer
|
3
|
+
class <%= class_name %>MailerPreview < ActionMailer::Preview
|
4
|
+
<% actions.each_with_index do |action, index| -%>
|
5
|
+
<% if index != 0 -%>
|
6
|
+
|
7
|
+
<% end -%>
|
8
|
+
# Preview this email at http://localhost:3000/rails/mailers/<%= file_path %>_mailer/<%= action %>
|
9
|
+
def <%= action %>
|
10
|
+
<%= class_name %>Mailer.<%= action %>
|
11
|
+
end
|
12
|
+
<% end -%>
|
13
|
+
end
|
14
|
+
<% end -%>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class ModelGenerator < Base # :nodoc:
|
8
|
+
RESERVED_YAML_KEYWORDS = %w(y yes n no true false on off null)
|
9
|
+
|
10
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
11
|
+
class_option :fixture, type: :boolean
|
12
|
+
|
13
|
+
check_class_collision suffix: "Test"
|
14
|
+
|
15
|
+
def create_test_file
|
16
|
+
template "unit_test.rb", File.join("test/models", class_path, "#{file_name}_test.rb")
|
17
|
+
end
|
18
|
+
|
19
|
+
hook_for :fixture_replacement
|
20
|
+
|
21
|
+
def create_fixture_file
|
22
|
+
if options[:fixture] && options[:fixture_replacement].nil?
|
23
|
+
template "fixtures.yml", File.join("test/fixtures", class_path, "#{fixture_file_name}.yml")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def yaml_key_value(key, value)
|
29
|
+
if RESERVED_YAML_KEYWORDS.include?(key.downcase)
|
30
|
+
"'#{key}': #{value}"
|
31
|
+
else
|
32
|
+
"#{key}: #{value}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
2
|
+
<% unless attributes.empty? -%>
|
3
|
+
<% %w(one two).each do |name| %>
|
4
|
+
<%= name %>:
|
5
|
+
<% attributes.each do |attribute| -%>
|
6
|
+
<%- if attribute.password_digest? -%>
|
7
|
+
password_digest: <%%= BCrypt::Password.create("secret") %>
|
8
|
+
<%- elsif attribute.reference? -%>
|
9
|
+
<%= yaml_key_value(attribute.column_name.delete_suffix("_id"), attribute.default || name) %>
|
10
|
+
<%- elsif !attribute.virtual? -%>
|
11
|
+
<%= yaml_key_value(attribute.column_name, attribute.default) %>
|
12
|
+
<%- end -%>
|
13
|
+
<%- if attribute.polymorphic? -%>
|
14
|
+
<%= yaml_key_value("#{attribute.name}_type", attribute.human_name) %>
|
15
|
+
<%- end -%>
|
16
|
+
<% end -%>
|
17
|
+
<% end -%>
|
18
|
+
<% else -%>
|
19
|
+
|
20
|
+
# This model initially had no columns defined. If you add columns to the
|
21
|
+
# model remove the "{}" from the fixture names and add the columns immediately
|
22
|
+
# below each fixture, per the syntax in the comments below
|
23
|
+
#
|
24
|
+
one: {}
|
25
|
+
# column: value
|
26
|
+
#
|
27
|
+
two: {}
|
28
|
+
# column: value
|
29
|
+
<% end -%>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
|
5
|
+
module TestUnit # :nodoc:
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class PluginGenerator < Base # :nodoc:
|
8
|
+
check_class_collision suffix: "Test"
|
9
|
+
|
10
|
+
def create_test_files
|
11
|
+
directory ".", "test"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/test_unit"
|
4
|
+
require "rails/generators/resource_helpers"
|
5
|
+
|
6
|
+
module TestUnit # :nodoc:
|
7
|
+
module Generators # :nodoc:
|
8
|
+
class ScaffoldGenerator < Base # :nodoc:
|
9
|
+
include Rails::Generators::ResourceHelpers
|
10
|
+
|
11
|
+
check_class_collision suffix: "ControllerTest"
|
12
|
+
|
13
|
+
class_option :api, type: :boolean,
|
14
|
+
desc: "Generate API functional tests"
|
15
|
+
|
16
|
+
class_option :system_tests, type: :string,
|
17
|
+
desc: "Skip system test files"
|
18
|
+
|
19
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
20
|
+
|
21
|
+
def create_test_files
|
22
|
+
template_file = options.api? ? "api_functional_test.rb" : "functional_test.rb"
|
23
|
+
template template_file,
|
24
|
+
File.join("test/controllers", controller_class_path, "#{controller_file_name}_controller_test.rb")
|
25
|
+
|
26
|
+
if !options.api? && options[:system_tests]
|
27
|
+
template "system_test.rb", File.join("test/system", class_path, "#{file_name.pluralize}_test.rb")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def fixture_name
|
32
|
+
@fixture_name ||=
|
33
|
+
if mountable_engine?
|
34
|
+
(namespace_dirs + [table_name]).join("_")
|
35
|
+
else
|
36
|
+
table_name
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def attributes_string
|
42
|
+
if attributes_hash.empty?
|
43
|
+
"{}"
|
44
|
+
else
|
45
|
+
"{ #{attributes_hash.map { |k, v| "#{k}: #{v}" }.join(", ")} }"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def attributes_hash
|
50
|
+
return {} if attributes_names.empty?
|
51
|
+
|
52
|
+
attributes_names.filter_map do |name|
|
53
|
+
if %w(password password_confirmation).include?(name) && attributes.any?(&:password_digest?)
|
54
|
+
["#{name}", '"secret"']
|
55
|
+
elsif !virtual?(name)
|
56
|
+
["#{name}", "@#{singular_table_name}.#{name}"]
|
57
|
+
end
|
58
|
+
end.sort.to_h
|
59
|
+
end
|
60
|
+
|
61
|
+
def boolean?(name)
|
62
|
+
attribute = attributes.find { |attr| attr.name == name }
|
63
|
+
attribute&.type == :boolean
|
64
|
+
end
|
65
|
+
|
66
|
+
def virtual?(name)
|
67
|
+
attribute = attributes.find { |attr| attr.name == name }
|
68
|
+
attribute&.virtual?
|
69
|
+
end
|
70
|
+
|
71
|
+
def datetime?(name)
|
72
|
+
attribute = attributes.find { |attr| attr.name == name }
|
73
|
+
attribute&.type == :datetime
|
74
|
+
end
|
75
|
+
|
76
|
+
def time?(name)
|
77
|
+
attribute = attributes.find { |attr| attr.name == name }
|
78
|
+
attribute&.type == :time
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
<% module_namespacing do -%>
|
4
|
+
class <%= controller_class_name %>ControllerTest < ActionDispatch::IntegrationTest
|
5
|
+
<%- if mountable_engine? -%>
|
6
|
+
include Engine.routes.url_helpers
|
7
|
+
|
8
|
+
<%- end -%>
|
9
|
+
setup do
|
10
|
+
@<%= singular_table_name %> = <%= fixture_name %>(:one)
|
11
|
+
end
|
12
|
+
|
13
|
+
test "should get index" do
|
14
|
+
get <%= index_helper %>_url, as: :json
|
15
|
+
assert_response :success
|
16
|
+
end
|
17
|
+
|
18
|
+
test "should create <%= singular_table_name %>" do
|
19
|
+
assert_difference("<%= class_name %>.count") do
|
20
|
+
post <%= index_helper %>_url, params: { <%= "#{singular_table_name}: #{attributes_string}" %> }, as: :json
|
21
|
+
end
|
22
|
+
|
23
|
+
assert_response :created
|
24
|
+
end
|
25
|
+
|
26
|
+
test "should show <%= singular_table_name %>" do
|
27
|
+
get <%= show_helper %>, as: :json
|
28
|
+
assert_response :success
|
29
|
+
end
|
30
|
+
|
31
|
+
test "should update <%= singular_table_name %>" do
|
32
|
+
patch <%= show_helper %>, params: { <%= "#{singular_table_name}: #{attributes_string}" %> }, as: :json
|
33
|
+
assert_response :success
|
34
|
+
end
|
35
|
+
|
36
|
+
test "should destroy <%= singular_table_name %>" do
|
37
|
+
assert_difference("<%= class_name %>.count", -1) do
|
38
|
+
delete <%= show_helper %>, as: :json
|
39
|
+
end
|
40
|
+
|
41
|
+
assert_response :no_content
|
42
|
+
end
|
43
|
+
end
|
44
|
+
<% end -%>
|