Class: TailwinduiRails::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#configure_postcssrcObject



32
33
34
35
# File 'lib/generators/tailwindui_rails/install_generator.rb', line 32

def configure_postcssrc
  inject_into_file "postcss.config.js", "    require('tailwindcss'),\n", after: "require('postcss-import'),\n"
  inject_into_file "postcss.config.js", "    require('autoprefixer'),\n", after: "plugins: [\n"
end

#init_tailwindcss_and_add_tailwinduiObject



14
15
16
17
18
19
# File 'lib/generators/tailwindui_rails/install_generator.rb', line 14

def init_tailwindcss_and_add_tailwindui
  run "./node_modules/.bin/tailwind init ./tailwind.config.js"
  prepend_to_file  "./tailwind.config.js", "const defaultTheme = require('tailwindcss/defaultTheme');\n\n"
  inject_into_file "./tailwind.config.js", "\n      fontFamily: {\nsans: ['Inter var', ...defaultTheme.fontFamily.sans],\n}", after: "extend: {"
  inject_into_file "./tailwind.config.js", "\n    require('@tailwindcss/ui'),\n", after: "plugins: ["
end

#remove_corejs_3Object



37
38
39
# File 'lib/generators/tailwindui_rails/install_generator.rb', line 37

def remove_corejs_3
  gsub_file "babel.config.js", /regenerator: true,\n          corejs: 3/, "regenerator: true,"
end

#setup_tailwindcssObject



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

def setup_tailwindcss
  template "tailwind.css", "app/javascript/stylesheets/application.scss"
  append_to_file "app/javascript/packs/application.js", 'import "stylesheets/application.scss"'
  run "rm -rf app/assets/stylesheets/application.css"
end

#update_application_layoutObject



21
22
23
24
# File 'lib/generators/tailwindui_rails/install_generator.rb', line 21

def update_application_layout
  gsub_file "app/views/layouts/application.html.erb", /stylesheet_link_tag/, "stylesheet_pack_tag"
  inject_into_file "app/views/layouts/application.html.erb", '    <script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.js" defer></script>', after: "<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>\n"
end

#yarn_add_tailwindcss_and_uiObject



10
11
12
# File 'lib/generators/tailwindui_rails/install_generator.rb', line 10

def yarn_add_tailwindcss_and_ui
  run "yarn --ignore-engines add [email protected] @tailwindcss/ui --tilde"
end