Sha256: 7099720c8252e2897471ae3b02f5386cbc5050a72ad904341021cd17f08dfc8f

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

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

		APPLICATION_CONFIGURATION_PATH = Rails.root.join("config/application.rb")

		def configure_tailwind
			if tailwind_configuration_path
				insert_into_file tailwind_configuration_path, after: "content: [" do
					"\n    './app/views/**/*.rb', // Phlex views" \
					"\n    './app/components/**/*.rb', // Phlex components" \
				end
			end
		end

		def create_application_component
			template "base_component.rb.erb", Rails.root.join("app/components/base.rb")
		end

		def create_application_view
			template "base_view.rb.erb", Rails.root.join("app/views/base.rb")
		end

		def create_hello_component
			template "hello_component.rb.erb", Rails.root.join("app/components/hello.rb")
		end

		def create_initializer
			template "phlex.rb.erb", Rails.root.join("config/initializers/phlex.rb")
		end

		private

		def tailwind_configuration_path
			if tailwind_configuration_files.any?
				Pathname.new(
					tailwind_configuration_files.first,
				)
			end
		end

		def tailwind_configuration_files
			Dir.glob(
				[
					"#{Rails.root}/tailwind.config.js",
					"#{Rails.root}/app/**/tailwind.config.js",
					"#{Rails.root}/config/**/tailwind.config.js",
				],
			)
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
phlex-rails-2.0.0.beta1 lib/generators/phlex/install/install_generator.rb