Method: Decidim::ContentBlockRegistry#register
- Defined in:
- lib/decidim/content_block_registry.rb
#register(scope, name) {|content_block| ... } ⇒ Object
Public: Registers a content block for the home page.
scope - a symbol or string representing the scope of the content block.
Will be persisted as a string.
name - a symbol representing the name of the content block &block - The content block definition.
Returns nothing. Raises an error if there’s already a content block registered with that name.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/decidim/content_block_registry.rb', line 52 def register(scope, name) scope = scope.to_s block_exists = content_blocks[scope].any? { |content_block| content_block.name == name } if block_exists raise( ContentBlockAlreadyRegistered, "There's a content block already registered with the name `:#{name}` for the scope `:#{scope}, must be unique" ) end content_block = ContentBlockManifest.new(name: name) yield(content_block) content_block.validate! content_blocks[scope].push(content_block) end |