Class: NitroKit::ComponentGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/nitro_kit/component_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_gemsObject



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/generators/nitro_kit/component_generator.rb', line 17

def add_gems
  gems = components.flat_map(&:all_gems)

  return unless gems.any?

  gems.each do |name|
    gem(name) unless has_gem?(name)
  end

  run("bundle install")
end

#copy_base_componentObject



7
8
9
# File 'lib/generators/nitro_kit/component_generator.rb', line 7

def copy_base_component
  copy_file("app/components/nitro_kit/component.rb", "app/components/nitro_kit/component.rb")
end

#copy_component_filesObject



11
12
13
14
15
# File 'lib/generators/nitro_kit/component_generator.rb', line 11

def copy_component_files
  components.map(&:all_files).flatten.uniq.each do |path|
    copy_file(path, path)
  end
end

#install_modulesObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/nitro_kit/component_generator.rb', line 29

def install_modules
  modules = components.flat_map(&:all_modules).uniq

  return unless modules.any?

  case js_strategy
  when :importmaps
    run("bin/importmap pin #{modules.join(" ")}")
  when :yarn
    run("yarn add #{modules.join(" ")}")
  when :npm
    run("npm install --save #{modules.join(" ")}")
  when :bun
    run("bun add #{modules.join(" ")}")
  else
    say("Could not determine JS strategy. Please install one of: npm, yarn, bun, or importmaps")
  end
end