From fac5e5f269b74d7b0224a0acb81bd23a71f07709 Mon Sep 17 00:00:00 2001 From: KAWAKAMI Moeki Date: Fri, 15 Nov 2024 19:09:22 +0900 Subject: [PATCH 1/5] feat: Add --skip-suffix option to component generator This option allows generating component files without the "_component" suffix, giving developers more flexibility in naming their components. --- lib/rails/generators/component/component_generator.rb | 3 ++- .../generators/component/templates/component.rb.tt | 2 +- .../test/generators/component_generator_test.rb | 10 ++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/rails/generators/component/component_generator.rb b/lib/rails/generators/component/component_generator.rb index 4077c78f6..d5e4b8b3c 100644 --- a/lib/rails/generators/component/component_generator.rb +++ b/lib/rails/generators/component/component_generator.rb @@ -19,9 +19,10 @@ class ComponentGenerator < Rails::Generators::NamedBase class_option :sidecar, type: :boolean, default: false class_option :stimulus, type: :boolean, default: ViewComponent::Base.config.generate.stimulus_controller + class_option :skip_suffix, type: :boolean, default: false def create_component_file - template "component.rb", File.join(component_path, class_path, "#{file_name}_component.rb") + template "component.rb", File.join(component_path, class_path, "#{file_name}#{options[:skip_suffix] ? "" : "_component"}.rb") end hook_for :test_framework diff --git a/lib/rails/generators/component/templates/component.rb.tt b/lib/rails/generators/component/templates/component.rb.tt index 997e5d692..0d70706cf 100644 --- a/lib/rails/generators/component/templates/component.rb.tt +++ b/lib/rails/generators/component/templates/component.rb.tt @@ -1,7 +1,7 @@ # frozen_string_literal: true <% module_namespacing do -%> -class <%= class_name %>Component < <%= parent_class %> +class <%= class_name %><%= options[:skip_suffix] ? "" : "Component" %> < <%= parent_class %> <%- if initialize_signature -%> def initialize(<%= initialize_signature %>) <%= initialize_body %> diff --git a/test/test_engine/test/generators/component_generator_test.rb b/test/test_engine/test/generators/component_generator_test.rb index 63f0307ba..177c62ea1 100644 --- a/test/test_engine/test/generators/component_generator_test.rb +++ b/test/test_engine/test/generators/component_generator_test.rb @@ -17,4 +17,14 @@ def test_component assert_no_match(/def initialize/, component) end end + + def test_component_without_suffix + run_generator %w[example --skip-suffix] + + assert_file "app/components/test_engine/example.rb" do |component| + assert_match(/module TestEngine/, component) + assert_match(/class Example < ViewComponent::Base/, component) + assert_no_match(/def initialize/, component) + end + end end From 853635553bbd5d769119d07892f0ba6c0af78d32 Mon Sep 17 00:00:00 2001 From: KAWAKAMI Moeki Date: Fri, 15 Nov 2024 19:21:43 +0900 Subject: [PATCH 2/5] update changelog --- docs/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c106fb61d..96fa401ca 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -10,6 +10,10 @@ nav_order: 5 ## main +* Add `--skip-suffix` option to component generator + + *KAWAKAMI Moeki* + * Ensure HTML output safety wrapper is used for all inline templates. *Joel Hawksley* From 4968142368ceae539056a44664a4fcdc985b7066 Mon Sep 17 00:00:00 2001 From: KAWAKAMI Moeki Date: Fri, 15 Nov 2024 19:23:27 +0900 Subject: [PATCH 3/5] update docs --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index 42714de77..8551187fb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -230,6 +230,7 @@ ViewComponent is built by over a hundred members of the community, including: tkowalewski chloe-meister zaratan +kawakamimoeki ## Who uses ViewComponent? From 4ceb1addd4944f50e1008498e235e29d890119ea Mon Sep 17 00:00:00 2001 From: KAWAKAMI Moeki Date: Fri, 15 Nov 2024 19:24:50 +0900 Subject: [PATCH 4/5] Remove trailing whitespace --- docs/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 96fa401ca..a8a4e895e 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -11,7 +11,7 @@ nav_order: 5 ## main * Add `--skip-suffix` option to component generator - + *KAWAKAMI Moeki* * Ensure HTML output safety wrapper is used for all inline templates. From 20b62915a922c4690181a7a0e6621d61ea12613e Mon Sep 17 00:00:00 2001 From: Joel Hawksley Date: Wed, 18 Dec 2024 12:12:14 -0700 Subject: [PATCH 5/5] Update docs/CHANGELOG.md --- docs/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cee92a4f6..43e298e83 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -10,7 +10,7 @@ nav_order: 5 ## main -* Add `--skip-suffix` option to component generator +* Add `--skip-suffix` option to component generator. *KAWAKAMI Moeki*