require "rails/engine" require "view_component" module Coco class Engine < ::Rails::Engine isolate_namespace Coco COLLAPSE_DIRS = %w[base] 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}/base/**/*.rb").each do |path| autoloader.collapse(File.dirname(path)) end Dir.glob("#{coco_dir}/{app,book}/{blocks,elements,layouts}/**/*.rb").each do |path| autoloader.collapse(File.dirname(path)) end end Rails.application.config.to_prepare do Rails.autoloaders.main.eager_load_dir(coco_dir) 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