Class: ViteReact::Generators::ScaffoldGenerator
- Inherits:
-
Rails::Generators::ScaffoldControllerGenerator
- Object
- Rails::Generators::ScaffoldControllerGenerator
- ViteReact::Generators::ScaffoldGenerator
- Includes:
- Rails::Generators::ResourceHelpers
- Defined in:
- lib/generators/vite_react/scaffold/scaffold_generator.rb
Instance Method Summary collapse
- #copy_view_files ⇒ Object
- #create_or_update_types ⇒ Object
-
#create_root_folder ⇒ Object
hook_for :controller.
- #generate_interface_code ⇒ Object
Instance Method Details
#copy_view_files ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/generators/vite_react/scaffold/scaffold_generator.rb', line 20 def copy_view_files available_views.each do |view| formats.each do |format| filename = filename_with_extensions(view, format) template filename, File.join("app/views", controller_file_path, filename) end end template "partial.html.erb", File.join("app/views", controller_file_path, "_#{singular_name}.html.erb") end |
#create_or_update_types ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/generators/vite_react/scaffold/scaffold_generator.rb', line 32 def create_or_update_types types_file_path = Rails.root.join("app/javascript/types.d.ts") interface_code = generate_interface_code if File.exist?(types_file_path) append_to_file types_file_path, interface_code else create_file types_file_path, interface_code end end |
#create_root_folder ⇒ Object
hook_for :controller
16 17 18 |
# File 'lib/generators/vite_react/scaffold/scaffold_generator.rb', line 16 def create_root_folder empty_directory File.join("app/views", controller_file_path) end |
#generate_interface_code ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/generators/vite_react/scaffold/scaffold_generator.rb', line 43 def generate_interface_code attributes_lines = attributes.flat_map do |attr| if attr.type == :references build_ts_reference_lines(attr) else [ build_ts_attribute_line(attr) ] end end " // AUTO-GENERATED by rails g scaffold \#{file_name}\n interface \#{class_name} {\n \#{attributes_lines.join(\"\\n\\t\")}\n }\n TS\nend\n" |