module CKEditor5::Rails::Cdn::Helpers
def build_base_cdn_bundle(cdn, version, translations)
def build_base_cdn_bundle(cdn, version, translations) Cdn::CKEditorBundle.new( Semver.new(version), 'ckeditor5', translations: translations, cdn: cdn ) end
def build_ckbox_cdn_bundle(ckbox)
def build_ckbox_cdn_bundle(ckbox) Cdn::CKBoxBundle.new( Semver.new(ckbox[:version]), theme: ckbox[:theme] || :lark, cdn: ckbox[:cdn] || :ckbox ) end
def build_premium_cdn_bundle(cdn, version, translations)
def build_premium_cdn_bundle(cdn, version, translations) Cdn::CKEditorBundle.new( Semver.new(version), 'ckeditor5-premium-features', translations: translations, cdn: cdn ) end
def ckeditor5_assets(**kwargs)
def ckeditor5_assets(**kwargs) if kwargs[:license_key] && kwargs[:license_key] != 'GPL' ckeditor5_cloud_assets(**kwargs) else ckeditor5_cdn_assets(**kwargs.merge(cdn: Engine.default_preset.cdn)) end end
def ckeditor5_cdn_assets(preset: :default, **kwargs)
def ckeditor5_cdn_assets(preset: :default, **kwargs) merge_with_editor_preset(preset, **kwargs) => { cdn:, version:, translations:, ckbox:, license_key:, premium:, **kwargs } bundle = build_base_cdn_bundle(cdn, version, translations) bundle << build_premium_cdn_bundle(cdn, version, translations) if premium bundle << build_ckbox_cdn_bundle(ckbox) if ckbox @__ckeditor_context = { license_key: license_key, bundle: bundle, preset: preset } Assets::AssetsBundleHtmlSerializer.new(bundle).to_html end
def merge_with_editor_preset(preset, **kwargs)
def merge_with_editor_preset(preset, **kwargs) found_preset = Engine.base.presets[preset] if found_preset.blank? raise ArgumentError, "Poor thing. You forgot to define your #{preset} preset. " \ 'Please define it in initializer. Thank you!' end hash = found_preset.to_h_with_overrides(**kwargs) %i[version type].each do |key| next if hash[key].present? raise ArgumentError, "Poor thing. You forgot to define #{key}. Make sure you passed `#{key}:` parameter to " \ "`ckeditor5_cdn_assets` or defined default one in your `#{preset}` preset!" end hash end