Class: Boring::Tailwind::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_or_import_stylesheet_for_tailwindObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 32

def add_or_import_stylesheet_for_tailwind
  if File.exist?("app/javascript/stylesheets/application.scss")
    say "Add TailwindCSS imports to the application.scss", :green
    stylesheet_tailwind_imports = <<~RUBY
      \n
      @import "tailwindcss/base";
      @import "tailwindcss/components";
      @import "tailwindcss/utilities";
    RUBY

    append_to_file "app/javascript/stylesheets/application.scss", stylesheet_tailwind_imports
  else
    say "Copying application.scss with Tailwind imports", :green
    template("application.scss", "app/javascript/stylesheets/application.scss")
  end
end

#add_tailwind_packageObject



12
13
14
15
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 12

def add_tailwind_package
  say "Adding tailwind package", :green
  run "yarn add tailwindcss@latest postcss@latest autoprefixer@latest"
end

#create_tailwind_configObject



17
18
19
20
21
22
23
24
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 17

def create_tailwind_config
  say "Initailizing tailwind configuration", :green
  if options[:skip_tailwind_init_full]
    run "yarn tailwindcss init"
  else
    run "yarn tailwindcss init --full"
  end
end

#include_tailwind_to_postcss_configObject



26
27
28
29
30
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 26

def include_tailwind_to_postcss_config
  insert_into_file "postcss.config.js", <<~RUBY, after: /plugins:\s+\[\n/
    \t\trequire('tailwindcss'),
  RUBY
end

#insert_stylesheet_in_the_applicationObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 49

def insert_stylesheet_in_the_application
  if File.exist?("app/javascript/packs/application.js")
    stylesheet_tailwind_imports = <<~RUBY
      \n
      import "stylesheets/application"
    RUBY

    append_to_file "app/javascript/packs/application.js", stylesheet_tailwind_imports
  else
    say <<~WARNING, :red
      ERROR: Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs.
    WARNING
  end
end

#insert_stylesheet_packs_tagObject



64
65
66
67
68
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 64

def insert_stylesheet_packs_tag
  insert_into_file "app/views/layouts/application.html.erb", <<~RUBY, after: /stylesheet_link_tag.*\n/
    \t\t<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
  RUBY
end

#show_readmeObject



70
71
72
# File 'lib/generators/boring/tailwind/install/install_generator.rb', line 70

def show_readme
  readme "README"
end