Sha256: fbc4fa433d7dc78d24c7f0c638a4994b514f3c728c60158df92f00609361fbec

Contents?: true

Size: 967 Bytes

Versions: 3

Compression:

Stored size: 967 Bytes

Contents

# frozen_string_literal: true

module CKEditor5::Rails
  module Presets
    module Concerns
      module PluginMethods
        private

        def register_plugin(plugin_obj)
          config[:plugins] << plugin_obj
          plugin_obj
        end

        public

        def external_plugin(name, **kwargs)
          register_plugin(Editor::PropsExternalPlugin.new(name, **kwargs))
        end

        def inline_plugin(name, code)
          register_plugin(Editor::PropsInlinePlugin.new(name, code))
        end

        def plugin(name, **kwargs)
          register_plugin(PluginsBuilder.create_plugin(name, **kwargs))
        end

        def plugins(*names, **kwargs, &block)
          config[:plugins] ||= []

          names.each { |name| plugin(name, **kwargs) } unless names.empty?

          builder = PluginsBuilder.new(config[:plugins])
          builder.instance_eval(&block) if block_given?
          builder
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ckeditor5-1.18.3 lib/ckeditor5/rails/presets/concerns/plugin_methods.rb
ckeditor5-1.18.1 lib/ckeditor5/rails/presets/concerns/plugin_methods.rb
ckeditor5-1.18.0 lib/ckeditor5/rails/presets/concerns/plugin_methods.rb