In Rails 6.1, the classic autoloader is deprecated. We were getting an error because we were using `autoload` in the ActiveStorage plugin for CKEditor: expected file app/lib/ckeditor/backend/active_storage.rb to define constant Ckeditor::Backend::ActiveStorage So we're removing the line causing the error. Finally, we can now restore all the tests that that failed sometimes with the classic autoloader and that we modified in commits2af1fc72fand8ba37b295.
72 lines
1.8 KiB
Ruby
72 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Code copied from the ckeditor gem:
|
|
# https://github.com/galetahub/ckeditor/pull/853
|
|
module Ckeditor
|
|
module Backend
|
|
module ActiveStorage
|
|
def self.included(base)
|
|
base.send(:include, Rails.application.routes.url_helpers)
|
|
base.send(:include, InstanceMethods)
|
|
base.send(:extend, ClassMethods)
|
|
end
|
|
|
|
module ClassMethods
|
|
def self.extended(base)
|
|
base.class_eval do
|
|
before_validation :apply_data
|
|
validate do
|
|
if data.nil? || file.nil?
|
|
errors.add(:data, :not_data_present, message: "data must be present")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
module InstanceMethods
|
|
def url
|
|
rails_blob_path(self.storage_data, only_path: true)
|
|
end
|
|
|
|
def path
|
|
rails_blob_path(self.storage_data, only_path: true)
|
|
end
|
|
|
|
def styles
|
|
end
|
|
|
|
def content_type
|
|
self.storage_data.content_type
|
|
end
|
|
|
|
def content_type=(_content_type)
|
|
self.storage_data.content_type = _content_type
|
|
end
|
|
|
|
protected
|
|
|
|
def file
|
|
@file ||= storage_data
|
|
end
|
|
|
|
def blob
|
|
@blob ||= ::ActiveStorage::Blob.find(file.attachment.blob_id)
|
|
end
|
|
|
|
def apply_data
|
|
if data.is_a?(Ckeditor::Http::QqFile)
|
|
storage_data.attach(io: data, filename: data.original_filename)
|
|
else
|
|
storage_data.attach(data)
|
|
end
|
|
|
|
self.data_file_name = storage_data.blob.filename
|
|
self.data_content_type = storage_data.blob.content_type
|
|
self.data_file_size = storage_data.blob.byte_size
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|