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 = "      \\n\n      @import \"tailwindcss/base\";\n      @import \"tailwindcss/components\";\n      @import \"tailwindcss/utilities\";\n    RUBY\n\n    append_to_file \"app/javascript/stylesheets/application.scss\", stylesheet_tailwind_imports\n  else\n    say \"Copying application.scss with Tailwind imports\", :green\n    template(\"application.scss\", \"app/javascript/stylesheets/application.scss\")\n  end\nend\n"

#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", "    \\t\\trequire('tailwindcss'),\n  RUBY\nend\n", after: /plugins:\s+\[\n/

#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 = "      \\n\n      import \"stylesheets/application\"\n    RUBY\n\n    append_to_file \"app/javascript/packs/application.js\", stylesheet_tailwind_imports\n  else\n    say <<~WARNING, :red\n      ERROR: Looks like the webpacker installation is incomplete. Could not find application.js in app/javascript/packs.\n    WARNING\n  end\nend\n"

#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", "    \\t\\t<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>\n  RUBY\nend\n", after: /stylesheet_link_tag.*\n/

#show_readmeObject



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

def show_readme
  readme "README"
end