rails--rails/lib/action_text/engine.rb

46 lines
1.2 KiB
Ruby

require "rails/engine"
module ActionText
class Engine < Rails::Engine
isolate_namespace ActionText
config.eager_load_namespaces << ActionText
initializer "action_text.attribute" do
ActiveSupport.on_load(:active_record) do
include ActionText::Attribute
end
end
initializer "action_text.active_storage_extension" do
require "active_storage/blob"
class ActiveStorage::Blob
include ActionText::Attachable
def previewable_attachable?
representable?
end
end
end
initializer "action_text.helper" do
ActiveSupport.on_load(:action_controller_base) do
helper ActionText::TagHelper
end
end
initializer "action_text.config" do
config.after_initialize do |app|
ActionText.renderer ||= ApplicationController.renderer
# FIXME: ApplicationController should have a per-request specific renderer
# that's been set with the request.env env, and ActionText should just piggyback off
# that by default rather than doing this work directly.
ApplicationController.before_action do
ActionText.renderer = ActionText.renderer.new(request.env)
end
end
end
end
end