Sha256: 6b24d957f1d6704468334117f45ea74d3a773a16210ea143ec86d8a9c09a26ea

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module AdministrateTailwindTheme
  class InstallGenerator < Rails::Generators::Base
    source_root File.expand_path('templates', __dir__)

    def create_initializer
      initializer 'administrate_tailwind_theme.rb', <<~FILE
        require 'administrate'
        Administrate::Engine.stylesheets.clear # required to remove Administrate base styles
      FILE
    end

    def create_or_update_administrate_layout
      tailwind_config_path = 'config/tailwind.config.js'

      insert_tailwind_config(tailwind_config_path)
    end

    private

    def insert_tailwind_config(file_path)
      js_import     = "\nconst execSync = require('child_process').execSync;"
      child_process = "\nconst output = execSync('bundle show administrate_tailwind_theme', { encoding: 'utf-8' });"
      config        = "\n    output.trim() + '/app/views/**/*.{erb,haml,html,rb}',"

      insert_into_file file_path, js_import,
                       after: "const defaultTheme = require('tailwindcss/defaultTheme')"
      insert_into_file file_path, child_process,
                       after: "const execSync = require('child_process').execSync;"
      insert_into_file file_path, config,
                       after: 'content: ['
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
administrate_tailwind_theme-0.0.3 lib/generators/administrate_tailwind_theme/install/install_generator.rb
administrate_tailwind_theme-0.0.2 lib/generators/administrate_tailwind_theme/install/install_generator.rb
administrate_tailwind_theme-0.0.1 lib/generators/administrate_tailwind_theme/install/install_generator.rb