Sha256: 0121b26d54ea481c5dfae24f31e103f13835f7d4cd569542309103f6b50f0980

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

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

        Dir.glob("#{coco_dir}/{app,book}/**/*.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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
coveragebook_components-0.16.0 lib/coco/engine.rb
coveragebook_components-0.15.0 lib/coco/engine.rb
coveragebook_components-0.14.0 lib/coco/engine.rb
coveragebook_components-0.13.1 lib/coco/engine.rb
coveragebook_components-0.13.0 lib/coco/engine.rb