module LiquidDiagrams

Constants

OPTIONS_KEY
VERSION

Public Class Methods

configuration(options, key: nil, default: {}) click to toggle source

Return configuration of diagram

# File lib/liquid_diagrams.rb, line 22
def configuration(options, key: nil, default: {})
  config = options[OPTIONS_KEY.to_sym] || options[OPTIONS_KEY.to_s] || {}

  key ? (config.dig(key.to_sym) || config.dig(key.to_s) || default) : config
end
diagrams() click to toggle source

Return all diagrams defined in {Renderers}

@return [Array<Symbol>]

# File lib/liquid_diagrams.rb, line 31
def diagrams
  @diagrams ||= renderers.keys
end
register_diagram(diagram) click to toggle source

Register a diagram block

@param diagram [#to_s] diagram name to register

@return [Liquid::Block] the registered liquid block

# File lib/liquid_diagrams.rb, line 72
def register_diagram(diagram)
  diagram = diagram.to_s.downcase.to_sym

  raise Errors::DiagramNotFoundError unless diagrams.include?(diagram)

  block = Blocks.const_get("#{diagram.capitalize}Block")

  registered_diagrams.merge!(diagram => block)
  Liquid::Template.register_tag(diagram, block)
end
register_diagrams(*diagrams) click to toggle source

Register diagrams

@param diagrams [Array<String, Symbol>] diagrams to register

@return [Array<Liquid::Block>] the registered liquid blocks

# File lib/liquid_diagrams.rb, line 63
def register_diagrams(*diagrams)
  Array(diagrams).flatten.map { |diagram| register_diagram(diagram) }
end
registered_diagrams() click to toggle source

Return all registered diagrams block

Use {.register_diagrams} and {.register_diagram} to register a diagram

@return [Hash{Symbol => BasicBlock}]

# File lib/liquid_diagrams.rb, line 54
def registered_diagrams
  @registered_diagrams ||= {}
end
renderers() click to toggle source

Return all avaliable renderers under {Renderers}

@return [Hash{Symbol => BasicRenderer}]

# File lib/liquid_diagrams.rb, line 38
def renderers
  @renderers ||= Hash[
    Renderers.constants.grep(/Renderer$/).sort.map do |renderer|
      [
        renderer.to_s.chomp('Renderer').downcase.to_sym,
        Renderers.const_get(renderer)
      ]
    end
  ]
end