module Maglev
def config
def config @config ||= config_klass.new.tap do |c| c.title = 'Maglev - EDITOR' c.favicon = nil c.logo = nil c.primary_color = '#040712' c.uploader = :active_storage c.site_publishable = false c.preview_host = nil c.asset_host = Rails.application.config.asset_host c.ui_locale = nil c.back_action = nil c.services = {} c.default_site_locales = [{ label: 'English', prefix: 'en' }] c.is_authenticated = ->(_site) { !Rails.env.production? } c.admin_username = nil # legacy config c.admin_password = nil # legacy config c.static_pages = [] c.reserved_paths = [] c.parent_controller = 'ApplicationController' c.tailwindcss_folders = [] c.pagination = ::Maglev::DEFAULT_PAGINATION.dup end end
def config_klass
def config_klass ::Maglev::Config end
def configure
def configure config.tap do yield(config) config.reserved_paths = Maglev::ReservedPaths.new(config.reserved_paths) require_relative 'maglev/active_storage' if config.uploader == :active_storage end end
def disable_theme_reloader
def disable_theme_reloader @theme_reloader_disabled = true end
def parent_controller_class
def parent_controller_class (config.parent_controller.presence || 'ApplicationController').constantize end
def services(overrides = {})
def services(overrides = {}) ::Maglev::AppContainer.new(config.services.merge(overrides)).call end
def theme_reloader_enabled?
def theme_reloader_enabled? !@theme_reloader_disabled end
def uploader
def uploader case config.uploader when Symbol then const_get("::Maglev::#{config.uploader.to_s.classify}") when String then const_get(config.uploader) when Class then config.uploader else raise "Invalid or not set uploader: #{config.uploader}" end end
def uploader_proxy_controller_name
def uploader_proxy_controller_name config.uploader == :active_storage ? 'assets/active_storage_proxy' : 'assets/proxy' end
def uuid_as_primary_key?
def uuid_as_primary_key? return @uuid_as_primary_key unless @uuid_as_primary_key.nil? config = Rails.configuration.generators @uuid_as_primary_key = config.options[config.orm][:primary_key_type] == :uuid end