module SvelteOnRails::Installer::Utils
def self.install_turbo
def self.install_turbo pkg_js = Rails.root.join("package.json") package_name = "@hotwired/turbo-rails" file_content = File.exist?(pkg_js) ? File.read(pkg_js) : "" if file_content.match?(/#{package_name}/) puts "#{package_name} is already present in package.json, assuming that it is set up well and working." else puts "Installing #{package_name} via npm..." if system("npm install #{package_name}") puts "#{package_name} successfully installed." add_line_to_file(Rails.root.join("app", "frontend", "entrypoints", "application.js"), "import '#{package_name}';") else abort "Failed to install #{package_name}. Please ensure npm is installed and try running 'npm install #{package_name}' manually." end end end