Class: Rolemodel::Turbo::ReadyGenerator

Inherits:
GeneratorBase
  • Object
show all
Defined in:
lib/generators/rolemodel/turbo/ready/ready_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_javascript_initializerObject



6
7
8
9
10
11
12
13
14
# File 'lib/generators/rolemodel/turbo/ready/ready_generator.rb', line 6

def add_javascript_initializer
  say 'generating & importing morph event handlers', :green

  directory 'app/javascript/initializers'

  append_to_file 'app/javascript/application.js', <<~JS
    import './initializers/before_morph_handler.js'
  JS
end

#add_stimulus_controllerObject



16
17
18
19
20
21
22
# File 'lib/generators/rolemodel/turbo/ready/ready_generator.rb', line 16

def add_stimulus_controller
  say 'adding prevent-morph controller & updating manifest', :green

  directory 'app/javascript/controllers'

  rails_command 'stimulus:manifest:update'
end

#inject_head_outletObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/generators/rolemodel/turbo/ready/ready_generator.rb', line 35

def inject_head_outlet
  say 'adding head outlet to head partial', :green

  append_to_file 'app/views/application/_head.html.slim' do
    optimize_indentation <<~SLIM

      = yield :head
    SLIM
  end
end

#inject_meta_tagsObject



24
25
26
27
28
29
30
31
32
33
# File 'lib/generators/rolemodel/turbo/ready/ready_generator.rb', line 24

def inject_meta_tags
  say 'adding meta tags to head partial', :green

  inject_into_file 'app/views/application/_head.html.slim', after: /meta name="viewport".*\n/ do
    optimize_indentation <<~SLIM
      meta name="turbo-refresh-method" content="morph"
      meta name="turbo-refresh-scroll" content="preserve"
    SLIM
  end
end