Sha256: 1f50e492d96fddb9d386cf470bd097af60fed4c14cb9ea9aebefe34841e9cf51

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: true

require "rails/engine"
require "primer/classify/utilities"

module Primer
  module ViewComponents
    # :nodoc:
    class Engine < ::Rails::Engine
      isolate_namespace Primer::ViewComponents

      config.autoload_paths = %W[
        #{root}/lib
      ]

      config.eager_load_paths = %W[
        #{root}/app/components
        #{root}/app/lib
      ]

      config.primer_view_components = ActiveSupport::OrderedOptions.new

      config.primer_view_components.raise_on_invalid_options = false
      config.primer_view_components.silence_deprecations = false
      config.primer_view_components.validate_class_names = !Rails.env.production?
      config.primer_view_components.raise_on_invalid_aria = false

      initializer "primer_view_components.assets" do |app|
        app.config.assets.precompile += %w[primer_view_components] if app.config.respond_to?(:assets)
      end

      initializer "primer.forms.eager_load_actions" do
        ActiveSupport.on_load(:after_initialize) do
          if Rails.application.config.eager_load
            Primer::Forms::Base.compile!
            Primer::Forms::Base.descendants.each(&:compile!)
            Primer::Forms::BaseComponent.descendants.each(&:compile!)
          end
        end
      end

      initializer "primer_view_components.zeitwerk_ignore" do
        Rails.autoloaders.each do |autoloader|
          autoloader.ignore(Engine.root.join("lib", "primer", "view_components", "linters.rb"))
          autoloader.ignore(Engine.root.join("lib", "primer", "view_components", "linters", "**", "*.rb"))
          autoloader.ignore(Engine.root.join("lib", "primer", "view_components", "statuses.rb"))
        end
      end

      config.after_initialize do |app|
        ::Primer::Classify::Utilities.validate_class_names = app.config.primer_view_components.delete(:validate_class_names)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
primer_view_components-0.0.86 lib/primer/view_components/engine.rb