Class: ReactOnRails::Generators::RscGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
GeneratorHelper, JsDependencyManager, RscSetup
Defined in:
lib/generators/react_on_rails/rsc_generator.rb

Constant Summary

Constants included from RscSetup

ReactOnRails::Generators::RscSetup::DEFAULT_LAYOUT_NAME, ReactOnRails::Generators::RscSetup::LEGACY_LAYOUT_NAME, ReactOnRails::Generators::RscSetup::MAX_LAYOUT_NAME_ATTEMPTS, ReactOnRails::Generators::RscSetup::RSC_FALLBACK_LAYOUT_NAME, ReactOnRails::Generators::RscSetup::RSC_GENERATED_LAYOUT_NAME_PATTERN

Constants included from JsDependencyManager

JsDependencyManager::BABEL_REACT_DEPENDENCIES, JsDependencyManager::CSS_DEPENDENCIES, JsDependencyManager::DEV_DEPENDENCIES, JsDependencyManager::PRO_DEPENDENCIES, JsDependencyManager::REACT_DEPENDENCIES, JsDependencyManager::RSC_DEPENDENCIES, JsDependencyManager::RSPACK_DEPENDENCIES, JsDependencyManager::RSPACK_DEV_DEPENDENCIES, JsDependencyManager::SWC_DEPENDENCIES, JsDependencyManager::TYPESCRIPT_DEPENDENCIES

Class Method Summary collapse

Instance Method Summary collapse

Methods included from RscSetup

#setup_rsc, #warn_about_react_version_for_rsc

Methods included from GeneratorHelper

#add_documentation_reference, #add_npm_dependencies, #component_extension, #copy_file_and_missing_parent_directories, #dest_dir_exists?, #dest_file_exists?, #destination_config_path, #detect_react_version, #empty_directory_with_keep_file, #gem_in_lockfile?, #keep_file, #mark_pro_gem_installed!, #package_json, #print_generator_messages, #pro_gem_installed?, #resolve_server_client_or_both_path, #setup_file_error, #shakapacker_version_9_or_higher?, #symlink_dest_file_to_dest_file, #use_pro?, #using_rspack?, #using_swc?

Class Method Details

.usage_pathObject



18
19
20
# File 'lib/generators/react_on_rails/rsc_generator.rb', line 18

def self.usage_path
  File.expand_path("rsc/USAGE", __dir__)
end

Instance Method Details

#run_generatorObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/generators/react_on_rails/rsc_generator.rb', line 35

def run_generator
  # When invoked by install_generator, skip prerequisites (parent already validated)
  if options[:invoked_by_install] || prerequisites_met?
    warn_about_react_version_for_rsc(force: true)
    setup_rsc
    add_rsc_npm_dependencies
    print_success_message unless options[:invoked_by_install]
  else
    GeneratorMessages.add_error(<<~MSG.strip)
      🚫 React on Rails RSC generator prerequisites not met!

      Please resolve the issues listed above before continuing.
    MSG
  end
ensure
  print_generator_messages unless options[:invoked_by_install]
end