# frozen_string_literal: true module Alchemy class Engine < Rails::Engine isolate_namespace Alchemy engine_name "alchemy" config.mount_at = "/" initializer "alchemy.lookup_context" do Alchemy::LOOKUP_CONTEXT = ActionView::LookupContext.new(Rails.root.join("app", "views", "alchemy")) end initializer "alchemy.dependency_tracker" do [:erb, :slim, :haml].each do |handler| ActionView::DependencyTracker.register_tracker(handler, CacheDigests::TemplateTracker) end end initializer "alchemy.non_digest_assets" do NonStupidDigestAssets.whitelist += [/^tinymce\//] end # Gutentag downcases all tgas before save. # We support having tags with uppercase characters. # The Gutentag search is case insensitive. initializer "alchemy.gutentag_normalizer" do Gutentag.normaliser = ->(value) { value.to_s } end # Custom Ransack sort arrows initializer "alchemy.ransack" do Ransack.configure do |config| config.custom_arrows = { up_arrow: '', down_arrow: '', } end end initializer "alchemy.userstamp" do if Alchemy.user_class ActiveSupport.on_load(:active_record) do Alchemy.user_class.model_stamper Alchemy.user_class.stampable(stamper_class_name: Alchemy.user_class.name) end end end initializer "alchemy.webp-mime_type" do # Rails does not know anything about webp even in 2022 unless Mime::Type.lookup_by_extension(:webp) Mime::Type.register("image/webp", :webp) end # Dragonfly uses Rack to read the mime type and guess what unless Rack::Mime::MIME_TYPES[".webp"] Rack::Mime::MIME_TYPES[".webp"] = "image/webp" end end initializer "alchemy.error_tracking" do if defined?(Airbrake) require_relative "error_tracking/airbrake_handler" Alchemy::ErrorTracking.notification_handler = Alchemy::ErrorTracking::AirbrakeHandler end end end end