Class: RailsVite::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/rails_vite/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_entrypointObject



17
18
19
20
21
# File 'lib/generators/rails_vite/install/install_generator.rb', line 17

def create_entrypoint
  unless File.exist?("app/javascript/application.js")
    create_file "app/javascript/application.js", "// Entry point for Vite\n"
  end
end

#create_vite_configObject



13
14
15
# File 'lib/generators/rails_vite/install/install_generator.rb', line 13

def create_vite_config
  template "vite.config.ts.tt", "vite.config.ts"
end

#doneObject



61
62
63
64
# File 'lib/generators/rails_vite/install/install_generator.rb', line 61

def done
  say ""
  say "Vite installed! Run `bin/dev` to start development.", :green
end

#install_dependenciesObject



8
9
10
11
# File 'lib/generators/rails_vite/install/install_generator.rb', line 8

def install_dependencies
  say "Installing Vite and rails-vite-plugin..."
  run RailsVite::Tasks.add_command("vite", "rails-vite-plugin")
end

#setup_bin_devObject



56
57
58
59
# File 'lib/generators/rails_vite/install/install_generator.rb', line 56

def setup_bin_dev
  copy_file "bin/dev", "bin/dev"
  chmod "bin/dev", 0o755
end

#setup_procfileObject



46
47
48
49
50
51
52
53
54
# File 'lib/generators/rails_vite/install/install_generator.rb', line 46

def setup_procfile
  if File.exist?("Procfile.dev")
    unless File.read("Procfile.dev").include?("vite")
      append_to_file "Procfile.dev", "js: #{vite_dev_command}\n"
    end
  else
    template "Procfile.dev.tt", "Procfile.dev"
  end
end

#update_gitignoreObject



23
24
25
26
27
28
29
30
31
# File 'lib/generators/rails_vite/install/install_generator.rb', line 23

def update_gitignore
  return if File.read(".gitignore").include?("public/vite")

  append_to_file ".gitignore", <<~GITIGNORE

    # Vite
    /public/vite
  GITIGNORE
end

#update_layoutObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/generators/rails_vite/install/install_generator.rb', line 33

def update_layout
  layout_path = "app/views/layouts/application.html.erb"
  return unless File.exist?(layout_path)

  gsub_file layout_path,
    /<%=\s*javascript_include_tag\s+["']application["'].*%>/,
    '<%= vite_tags "application" %>'

  gsub_file layout_path,
    /<%=\s*stylesheet_link_tag\s+["']application["'].*%>/,
    '<%= vite_tags "application.css" %>'
end