class ViewComponent::Config
def default_generate_options
def default_generate_options options = ActiveSupport::OrderedOptions.new(false) options.preview_path = "" options.path = "app/components" options end
def default_preview_paths
def default_preview_paths (default_rails_preview_paths + default_rails_engines_preview_paths).uniq end
def default_previews_options
def default_previews_options options = ActiveSupport::OrderedOptions.new options.controller = "ViewComponentsController" options.route = "/rails/view_components" options.enabled = Rails.env.development? || Rails.env.test? options.default_layout = nil options.paths = default_preview_paths options end
def default_rails_engines_preview_paths
def default_rails_engines_preview_paths return [] unless defined?(Rails::Engine) registered_rails_engines_with_previews.map do |descendant| "#{descendant.root}/test/components/previews" end end
def default_rails_preview_paths
def default_rails_preview_paths return [] unless defined?(Rails.root) && Dir.exist?("#{Rails.root}/test/components/previews") ["#{Rails.root}/test/components/previews"] end
def defaults
def defaults ActiveSupport::OrderedOptions.new.merge!({ generate: default_generate_options, previews: default_previews_options, instrumentation_enabled: false }) end
def initialize
def initialize @config = self.class.defaults end
def registered_rails_engines_with_previews
def registered_rails_engines_with_previews Rails::Engine.descendants.select do |descendant| defined?(descendant.root) && Dir.exist?("#{descendant.root}/test/components/previews") end end