Class: AtomicView::InstallGenerator

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

Constant Summary collapse

IMPORT =
'@import "../builds/tailwind/atomic_view.css";'.freeze

Instance Method Summary collapse

Instance Method Details

#add_atomic_view_js_controllersObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/atomic_view/install_generator.rb', line 26

def add_atomic_view_js_controllers
  return if options[:update_tailwind_only]

  controllers_path = Rails.root.join('app/javascript/controllers/index.js')
  if controllers_path.exist? && controllers_path.read.include?('eagerLoadControllersFrom("controllers", application)')
    if controllers_path.read.include?('eagerLoadControllersFrom("atomic_view", application)')
      puts '`app/javascript/controllers/index.js` already contains `eagerLoadControllersFrom("atomic_view", application)`'
    else
      insert_into_file controllers_path, after: 'eagerLoadControllersFrom("controllers", application)' do
        "\neagerLoadControllersFrom(\"atomic_view\", application)\n"
      end
    end
  else
    puts '`app/javascript/controllers/index.js` does not exist or does not contain `eagerLoadControllersFrom("controllers", application)`'
  end
end

#add_atomic_view_tailwindObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/atomic_view/install_generator.rb', line 9

def add_atomic_view_tailwind
  return if options[:update_tailwind_only]

  tailwind_path = Rails.root.join('app/assets/tailwind/application.css')
  unless tailwind_path.exist?
    raise '`app/assets/tailwind/application.css` does not exist'
  end

  if tailwind_path.read.include?(IMPORT)
    puts "`app/assets/tailwind/application.css` already contains `#{IMPORT}`"
  else
    insert_into_file tailwind_path, after: '@import "tailwindcss";' do
      "\n#{IMPORT}\n"
    end
  end
end