Class: Develoz::Generators::UiGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/develoz/ui/ui_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_gem, #app_class, #app_name, #append_env, #apply_template, #ensure_gitignore, #inject_once, #insert_route, #migration_exists?, next_migration_timestamp

Class Method Details

.source_rootObject



8
9
10
# File 'lib/generators/develoz/ui/ui_generator.rb', line 8

def self.source_root
  File.expand_path("templates", __dir__)
end

Instance Method Details

#add_develoz_ui_gemsObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/generators/develoz/ui/ui_generator.rb', line 12

def add_develoz_ui_gems
  inject_once(
    into: "Gemfile",
    content: <<~RUBY
      group :development, :test do
        gem "develoz_ui", path: "vendor/develoz-ui"
      end

      group :production do
        gem "develoz_ui", github: "develoz-com/develoz-ui"
      end
    RUBY
  )
end

#create_gitmodulesObject



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/generators/develoz/ui/ui_generator.rb', line 27

def create_gitmodules
  gitmodules_path = File.join(destination_root, ".gitmodules")
  File.write(gitmodules_path, "") unless File.exist?(gitmodules_path)

  inject_once(
    into: ".gitmodules",
    content: "[submodule \"vendor/develoz-ui\"]\n" \
             "\tpath = vendor/develoz-ui\n" \
             "\turl = git@github.com:develoz-com/develoz-ui.git"
  )
end

#create_setup_scriptObject



39
40
41
42
43
# File 'lib/generators/develoz/ui/ui_generator.rb', line 39

def create_setup_script
  template "bin/setup_develoz_ui.tt", "bin/setup_develoz_ui"
  dest = File.join(destination_root, "bin/setup_develoz_ui")
  File.chmod(0o755, dest)
end

#inject_importmap_pinsObject



45
46
47
48
49
50
51
52
53
54
# File 'lib/generators/develoz/ui/ui_generator.rb', line 45

def inject_importmap_pins
  inject_once(
    into: "config/importmap.rb",
    content: <<~RUBY
      # develoz-ui Stimulus controllers
      pin "develoz-ui", to: "develoz-ui/index.js"
      pin_all_from "vendor/develoz-ui/app/javascript/controllers", under: "develoz-ui/controllers"
    RUBY
  )
end