Sha256: 3a23b1569eff932c24a5aa032a539e037d0b3d8c58e398dc46ef0f344841bdaf

Contents?: true

Size: 1.92 KB

Versions: 5

Compression:

Stored size: 1.92 KB

Contents

require_relative "../base_generator"

module Generators
  module Avo
    module Tailwindcss
      class InstallGenerator < BaseGenerator
        source_root File.expand_path("../templates", __dir__)

        namespace "avo:tailwindcss:install"
        desc "Add Tailwindcss to your Avo project."

        def create_files
          unless tailwindcss_installed?
            system "./bin/bundle add tailwindcss-rails"
            system "./bin/rails tailwindcss:install"
          end

          unless Rails.root.join("app", "assets", "stylesheets", "avo.tailwind.css").exist?
            say "Add default app/assets/stylesheets/avo.tailwind.css"
            copy_file template_path("avo.tailwind.css"), "app/assets/stylesheets/avo.tailwind.css"
          end

          if Rails.root.join("Procfile.dev").exist?
            append_to_file "Procfile.dev", "css: bin/rails avo:tailwindcss:watch\n"
          else
            say "Add default Procfile.dev"
            copy_file template_path("Procfile.dev"), "Procfile.dev"

            say "Ensure foreman is installed"
            run "gem install foreman"
          end

          append_to_file "Procfile.dev", "avo_css: bin/rails tailwindcss:watch\n"

          say "Ejecting the _head.html.erb partial"
          Rails::Generators.invoke("avo:eject", [":head", "--no-avo-version"], {destination_root: Rails.root})

          say "Adding the CSS asset to the partial"
          prepend_to_file Rails.root.join("app", "views", "avo", "partials", "_head.html.erb"), "<%= stylesheet_link_tag \"avo.tailwind.css\", media: \"all\" %>"
        end

        no_tasks do
          def template_path(filename)
            Pathname.new(__dir__).join("..", "templates", "tailwindcss", filename).to_s
          end

          def tailwindcss_installed?
            Rails.root.join("config", "tailwind.config.js").exist? || Rails.root.join("tailwind.config.js").exist?
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
avo-2.15.0 lib/generators/avo/tailwindcss/install_generator.rb
avo-2.14.3.pre.7.polytranslations1 lib/generators/avo/tailwindcss/install_generator.rb
avo-2.14.3.pre.6.nosprockets lib/generators/avo/tailwindcss/install_generator.rb
avo-2.14.3.pre.5.nosprockets lib/generators/avo/tailwindcss/install_generator.rb
avo-2.14.3.pre.2.tailwindcss lib/generators/avo/tailwindcss/install_generator.rb