ckeditor5 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ckeditor5/rails/engine.rb +2 -5
- data/lib/ckeditor5/rails/{presets_manager.rb → presets/manager.rb} +5 -2
- data/lib/ckeditor5/rails/presets/preset_builder.rb +127 -0
- data/lib/ckeditor5/rails/{toolbar_builder.rb → presets/toolbar_builder.rb} +1 -1
- data/lib/ckeditor5/rails/version.rb +1 -1
- metadata +4 -4
- data/lib/ckeditor5/rails/preset_builder.rb +0 -125
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a512b289e611ca5d7480b5088b14f83ed459481b6f99f0c15b4467e627c464e7
|
4
|
+
data.tar.gz: dc3969b71fd184b7e9bc39a95fc7d0702280203c940197925d8e8f8d17d22a50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3491c052e7e736f1ed484a67eaf7fae034fd73874977c4bcfd671295e5fe5d9673d7c27845df6877fb527a4a29763ad3529c58e30fcee893f8a174fe066ac84
|
7
|
+
data.tar.gz: e579d1032b12e79d265da252ad74af5b090922aeb0eb4d68ab12c252d9ed173ec9b1f5e4cc904f4fcc62c4dbc0cb20b4b79ae87ee9cfff40afc33b1497caf464
|
@@ -2,16 +2,13 @@
|
|
2
2
|
|
3
3
|
require 'rails/engine'
|
4
4
|
|
5
|
-
require_relative '
|
6
|
-
require_relative 'preset_builder'
|
7
|
-
require_relative 'presets_manager'
|
8
|
-
|
5
|
+
require_relative 'presets/manager'
|
9
6
|
require_relative 'hooks/form'
|
10
7
|
|
11
8
|
module CKEditor5::Rails
|
12
9
|
class Engine < ::Rails::Engine
|
13
10
|
config.ckeditor5 = ActiveSupport::OrderedOptions.new
|
14
|
-
config.ckeditor5.presets =
|
11
|
+
config.ckeditor5.presets = Presets::Manager.new
|
15
12
|
|
16
13
|
initializer 'helper' do
|
17
14
|
ActiveSupport.on_load(:action_view) { include Helpers }
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CKEditor5::Rails
|
4
|
+
module Presets
|
5
|
+
class PresetBuilder
|
6
|
+
attr_reader :config
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@version = nil
|
10
|
+
@premium = false
|
11
|
+
@cdn = :jsdelivr
|
12
|
+
@translations = []
|
13
|
+
@license_key = nil
|
14
|
+
@type = :classic
|
15
|
+
@ckbox = nil
|
16
|
+
@config = {
|
17
|
+
plugins: [],
|
18
|
+
toolbar: []
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_h_with_overrides(**overrides)
|
23
|
+
{
|
24
|
+
version: overrides.fetch(:version, version),
|
25
|
+
premium: overrides.fetch(:premium, premium),
|
26
|
+
cdn: overrides.fetch(:cdn, cdn),
|
27
|
+
translations: overrides.fetch(:translations, translations),
|
28
|
+
license_key: overrides.fetch(:license_key, license_key),
|
29
|
+
type: overrides.fetch(:type, type),
|
30
|
+
ckbox: overrides.fetch(:ckbox, ckbox),
|
31
|
+
config: config.merge(overrides.fetch(:config, {}))
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
def ckbox(version = nil, theme: :lark)
|
36
|
+
return @ckbox if version.nil?
|
37
|
+
|
38
|
+
@ckbox = { version: version, theme: theme }
|
39
|
+
end
|
40
|
+
|
41
|
+
def license_key(license_key = nil)
|
42
|
+
return @license_key if license_key.nil?
|
43
|
+
|
44
|
+
@license_key = license_key
|
45
|
+
end
|
46
|
+
|
47
|
+
def gpl
|
48
|
+
license_key('GPL')
|
49
|
+
premium(false)
|
50
|
+
end
|
51
|
+
|
52
|
+
def premium(premium = nil)
|
53
|
+
return @premium if premium.nil?
|
54
|
+
|
55
|
+
@premium = premium
|
56
|
+
end
|
57
|
+
|
58
|
+
def translations(*translations)
|
59
|
+
return @translations if translations.empty?
|
60
|
+
|
61
|
+
@translations = translations
|
62
|
+
end
|
63
|
+
|
64
|
+
def version(version = nil)
|
65
|
+
return @version.to_s if version.nil?
|
66
|
+
|
67
|
+
@version = Semver.new(version)
|
68
|
+
end
|
69
|
+
|
70
|
+
def cdn(cdn = nil)
|
71
|
+
return @cdn if cdn.nil?
|
72
|
+
|
73
|
+
@cdn = cdn
|
74
|
+
end
|
75
|
+
|
76
|
+
def type(type = nil)
|
77
|
+
return @type if type.nil?
|
78
|
+
raise ArgumentError, "Invalid editor type: #{type}" unless Editor::Props.valid_editor_type?(type)
|
79
|
+
|
80
|
+
@type = type
|
81
|
+
end
|
82
|
+
|
83
|
+
def configure(key, value)
|
84
|
+
@config[key] = value
|
85
|
+
end
|
86
|
+
|
87
|
+
def menubar(visible: true)
|
88
|
+
@config[:menuBar] = {
|
89
|
+
isVisible: visible
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
93
|
+
def toolbar(*items, should_group_when_full: true, &block)
|
94
|
+
if @config[:toolbar].blank? || !items.empty?
|
95
|
+
@config[:toolbar] = {
|
96
|
+
items: items,
|
97
|
+
shouldNotGroupWhenFull: !should_group_when_full
|
98
|
+
}
|
99
|
+
end
|
100
|
+
|
101
|
+
return unless block
|
102
|
+
|
103
|
+
builder = ToolbarBuilder.new(@config[:toolbar])
|
104
|
+
builder.instance_eval(&block)
|
105
|
+
end
|
106
|
+
|
107
|
+
def inline_plugin(name, code)
|
108
|
+
@config[:plugins] << Editor::PropsInlinePlugin.new(name, code)
|
109
|
+
end
|
110
|
+
|
111
|
+
def plugin(name, **kwargs)
|
112
|
+
@config[:plugins] << Editor::PropsPlugin.new(name, **kwargs)
|
113
|
+
end
|
114
|
+
|
115
|
+
def plugins(*names, **kwargs)
|
116
|
+
names.each { |name| plugin(name, **kwargs) }
|
117
|
+
end
|
118
|
+
|
119
|
+
def language(ui, content: ui) # rubocop:disable Naming/MethodParameterName
|
120
|
+
@config[:language] = {
|
121
|
+
ui: ui,
|
122
|
+
content: content
|
123
|
+
}
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ckeditor5
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mateusz Bagiński
|
@@ -59,10 +59,10 @@ files:
|
|
59
59
|
- lib/ckeditor5/rails/helpers.rb
|
60
60
|
- lib/ckeditor5/rails/hooks/form.rb
|
61
61
|
- lib/ckeditor5/rails/hooks/simple_form.rb
|
62
|
-
- lib/ckeditor5/rails/
|
63
|
-
- lib/ckeditor5/rails/
|
62
|
+
- lib/ckeditor5/rails/presets/manager.rb
|
63
|
+
- lib/ckeditor5/rails/presets/preset_builder.rb
|
64
|
+
- lib/ckeditor5/rails/presets/toolbar_builder.rb
|
64
65
|
- lib/ckeditor5/rails/semver.rb
|
65
|
-
- lib/ckeditor5/rails/toolbar_builder.rb
|
66
66
|
- lib/ckeditor5/rails/version.rb
|
67
67
|
homepage: https://github.com/Mati365/ckeditor5-rails
|
68
68
|
licenses:
|
@@ -1,125 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module CKEditor5::Rails
|
4
|
-
class PresetBuilder
|
5
|
-
attr_reader :config
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@version = nil
|
9
|
-
@premium = false
|
10
|
-
@cdn = :jsdelivr
|
11
|
-
@translations = []
|
12
|
-
@license_key = nil
|
13
|
-
@type = :classic
|
14
|
-
@ckbox = nil
|
15
|
-
@config = {
|
16
|
-
plugins: [],
|
17
|
-
toolbar: []
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def to_h_with_overrides(**overrides)
|
22
|
-
{
|
23
|
-
version: overrides.fetch(:version, version),
|
24
|
-
premium: overrides.fetch(:premium, premium),
|
25
|
-
cdn: overrides.fetch(:cdn, cdn),
|
26
|
-
translations: overrides.fetch(:translations, translations),
|
27
|
-
license_key: overrides.fetch(:license_key, license_key),
|
28
|
-
type: overrides.fetch(:type, type),
|
29
|
-
ckbox: overrides.fetch(:ckbox, ckbox),
|
30
|
-
config: config.merge(overrides.fetch(:config, {}))
|
31
|
-
}
|
32
|
-
end
|
33
|
-
|
34
|
-
def ckbox(version = nil, theme: :lark)
|
35
|
-
return @ckbox if version.nil?
|
36
|
-
|
37
|
-
@ckbox = { version: version, theme: theme }
|
38
|
-
end
|
39
|
-
|
40
|
-
def license_key(license_key = nil)
|
41
|
-
return @license_key if license_key.nil?
|
42
|
-
|
43
|
-
@license_key = license_key
|
44
|
-
end
|
45
|
-
|
46
|
-
def gpl
|
47
|
-
license_key('GPL')
|
48
|
-
premium(false)
|
49
|
-
end
|
50
|
-
|
51
|
-
def premium(premium = nil)
|
52
|
-
return @premium if premium.nil?
|
53
|
-
|
54
|
-
@premium = premium
|
55
|
-
end
|
56
|
-
|
57
|
-
def translations(*translations)
|
58
|
-
return @translations if translations.empty?
|
59
|
-
|
60
|
-
@translations = translations
|
61
|
-
end
|
62
|
-
|
63
|
-
def version(version = nil)
|
64
|
-
return @version.to_s if version.nil?
|
65
|
-
|
66
|
-
@version = Semver.new(version)
|
67
|
-
end
|
68
|
-
|
69
|
-
def cdn(cdn = nil)
|
70
|
-
return @cdn if cdn.nil?
|
71
|
-
|
72
|
-
@cdn = cdn
|
73
|
-
end
|
74
|
-
|
75
|
-
def type(type = nil)
|
76
|
-
return @type if type.nil?
|
77
|
-
raise ArgumentError, "Invalid editor type: #{type}" unless Editor::Props.valid_editor_type?(type)
|
78
|
-
|
79
|
-
@type = type
|
80
|
-
end
|
81
|
-
|
82
|
-
def configure(key, value)
|
83
|
-
@config[key] = value
|
84
|
-
end
|
85
|
-
|
86
|
-
def menubar(visible: true)
|
87
|
-
@config[:menuBar] = {
|
88
|
-
isVisible: visible
|
89
|
-
}
|
90
|
-
end
|
91
|
-
|
92
|
-
def toolbar(*items, should_group_when_full: true, &block)
|
93
|
-
if @config[:toolbar].blank? || !items.empty?
|
94
|
-
@config[:toolbar] = {
|
95
|
-
items: items,
|
96
|
-
shouldNotGroupWhenFull: !should_group_when_full
|
97
|
-
}
|
98
|
-
end
|
99
|
-
|
100
|
-
return unless block
|
101
|
-
|
102
|
-
builder = ToolbarBuilder.new(@config[:toolbar])
|
103
|
-
builder.instance_eval(&block)
|
104
|
-
end
|
105
|
-
|
106
|
-
def inline_plugin(name, code)
|
107
|
-
@config[:plugins] << Editor::PropsInlinePlugin.new(name, code)
|
108
|
-
end
|
109
|
-
|
110
|
-
def plugin(name, **kwargs)
|
111
|
-
@config[:plugins] << Editor::PropsPlugin.new(name, **kwargs)
|
112
|
-
end
|
113
|
-
|
114
|
-
def plugins(*names, **kwargs)
|
115
|
-
names.each { |name| plugin(name, **kwargs) }
|
116
|
-
end
|
117
|
-
|
118
|
-
def language(ui, content: ui) # rubocop:disable Naming/MethodParameterName
|
119
|
-
@config[:language] = {
|
120
|
-
ui: ui,
|
121
|
-
content: content
|
122
|
-
}
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|