require "rails/engine" require "action_cable/engine" require "view_component" require "turbo-rails" module Coco class Engine < ::Rails::Engine isolate_namespace Coco COLLAPSE_DIRS = %w[shared layout messaging pickers buttons modals navigation utilities typography images indicators embeds] config.autoload_paths += %W[ #{root}/app/components #{root}/app/helpers ] initializer "coco.autoloading" do |app| coco_dir = "#{root}/app/components/coco" app.autoloaders.each do |autoloader| COLLAPSE_DIRS.each do |path| autoloader.collapse("#{coco_dir}/#{path}") end Dir.glob("#{coco_dir}/{#{COLLAPSE_DIRS.join(",")}}/**/*.rb").each do |path| autoloader.collapse(File.dirname(path)) end end if Rails.env.production? Rails.application.config.to_prepare do Rails.autoloaders.main.eager_load_dir(coco_dir) end end end initializer "coco.assets" do |app| if app.config.respond_to?(:assets) app.config.assets.precompile += %w[coco/manifest.js *.svg] end end end end