class LiquidDiagrams::BasicBlock

@abstract Subclass and override {#render_content} to implement

Public Class Methods

renderer() click to toggle source

Return the renderer class matching the block

# File lib/liquid_diagrams/basic_block.rb, line 7
def self.renderer
  @renderer ||= Renderers.const_get(
    name.split('::').last.gsub(/Block$/, 'Renderer')
  )
end

Public Instance Methods

handle_error(error) click to toggle source
# File lib/liquid_diagrams/basic_block.rb, line 28
def handle_error(error)
  error
end
read_config() click to toggle source

@api private

# File lib/liquid_diagrams/basic_block.rb, line 33
def read_config
  options = LiquidDiagrams.configuration(parse_context, key: block_name)
  inline_options = Utils.parse_inline_options(@markup.strip)

  options.merge(inline_options)
end
render(context) click to toggle source

@note Do not override this method, override {#render_content} instead

Calls superclass method
# File lib/liquid_diagrams/basic_block.rb, line 14
def render(context)
  @context = context
  @content = super.to_s
  @config = read_config

  render_content
end
render_content() click to toggle source
# File lib/liquid_diagrams/basic_block.rb, line 22
def render_content
  self.class.renderer.render(@content, @config)
rescue Errors::BasicError => error
  handle_error(error)
end