Sha256: c5db42a55551bda3eeb80955c63941c9deda20c6b92370b1cd10112e2f7763f2
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true module Mermaid class FlowchartDiagram::Node < Dry::Struct SHAPES = %w(default round stadium subroutine database circle double_circle asymmetric rhombus hexagon parallelogram parallelogram_alt trapezoid trapezoid_alt).freeze SHAPE_FORMATS = { 'default' => "%s[%s]", # A[Hard 'round' => "%s(%s)", # A(Hard) 'stadium' => "%s([%s])", # A([Hard]) 'subroutine' => "%s[[%s]]", # A([[Hard]]) 'database' => "%s[(%s)]", # A[(Hard)] 'circle' => "%s((%s))", # A((Hard)) 'double_circle' => "%s(((%s)))", # A(((Hard))) 'asymmetric' => "%s>%s]", # A>Hard] 'rhombus' => "%s{%s}", # A{Hard} 'hexagon' => "%s{{%s}}", # A{{Hard}} 'parallelogram' => "%s[/%s/]", # A[/Hard/] 'parallelogram_alt' => "%s[\\%s\\]", # A[\Hard\] 'trapezoid' => "%s[/%s\\]", # A[/Hard\] 'trapezoid_alt' => "%s[\\%s/]" # A[\Hard/] }.freeze attribute :id, FlowchartDiagram::Types::String attribute :label, FlowchartDiagram::Types::String attribute :shape, FlowchartDiagram::Types::String.default('default').enum(*SHAPES) def to_s(show_label = true) if show_label format(SHAPE_FORMATS[shape], id, label) else id end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mermaid-0.0.1 | lib/mermaid/flowchart_diagram/node.rb |