Class: Rolemodel::UiComponents::NavbarGenerator

Inherits:
GeneratorBase
  • Object
show all
Defined in:
lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_shoelace_javascript_importsObject



31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb', line 31

def add_shoelace_javascript_imports
  say 'Copying Shoelace JS imports', :green

  copy_file 'app/javascript/lib/shoelace.js'
  append_to_file 'app/javascript/application.js' do
    <<~JS
      import './lib/shoelace.js'
    JS
  end
end

#copy_navbar_filesObject



8
9
10
11
12
# File 'lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb', line 8

def copy_navbar_files
  say 'Copying Navbar files', :green

  copy_file 'app/views/layouts/_navbar.html.slim'
end

#copy_shoelace_css_importsObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb', line 42

def copy_shoelace_css_imports
  say 'Copying Shoelace CSS imports', :green

  copy_file 'app/assets/stylesheets/components/shoelace/index.scss'
  append_to_file 'app/assets/stylesheets/application.scss' do
    <<~SCSS
      @import 'components/shoelace/index.scss';
    SCSS
  end
end

#insert_navbar_before_contentObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb', line 14

def insert_navbar_before_content
  say 'Inserting Navbar render tag', :green

  insert_into_file 'app/views/layouts/application.html.slim', before: /\s+\.app__content/ do
    optimize_indentation <<~SLIM, 4

      = render 'layouts/navbar'
    SLIM
  end
end

#install_shoelaceObject



25
26
27
28
29
# File 'lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb', line 25

def install_shoelace
  say 'Installing Shoelace package', :green

  run 'yarn add @shoelace-style/shoelace'
end