railties 6.0.0 → 7.1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +699 -245
- data/MIT-LICENSE +1 -1
- data/RDOC_MAIN.md +99 -0
- data/README.rdoc +7 -8
- data/lib/minitest/rails_plugin.rb +80 -2
- data/lib/rails/all.rb +0 -1
- data/lib/rails/api/task.rb +37 -5
- data/lib/rails/app_updater.rb +9 -6
- data/lib/rails/application/bootstrap.rb +52 -14
- data/lib/rails/application/configuration.rb +327 -86
- data/lib/rails/application/default_middleware_stack.rb +33 -7
- data/lib/rails/application/dummy_config.rb +19 -0
- data/lib/rails/application/finisher.rb +94 -113
- data/lib/rails/application/routes_reloader.rb +17 -3
- data/lib/rails/application.rb +258 -201
- data/lib/rails/application_controller.rb +3 -4
- data/lib/rails/autoloaders/inflector.rb +21 -0
- data/lib/rails/autoloaders.rb +42 -42
- data/lib/rails/backtrace_cleaner.rb +13 -8
- data/lib/rails/cli.rb +5 -2
- data/lib/rails/code_statistics.rb +6 -4
- data/lib/rails/code_statistics_calculator.rb +16 -7
- data/lib/rails/command/actions.rb +10 -12
- data/lib/rails/command/base.rb +66 -46
- data/lib/rails/command/behavior.rb +3 -3
- data/lib/rails/command/environment_argument.rb +33 -17
- data/lib/rails/command/helpers/editor.rb +17 -12
- data/lib/rails/command.rb +90 -32
- data/lib/rails/commands/about/about_command.rb +14 -0
- data/lib/rails/commands/application/application_command.rb +2 -0
- data/lib/rails/commands/console/console_command.rb +17 -13
- data/lib/rails/commands/credentials/USAGE +54 -39
- data/lib/rails/commands/credentials/credentials_command/diffing.rb +53 -0
- data/lib/rails/commands/credentials/credentials_command.rb +83 -60
- data/lib/rails/commands/db/system/change/change_command.rb +8 -2
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +39 -124
- data/lib/rails/commands/destroy/destroy_command.rb +3 -2
- data/lib/rails/commands/dev/dev_command.rb +1 -6
- data/lib/rails/commands/encrypted/USAGE +15 -20
- data/lib/rails/commands/encrypted/encrypted_command.rb +46 -35
- 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 +3 -3
- data/lib/rails/commands/help/USAGE +15 -14
- data/lib/rails/commands/help/help_command.rb +21 -2
- data/lib/rails/commands/initializers/initializers_command.rb +1 -4
- data/lib/rails/commands/middleware/middleware_command.rb +17 -0
- data/lib/rails/commands/new/new_command.rb +2 -0
- data/lib/rails/commands/notes/notes_command.rb +5 -14
- data/lib/rails/commands/plugin/plugin_command.rb +2 -0
- data/lib/rails/commands/rake/rake_command.rb +27 -23
- data/lib/rails/commands/restart/restart_command.rb +14 -0
- data/lib/rails/commands/routes/routes_command.rb +13 -1
- data/lib/rails/commands/runner/USAGE +14 -12
- data/lib/rails/commands/runner/runner_command.rb +34 -21
- data/lib/rails/commands/secret/secret_command.rb +13 -0
- data/lib/rails/commands/secrets/USAGE +44 -43
- data/lib/rails/commands/secrets/secrets_command.rb +20 -38
- data/lib/rails/commands/server/server_command.rb +40 -64
- data/lib/rails/commands/test/USAGE +14 -0
- data/lib/rails/commands/test/test_command.rb +58 -16
- data/lib/rails/commands/unused_routes/unused_routes_command.rb +75 -0
- data/lib/rails/commands/version/version_command.rb +1 -0
- data/lib/rails/configuration.rb +53 -23
- data/lib/rails/console/app.rb +1 -4
- data/lib/rails/console/helpers.rb +2 -2
- data/lib/rails/deprecator.rb +7 -0
- data/lib/rails/engine/configuration.rb +54 -9
- data/lib/rails/engine/updater.rb +1 -1
- data/lib/rails/engine.rb +105 -81
- data/lib/rails/gem_version.rb +5 -5
- data/lib/rails/generators/actions/create_migration.rb +9 -5
- data/lib/rails/generators/actions.rb +275 -97
- data/lib/rails/generators/active_model.rb +28 -14
- data/lib/rails/generators/app_base.rb +487 -165
- data/lib/rails/generators/app_name.rb +3 -14
- data/lib/rails/generators/base.rb +42 -31
- data/lib/rails/generators/database.rb +41 -4
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +0 -1
- data/lib/rails/generators/erb/mailer/templates/layout.html.erb.tt +1 -1
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +2 -1
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +11 -11
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +8 -4
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +11 -28
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +7 -3
- data/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt +17 -0
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +8 -17
- data/lib/rails/generators/erb.rb +1 -2
- data/lib/rails/generators/generated_attribute.rb +60 -19
- data/lib/rails/generators/migration.rb +4 -8
- data/lib/rails/generators/model_helpers.rb +29 -4
- data/lib/rails/generators/named_base.rb +15 -15
- data/lib/rails/generators/rails/app/USAGE +23 -6
- data/lib/rails/generators/rails/app/app_generator.rb +151 -80
- data/lib/rails/generators/rails/app/templates/Dockerfile.tt +103 -0
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +44 -54
- data/lib/rails/generators/rails/app/templates/Rakefile.tt +1 -1
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +4 -9
- data/lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/bin/rails.tt +3 -3
- data/lib/rails/generators/rails/app/templates/bin/rake.tt +2 -2
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +19 -15
- data/lib/rails/generators/rails/app/templates/config/application.rb.tt +18 -23
- data/lib/rails/generators/rails/app/templates/config/boot.rb.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +5 -6
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +12 -11
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +17 -16
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +12 -11
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +12 -11
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +17 -18
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +14 -13
- data/lib/rails/generators/rails/app/templates/config/databases/trilogy.yml.tt +59 -0
- data/lib/rails/generators/rails/app/templates/config/environment.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +32 -14
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +42 -55
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +27 -15
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +3 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +21 -28
- data/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt +6 -2
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_1.rb.tt +284 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/permissions_policy.rb.tt +13 -0
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +13 -15
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +17 -20
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +8 -1
- data/lib/rails/generators/rails/app/templates/config/storage.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/config.ru.tt +2 -1
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +7 -5
- data/lib/rails/generators/rails/app/templates/docker-entrypoint.tt +10 -0
- data/lib/rails/generators/rails/app/templates/dockerignore.tt +43 -0
- data/lib/rails/generators/rails/app/templates/gitattributes.tt +9 -0
- data/lib/rails/generators/rails/app/templates/gitignore.tt +12 -9
- data/lib/rails/generators/rails/app/templates/node-version.tt +1 -0
- data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +10 -8
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +13 -11
- data/lib/rails/generators/rails/application_record/application_record_generator.rb +4 -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 +13 -5
- data/lib/rails/generators/rails/controller/controller_generator.rb +7 -42
- data/lib/rails/generators/rails/controller/templates/controller.rb.tt +1 -5
- data/lib/rails/generators/rails/credentials/credentials_generator.rb +30 -25
- data/lib/rails/generators/rails/credentials/templates/credentials.yml.tt +8 -0
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +31 -1
- data/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +6 -2
- data/lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb +1 -2
- data/lib/rails/generators/rails/generator/USAGE +2 -2
- data/lib/rails/generators/rails/generator/generator_generator.rb +0 -1
- data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +1 -1
- data/lib/rails/generators/rails/generator/templates/USAGE.tt +1 -1
- data/lib/rails/generators/rails/helper/USAGE +2 -3
- data/lib/rails/generators/rails/integration_test/USAGE +2 -2
- data/lib/rails/generators/rails/migration/USAGE +22 -12
- data/lib/rails/generators/rails/model/model_generator.rb +4 -0
- data/lib/rails/generators/rails/plugin/USAGE +17 -6
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +86 -46
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +15 -20
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +10 -39
- data/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/README.md.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/Rakefile.tt +4 -18
- data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +0 -1
- data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +0 -3
- data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +7 -22
- data/lib/rails/generators/rails/plugin/templates/gitignore.tt +10 -14
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%.rb.tt +1 -0
- data/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +3 -3
- data/lib/rails/generators/rails/plugin/templates/test/%namespaced_name%_test.rb.tt +4 -4
- data/lib/rails/generators/rails/plugin/templates/test/integration/navigation_test.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +6 -14
- data/lib/rails/generators/rails/resource/USAGE +4 -4
- data/lib/rails/generators/rails/resource/resource_generator.rb +6 -0
- data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +2 -27
- data/lib/rails/generators/rails/scaffold/USAGE +5 -5
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +2 -20
- data/lib/rails/generators/rails/scaffold_controller/USAGE +2 -2
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +7 -2
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +2 -6
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +7 -11
- data/lib/rails/generators/rails/system_test/USAGE +2 -2
- data/lib/rails/generators/rails/task/USAGE +3 -3
- data/lib/rails/generators/resource_helpers.rb +2 -2
- data/lib/rails/generators/test_case.rb +3 -3
- data/lib/rails/generators/test_unit/controller/controller_generator.rb +2 -0
- data/lib/rails/generators/test_unit/controller/templates/functional_test.rb.tt +3 -3
- data/lib/rails/generators/test_unit/generator/generator_generator.rb +0 -1
- data/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +3 -3
- data/lib/rails/generators/test_unit/integration/integration_generator.rb +0 -1
- data/lib/rails/generators/test_unit/integration/templates/integration_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/job/templates/unit_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +3 -3
- data/lib/rails/generators/test_unit/model/templates/unit_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +2 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +4 -5
- data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +6 -6
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +8 -8
- data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +9 -11
- data/lib/rails/generators/testing/assertions.rb +2 -2
- data/lib/rails/generators/testing/{behaviour.rb → behavior.rb} +8 -7
- data/lib/rails/generators.rb +43 -45
- data/lib/rails/health_controller.rb +55 -0
- data/lib/rails/info.rb +4 -4
- data/lib/rails/info_controller.rb +30 -13
- data/lib/rails/initializable.rb +1 -1
- data/lib/rails/mailers_controller.rb +18 -9
- data/lib/rails/paths.rb +28 -19
- data/lib/rails/rack/logger.rb +17 -17
- data/lib/rails/rackup/server.rb +15 -0
- data/lib/rails/railtie/configurable.rb +0 -1
- data/lib/rails/railtie/configuration.rb +15 -3
- data/lib/rails/railtie.rb +80 -37
- data/lib/rails/ruby_version_check.rb +5 -3
- data/lib/rails/secrets.rb +14 -9
- data/lib/rails/source_annotation_extractor.rb +69 -34
- data/lib/rails/tasks/engine.rake +8 -11
- data/lib/rails/tasks/framework.rake +4 -6
- data/lib/rails/tasks/log.rake +1 -1
- data/lib/rails/tasks/misc.rake +4 -15
- data/lib/rails/tasks/statistics.rake +9 -6
- data/lib/rails/tasks/tmp.rake +13 -6
- data/lib/rails/tasks/yarn.rake +17 -6
- data/lib/rails/tasks/zeitwerk.rake +16 -41
- data/lib/rails/tasks.rb +0 -6
- data/lib/rails/templates/layouts/application.html.erb +15 -0
- data/lib/rails/templates/rails/mailers/email.html.erb +46 -11
- data/lib/rails/templates/rails/mailers/index.html.erb +14 -7
- data/lib/rails/templates/rails/mailers/mailer.html.erb +11 -5
- data/lib/rails/templates/rails/welcome/index.html.erb +65 -48
- data/lib/rails/test_help.rb +13 -14
- data/lib/rails/test_unit/line_filtering.rb +1 -1
- data/lib/rails/test_unit/railtie.rb +0 -4
- data/lib/rails/test_unit/reporter.rb +8 -3
- data/lib/rails/test_unit/runner.rb +61 -19
- data/lib/rails/test_unit/test_parser.rb +88 -0
- data/lib/rails/test_unit/testing.rake +17 -36
- data/lib/rails/testing/maintain_test_schema.rb +16 -0
- data/lib/rails/version.rb +1 -1
- data/lib/rails/welcome_controller.rb +1 -0
- data/lib/rails/zeitwerk_checker.rb +15 -0
- data/lib/rails.rb +31 -23
- metadata +89 -58
- data/RDOC_MAIN.rdoc +0 -98
- data/lib/rails/application/dummy_erb_compiler.rb +0 -18
- data/lib/rails/command/spellchecker.rb +0 -58
- data/lib/rails/generators/css/assets/assets_generator.rb +0 -15
- data/lib/rails/generators/css/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/css/scaffold/scaffold_generator.rb +0 -18
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js +0 -6
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +0 -5
- data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +0 -23
- data/lib/rails/generators/rails/app/templates/bin/yarn.tt +0 -10
- data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml.tt +0 -50
- data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml.tt +0 -86
- data/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb.tt +0 -8
- data/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb.tt +0 -7
- data/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb.tt +0 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb.tt +0 -4
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt +0 -45
- data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +0 -16
- data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +0 -6
- data/lib/rails/generators/rails/app/templates/package.json.tt +0 -11
- data/lib/rails/generators/rails/assets/USAGE +0 -17
- data/lib/rails/generators/rails/assets/assets_generator.rb +0 -26
- data/lib/rails/generators/rails/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/rails/model/USAGE +0 -114
- data/lib/rails/generators/rails/plugin/templates/rails/application.rb.tt +0 -23
- data/lib/rails/generators/rails/scaffold/templates/scaffold.css +0 -80
- data/lib/rails/tasks/annotations.rake +0 -22
- data/lib/rails/tasks/dev.rake +0 -11
- data/lib/rails/tasks/initializers.rake +0 -9
- data/lib/rails/tasks/middleware.rake +0 -9
- data/lib/rails/tasks/restart.rake +0 -9
- data/lib/rails/tasks/routes.rake +0 -9
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "active_support/core_ext/hash/except"
|
3
4
|
require "rails/generators/rails/app/app_generator"
|
4
5
|
require "date"
|
5
6
|
|
@@ -24,10 +25,18 @@ module Rails
|
|
24
25
|
directory "app"
|
25
26
|
empty_directory_with_keep_file "app/assets/images/#{namespaced_name}"
|
26
27
|
end
|
28
|
+
|
29
|
+
empty_directory_with_keep_file "app/models/concerns"
|
30
|
+
empty_directory_with_keep_file "app/controllers/concerns"
|
31
|
+
remove_dir "app/mailers" if options[:skip_action_mailer]
|
32
|
+
remove_dir "app/jobs" if options[:skip_active_job]
|
27
33
|
elsif full?
|
28
34
|
empty_directory_with_keep_file "app/models"
|
29
35
|
empty_directory_with_keep_file "app/controllers"
|
30
|
-
empty_directory_with_keep_file "app/
|
36
|
+
empty_directory_with_keep_file "app/models/concerns"
|
37
|
+
empty_directory_with_keep_file "app/controllers/concerns"
|
38
|
+
empty_directory_with_keep_file "app/mailers" unless options[:skip_action_mailer]
|
39
|
+
empty_directory_with_keep_file "app/jobs" unless options[:skip_active_job]
|
31
40
|
|
32
41
|
unless api?
|
33
42
|
empty_directory_with_keep_file "app/assets/images/#{namespaced_name}"
|
@@ -46,7 +55,7 @@ module Rails
|
|
46
55
|
end
|
47
56
|
|
48
57
|
def license
|
49
|
-
template "MIT-LICENSE"
|
58
|
+
template "MIT-LICENSE" unless inside_application?
|
50
59
|
end
|
51
60
|
|
52
61
|
def gemspec
|
@@ -57,6 +66,12 @@ module Rails
|
|
57
66
|
template "gitignore", ".gitignore"
|
58
67
|
end
|
59
68
|
|
69
|
+
def version_control
|
70
|
+
if !options[:skip_git] && !options[:pretend]
|
71
|
+
run git_init_command, capture: options[:quiet], abort_on_failure: false
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
60
75
|
def lib
|
61
76
|
template "lib/%namespaced_name%.rb"
|
62
77
|
template "lib/tasks/%namespaced_name%_tasks.rake"
|
@@ -76,29 +91,30 @@ module Rails
|
|
76
91
|
def test
|
77
92
|
template "test/test_helper.rb"
|
78
93
|
template "test/%namespaced_name%_test.rb"
|
79
|
-
append_file "Rakefile", <<-EOF
|
80
94
|
|
81
|
-
#{rakefile_test_tasks}
|
82
|
-
task default: :test
|
83
|
-
EOF
|
84
95
|
if engine?
|
96
|
+
empty_directory_with_keep_file "test/fixtures/files"
|
97
|
+
empty_directory_with_keep_file "test/controllers"
|
98
|
+
empty_directory_with_keep_file "test/mailers"
|
99
|
+
empty_directory_with_keep_file "test/models"
|
100
|
+
empty_directory_with_keep_file "test/integration"
|
101
|
+
|
102
|
+
unless api?
|
103
|
+
empty_directory_with_keep_file "test/helpers"
|
104
|
+
end
|
105
|
+
|
85
106
|
template "test/integration/navigation_test.rb"
|
86
107
|
end
|
87
108
|
end
|
88
109
|
|
89
|
-
|
90
|
-
:skip_active_record, :skip_active_storage, :skip_action_mailer, :skip_javascript, :skip_action_cable, :skip_sprockets, :database,
|
91
|
-
:api, :quiet, :pretend, :skip
|
92
|
-
]
|
110
|
+
DUMMY_IGNORE_OPTIONS = %i[dev edge master template]
|
93
111
|
|
94
112
|
def generate_test_dummy(force = false)
|
95
|
-
opts =
|
113
|
+
opts = options.transform_keys(&:to_sym).except(*DUMMY_IGNORE_OPTIONS)
|
96
114
|
opts[:force] = force
|
97
115
|
opts[:skip_bundle] = true
|
98
|
-
opts[:skip_listen] = true
|
99
116
|
opts[:skip_git] = true
|
100
|
-
opts[:
|
101
|
-
opts[:skip_webpack_install] = true
|
117
|
+
opts[:skip_hotwire] = true
|
102
118
|
opts[:dummy_app] = true
|
103
119
|
|
104
120
|
invoke Rails::Generators::AppGenerator,
|
@@ -107,20 +123,27 @@ task default: :test
|
|
107
123
|
|
108
124
|
def test_dummy_config
|
109
125
|
template "rails/boot.rb", "#{dummy_path}/config/boot.rb", force: true
|
110
|
-
|
126
|
+
|
111
127
|
if mountable?
|
112
128
|
template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
|
113
129
|
end
|
130
|
+
if engine? && !api?
|
131
|
+
insert_into_file "#{dummy_path}/config/application.rb", indent(<<~RUBY, 4), after: /^\s*config\.load_defaults.*\n/
|
132
|
+
|
133
|
+
# For compatibility with applications that use this config
|
134
|
+
config.action_controller.include_all_helpers = false
|
135
|
+
RUBY
|
136
|
+
end
|
114
137
|
end
|
115
138
|
|
116
|
-
def
|
117
|
-
template "rails/javascripts.js", "#{dummy_path}/app/javascript/packs/application.js", force: true
|
139
|
+
def test_dummy_sprocket_assets
|
118
140
|
template "rails/stylesheets.css", "#{dummy_path}/app/assets/stylesheets/application.css", force: true
|
119
141
|
template "rails/dummy_manifest.js", "#{dummy_path}/app/assets/config/manifest.js", force: true
|
120
142
|
end
|
121
143
|
|
122
144
|
def test_dummy_clean
|
123
145
|
inside dummy_path do
|
146
|
+
remove_file ".ruby-version"
|
124
147
|
remove_file "db/seeds.rb"
|
125
148
|
remove_file "Gemfile"
|
126
149
|
remove_file "lib/tasks"
|
@@ -176,7 +199,7 @@ task default: :test
|
|
176
199
|
desc: "Generate a rails engine with bundled Rails application for testing"
|
177
200
|
|
178
201
|
class_option :mountable, type: :boolean, default: false,
|
179
|
-
desc: "Generate mountable isolated
|
202
|
+
desc: "Generate mountable isolated engine"
|
180
203
|
|
181
204
|
class_option :skip_gemspec, type: :boolean, default: false,
|
182
205
|
desc: "Skip gemspec file"
|
@@ -191,18 +214,29 @@ task default: :test
|
|
191
214
|
def initialize(*args)
|
192
215
|
@dummy_path = nil
|
193
216
|
super
|
217
|
+
imply_options
|
218
|
+
|
219
|
+
if !engine? || !with_dummy_app?
|
220
|
+
self.options = options.merge(skip_asset_pipeline: true).freeze
|
221
|
+
end
|
194
222
|
end
|
195
223
|
|
224
|
+
public_task :report_implied_options
|
196
225
|
public_task :set_default_accessors!
|
197
226
|
public_task :create_root
|
198
227
|
|
228
|
+
def target_rails_prerelease
|
229
|
+
super("plugin new")
|
230
|
+
end
|
231
|
+
|
199
232
|
def create_root_files
|
200
233
|
build(:readme)
|
201
234
|
build(:rakefile)
|
202
235
|
build(:gemspec) unless options[:skip_gemspec]
|
203
236
|
build(:license)
|
204
237
|
build(:gitignore) unless options[:skip_git]
|
205
|
-
build(:gemfile)
|
238
|
+
build(:gemfile)
|
239
|
+
build(:version_control)
|
206
240
|
end
|
207
241
|
|
208
242
|
def create_app_files
|
@@ -269,6 +303,33 @@ task default: :test
|
|
269
303
|
end
|
270
304
|
|
271
305
|
private
|
306
|
+
def gemfile_entries
|
307
|
+
[
|
308
|
+
rails_gemfile_entry,
|
309
|
+
simplify_gemfile_entries(
|
310
|
+
web_server_gemfile_entry,
|
311
|
+
database_gemfile_entry,
|
312
|
+
asset_pipeline_gemfile_entry,
|
313
|
+
),
|
314
|
+
].flatten.compact
|
315
|
+
end
|
316
|
+
|
317
|
+
def rails_gemfile_entry
|
318
|
+
if options[:skip_gemspec]
|
319
|
+
super
|
320
|
+
elsif rails_prerelease?
|
321
|
+
super.dup.tap do |entry|
|
322
|
+
entry.comment = <<~COMMENT
|
323
|
+
Your gem is dependent on a prerelease version of Rails. Once you can lock this
|
324
|
+
dependency down to a specific version, move it to your gemspec.
|
325
|
+
COMMENT
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
def simplify_gemfile_entries(*gemfile_entries)
|
331
|
+
gemfile_entries.flatten.compact.map { |entry| GemfileEntry.floats(entry.name) }
|
332
|
+
end
|
272
333
|
|
273
334
|
def create_dummy_app(path = nil)
|
274
335
|
dummy_path(path) if path
|
@@ -276,9 +337,8 @@ task default: :test
|
|
276
337
|
say_status :vendor_app, dummy_path
|
277
338
|
mute do
|
278
339
|
build(:generate_test_dummy)
|
279
|
-
store_application_definition!
|
280
340
|
build(:test_dummy_config)
|
281
|
-
build(:
|
341
|
+
build(:test_dummy_sprocket_assets) unless skip_sprockets?
|
282
342
|
build(:test_dummy_clean)
|
283
343
|
# ensure that bin/rails has proper dummy_path
|
284
344
|
build(:bin, true)
|
@@ -360,6 +420,10 @@ task default: :test
|
|
360
420
|
end
|
361
421
|
end
|
362
422
|
|
423
|
+
def rails_version_specifier(gem_version = Rails.gem_version)
|
424
|
+
[">= #{gem_version}"]
|
425
|
+
end
|
426
|
+
|
363
427
|
def valid_const?
|
364
428
|
if /-\d/.match?(original_name)
|
365
429
|
raise Error, "Invalid plugin name #{original_name}. Please give a name which does not contain a namespace starting with numeric characters."
|
@@ -376,34 +440,10 @@ task default: :test
|
|
376
440
|
end
|
377
441
|
end
|
378
442
|
|
379
|
-
def application_definition
|
380
|
-
@application_definition ||= begin
|
381
|
-
|
382
|
-
dummy_application_path = File.expand_path("#{dummy_path}/config/application.rb", destination_root)
|
383
|
-
unless options[:pretend] || !File.exist?(dummy_application_path)
|
384
|
-
contents = File.read(dummy_application_path)
|
385
|
-
contents[(contents.index(/module ([\w]+)\n(.*)class Application/m))..-1]
|
386
|
-
end
|
387
|
-
end
|
388
|
-
end
|
389
|
-
alias :store_application_definition! :application_definition
|
390
|
-
|
391
443
|
def get_builder_class
|
392
444
|
defined?(::PluginBuilder) ? ::PluginBuilder : Rails::PluginBuilder
|
393
445
|
end
|
394
446
|
|
395
|
-
def rakefile_test_tasks
|
396
|
-
<<-RUBY
|
397
|
-
require 'rake/testtask'
|
398
|
-
|
399
|
-
Rake::TestTask.new(:test) do |t|
|
400
|
-
t.libs << 'test'
|
401
|
-
t.pattern = 'test/**/*_test.rb'
|
402
|
-
t.verbose = false
|
403
|
-
end
|
404
|
-
RUBY
|
405
|
-
end
|
406
|
-
|
407
447
|
def dummy_path(path = nil)
|
408
448
|
@dummy_path = path if path
|
409
449
|
@dummy_path || options[:dummy_path]
|
@@ -423,7 +463,7 @@ end
|
|
423
463
|
|
424
464
|
def relative_path
|
425
465
|
return unless inside_application?
|
426
|
-
app_path.
|
466
|
+
app_path.delete_prefix("#{rails_app_path}/")
|
427
467
|
end
|
428
468
|
end
|
429
469
|
end
|
@@ -1,33 +1,28 @@
|
|
1
|
-
|
1
|
+
require_relative "lib/<%= namespaced_name %>/version"
|
2
2
|
|
3
|
-
# Maintain your gem's version:
|
4
|
-
require "<%= namespaced_name %>/version"
|
5
|
-
|
6
|
-
# Describe your gem and declare its dependencies:
|
7
3
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name =
|
4
|
+
spec.name = <%= name.inspect %>
|
9
5
|
spec.version = <%= camelized_modules %>::VERSION
|
10
|
-
spec.authors = [
|
11
|
-
spec.email = [
|
6
|
+
spec.authors = [<%= author.inspect %>]
|
7
|
+
spec.email = [<%= email.inspect %>]
|
12
8
|
spec.homepage = "TODO"
|
13
9
|
spec.summary = "TODO: Summary of <%= camelized_modules %>."
|
14
10
|
spec.description = "TODO: Description of <%= camelized_modules %>."
|
11
|
+
<%- unless inside_application? -%>
|
15
12
|
spec.license = "MIT"
|
13
|
+
<%- end -%>
|
16
14
|
|
17
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
15
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the "allowed_push_host"
|
18
16
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
-
|
20
|
-
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
-
else
|
22
|
-
raise "RubyGems 2.0 or newer is required to protect against " \
|
23
|
-
"public gem pushes."
|
24
|
-
end
|
17
|
+
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
25
18
|
|
26
|
-
spec.
|
19
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
|
21
|
+
spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
27
22
|
|
28
|
-
|
29
|
-
|
23
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
24
|
+
Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]
|
25
|
+
end
|
30
26
|
|
31
|
-
spec.
|
32
|
-
<% end -%>
|
27
|
+
<%= "# " if rails_prerelease? -%>spec.add_dependency "rails", "<%= Array(rails_version_specifier).join('", "') %>"
|
33
28
|
end
|
@@ -1,48 +1,19 @@
|
|
1
|
-
source
|
1
|
+
source "https://rubygems.org"
|
2
2
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
|
+
<% unless options[:skip_gemspec] -%>
|
3
4
|
|
4
|
-
|
5
|
-
<%= '# ' if options.dev? || options.edge? -%>gem 'rails', '<%= Array(rails_version_specifier).join("', '") %>'
|
6
|
-
<% else -%>
|
7
|
-
# Declare your gem's dependencies in <%= name %>.gemspec.
|
8
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
9
|
-
# development dependencies will be added by default to the :development group.
|
5
|
+
# Specify your gem's dependencies in <%= name %>.gemspec.
|
10
6
|
gemspec
|
11
7
|
<% end -%>
|
12
|
-
|
13
|
-
|
14
|
-
group :development do
|
15
|
-
gem '<%= gem_for_database[0] %>'
|
16
|
-
end
|
17
|
-
<% else -%>
|
18
|
-
# Declare any dependencies that are still in development here instead of in
|
19
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
20
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
21
|
-
# your gem to rubygems.org.
|
8
|
+
<% gemfile_entries.each do |gemfile_entry| %>
|
9
|
+
<%= gemfile_entry %>
|
22
10
|
<% end -%>
|
11
|
+
<% if RUBY_ENGINE == "ruby" -%>
|
23
12
|
|
24
|
-
|
25
|
-
#
|
26
|
-
# dependency down to a specific version, move it to your gemspec.
|
27
|
-
<% max_width = gemfile_entries.map { |g| g.name.length }.max -%>
|
28
|
-
<% gemfile_entries.each do |gem| -%>
|
29
|
-
<% if gem.comment -%>
|
30
|
-
|
31
|
-
# <%= gem.comment %>
|
32
|
-
<% end -%>
|
33
|
-
<%= gem.commented_out ? '# ' : '' %>gem '<%= gem.name %>'<%= %(, '#{gem.version}') if gem.version -%>
|
34
|
-
<% if gem.options.any? -%>
|
35
|
-
, <%= gem.options.map { |k,v|
|
36
|
-
"#{k}: #{v.inspect}" }.join(', ') %>
|
37
|
-
<% end -%>
|
38
|
-
<% end -%>
|
39
|
-
|
40
|
-
<% end -%>
|
41
|
-
<% if RUBY_ENGINE == 'ruby' -%>
|
42
|
-
# To use a debugger
|
43
|
-
# gem 'byebug', group: [:development, :test]
|
13
|
+
# Start debugger with binding.b [https://github.com/ruby/debug]
|
14
|
+
# gem "debug", ">= 1.0.0"
|
44
15
|
<% end -%>
|
45
|
-
<% if RUBY_PLATFORM.match(/
|
16
|
+
<% if RUBY_PLATFORM.match?(/mingw|mswin|java/) -%>
|
46
17
|
|
47
|
-
gem
|
18
|
+
gem "tzinfo-data", platforms: %i[ <%= bundler_windows_platforms %> jruby ]
|
48
19
|
<% end -%>
|
@@ -1,28 +1,14 @@
|
|
1
|
-
|
2
|
-
require 'bundler/setup'
|
3
|
-
rescue LoadError
|
4
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
-
end
|
6
|
-
|
7
|
-
require 'rdoc/task'
|
8
|
-
|
9
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
-
rdoc.rdoc_dir = 'rdoc'
|
11
|
-
rdoc.title = '<%= camelized_modules %>'
|
12
|
-
rdoc.options << '--line-numbers'
|
13
|
-
rdoc.rdoc_files.include('README.md')
|
14
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
-
end
|
1
|
+
require "bundler/setup"
|
16
2
|
<% if engine? && !options[:skip_active_record] && with_dummy_app? -%>
|
17
3
|
|
18
4
|
APP_RAKEFILE = File.expand_path("<%= dummy_path -%>/Rakefile", __dir__)
|
19
|
-
load
|
5
|
+
load "rails/tasks/engine.rake"
|
20
6
|
<% end -%>
|
21
7
|
<% if engine? -%>
|
22
8
|
|
23
|
-
load
|
9
|
+
load "rails/tasks/statistics.rake"
|
24
10
|
<% end -%>
|
25
11
|
<% unless options[:skip_gemspec] -%>
|
26
12
|
|
27
|
-
require
|
13
|
+
require "bundler/gem_tasks"
|
28
14
|
<% end -%>
|
@@ -1,30 +1,15 @@
|
|
1
1
|
# This command will automatically be run when you run "rails" with Rails gems
|
2
2
|
# installed from the root of your application.
|
3
3
|
|
4
|
-
ENGINE_ROOT = File.expand_path(
|
5
|
-
ENGINE_PATH = File.expand_path(
|
4
|
+
ENGINE_ROOT = File.expand_path("..", __dir__)
|
5
|
+
ENGINE_PATH = File.expand_path("../lib/<%= namespaced_name -%>/engine", __dir__)
|
6
6
|
<% if with_dummy_app? -%>
|
7
|
-
APP_PATH = File.expand_path(
|
7
|
+
APP_PATH = File.expand_path("../<%= dummy_path -%>/config/application", __dir__)
|
8
8
|
<% end -%>
|
9
9
|
|
10
10
|
# Set up gems listed in the Gemfile.
|
11
|
-
ENV[
|
12
|
-
require
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
|
13
13
|
|
14
|
-
|
15
|
-
require
|
16
|
-
<% else -%>
|
17
|
-
require "rails"
|
18
|
-
# Pick the frameworks you want:
|
19
|
-
require "active_model/railtie"
|
20
|
-
require "active_job/railtie"
|
21
|
-
<%= comment_if :skip_active_record %>require "active_record/railtie"
|
22
|
-
<%= comment_if :skip_active_storage %>require "active_storage/engine"
|
23
|
-
require "action_controller/railtie"
|
24
|
-
<%= comment_if :skip_action_mailer %>require "action_mailer/railtie"
|
25
|
-
require "action_view/railtie"
|
26
|
-
<%= comment_if :skip_action_cable %>require "action_cable/engine"
|
27
|
-
<%= comment_if :skip_sprockets %>require "sprockets/railtie"
|
28
|
-
<%= comment_if :skip_test %>require "rails/test_unit/railtie"
|
29
|
-
<% end -%>
|
30
|
-
require 'rails/engine/commands'
|
14
|
+
<%= rails_require_statement %>
|
15
|
+
require "rails/engine/commands"
|
@@ -1,18 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/.bundle/
|
2
|
+
/doc/
|
3
|
+
/log/*.log
|
4
|
+
/pkg/
|
5
|
+
/tmp/
|
4
6
|
<% if with_dummy_app? -%>
|
5
7
|
<% if sqlite3? -%>
|
6
|
-
|
7
|
-
|
8
|
+
/<%= dummy_path %>/db/*.sqlite3
|
9
|
+
/<%= dummy_path %>/db/*.sqlite3-*
|
8
10
|
<% end -%>
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
<%= dummy_path %>/yarn-error.log
|
13
|
-
<% end -%>
|
14
|
-
<% unless skip_active_storage? -%>
|
15
|
-
<%= dummy_path %>/storage/
|
16
|
-
<% end -%>
|
17
|
-
<%= dummy_path %>/tmp/
|
11
|
+
/<%= dummy_path %>/log/*.log
|
12
|
+
/<%= dummy_path %>/storage/
|
13
|
+
/<%= dummy_path %>/tmp/
|
18
14
|
<% end -%>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= wrap_in_modules <<~rb
|
2
2
|
class Engine < ::Rails::Engine
|
3
|
-
#{mountable? ?
|
4
|
-
#{api? ? " config.generators.api_only = true" :
|
3
|
+
#{mountable? ? " isolate_namespace " + camelized_modules : " "}
|
4
|
+
#{api? ? " config.generators.api_only = true" : " "}
|
5
5
|
end
|
6
6
|
rb
|
7
7
|
%>
|
@@ -1 +1 @@
|
|
1
|
-
<%= wrap_in_modules
|
1
|
+
<%= wrap_in_modules 'VERSION = "0.1.0"' %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Set up gems listed in the Gemfile.
|
2
|
-
ENV[
|
2
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../Gemfile", __dir__)
|
3
3
|
|
4
|
-
require
|
5
|
-
$LOAD_PATH.unshift File.expand_path(
|
4
|
+
require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
|
5
|
+
$LOAD_PATH.unshift File.expand_path("../../../lib", __dir__)
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
|
-
class <%= camelized_modules
|
4
|
-
test "
|
5
|
-
|
3
|
+
class <%= camelized_modules %>Test < ActiveSupport::TestCase
|
4
|
+
test "it has a version number" do
|
5
|
+
assert <%= camelized_modules %>::VERSION
|
6
6
|
end
|
7
7
|
end
|
@@ -1,29 +1,21 @@
|
|
1
1
|
# Configure Rails Environment
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
|
4
|
-
require_relative "<%= File.join(
|
4
|
+
require_relative "<%= File.join("..", options[:dummy_path], "config/environment") -%>"
|
5
5
|
<% unless options[:skip_active_record] -%>
|
6
6
|
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../<%= options[:dummy_path] -%>/db/migrate", __dir__)]
|
7
7
|
<% if options[:mountable] -%>
|
8
|
-
ActiveRecord::Migrator.migrations_paths << File.expand_path(
|
8
|
+
ActiveRecord::Migrator.migrations_paths << File.expand_path("../db/migrate", __dir__)
|
9
9
|
<% end -%>
|
10
10
|
<% end -%>
|
11
11
|
require "rails/test_help"
|
12
12
|
|
13
|
-
# Filter out the backtrace from minitest while preserving the one from other libraries.
|
14
|
-
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
15
|
-
|
16
|
-
<% unless engine? -%>
|
17
|
-
require "rails/test_unit/reporter"
|
18
|
-
Rails::TestUnitReporter.executable = 'bin/test'
|
19
|
-
<% end -%>
|
20
|
-
|
21
13
|
<% unless options[:skip_active_record] -%>
|
22
14
|
# Load fixtures from the engine
|
23
|
-
if ActiveSupport::TestCase.respond_to?(:
|
24
|
-
ActiveSupport::TestCase.
|
25
|
-
ActionDispatch::IntegrationTest.
|
26
|
-
ActiveSupport::TestCase.file_fixture_path =
|
15
|
+
if ActiveSupport::TestCase.respond_to?(:fixture_paths=)
|
16
|
+
ActiveSupport::TestCase.fixture_paths = [File.expand_path("fixtures", __dir__)]
|
17
|
+
ActionDispatch::IntegrationTest.fixture_paths = ActiveSupport::TestCase.fixture_paths
|
18
|
+
ActiveSupport::TestCase.file_fixture_path = File.expand_path("fixtures", __dir__) + "/files"
|
27
19
|
ActiveSupport::TestCase.fixtures :all
|
28
20
|
end
|
29
21
|
<% end -%>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Description:
|
2
|
-
|
2
|
+
Generates a new resource including an empty model and controller suitable
|
3
3
|
for a RESTful, resource-oriented application. Pass the singular model name,
|
4
4
|
either CamelCased or under_scored, as the first argument, and an optional
|
5
5
|
list of attribute pairs.
|
@@ -18,6 +18,6 @@ Description:
|
|
18
18
|
views or add any methods to the generated controller.
|
19
19
|
|
20
20
|
Examples:
|
21
|
-
`rails generate resource post` # no attributes
|
22
|
-
`rails generate resource post title:string body:text published:boolean`
|
23
|
-
`rails generate resource purchase order_id:integer amount:decimal`
|
21
|
+
`bin/rails generate resource post` # no attributes
|
22
|
+
`bin/rails generate resource post title:string body:text published:boolean`
|
23
|
+
`bin/rails generate resource purchase order_id:integer amount:decimal`
|