Class: Rails::Domternal::ExtensionRegistry
- Inherits:
-
Object
- Object
- Rails::Domternal::ExtensionRegistry
- Defined in:
- lib/rails/domternal/extension_registry.rb
Overview
Ruby-side mirror of app/assets/javascripts/domternal/extensions.js — kept in sync
so has_rich_domternal extensions: [...] can fail fast on typos instead of only
erroring in the browser console.
Constant Summary collapse
- UnknownExtensionError =
Class.new(StandardError)
Instance Method Summary collapse
- #fetch!(name) ⇒ Object
-
#initialize ⇒ ExtensionRegistry
constructor
A new instance of ExtensionRegistry.
- #known?(name) ⇒ Boolean
- #register(name) ⇒ Object
Constructor Details
#initialize ⇒ ExtensionRegistry
Returns a new instance of ExtensionRegistry.
11 12 13 14 15 16 |
# File 'lib/rails/domternal/extension_registry.rb', line 11 def initialize @known = %i[ starter_kit image table mention markdown emoji math code_block toc block_controls details ].to_set end |
Instance Method Details
#fetch!(name) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/rails/domternal/extension_registry.rb', line 26 def fetch!(name) unless known?(name) raise UnknownExtensionError, "Unknown Domternal extension #{name.inspect}. Known extensions: #{@known.to_a.sort.inspect}. " \ "Register custom ones with Rails::Domternal.extension_registry.register(:my_extension) " \ "and app/assets/javascripts/domternal/extensions.js's registerExtension()." end name.to_sym end |
#known?(name) ⇒ Boolean
22 23 24 |
# File 'lib/rails/domternal/extension_registry.rb', line 22 def known?(name) @known.include?(name.to_sym) end |
#register(name) ⇒ Object
18 19 20 |
# File 'lib/rails/domternal/extension_registry.rb', line 18 def register(name) @known << name.to_sym end |