class Graphy::Dsl

Attributes

diagram[RW]

Public Class Methods

new(name, options = {}, &block) click to toggle source
# File lib/graphy/dsl.rb, line 5
def initialize(name, options = {}, &block)
  @diagram = Diagram.new(name, options, &block)
  instance_eval(&block) if block_given?
end

Public Instance Methods

component(name, &block) click to toggle source
# File lib/graphy/dsl.rb, line 14
def component(name, &block)
  node(name, shape: 'component', &block)
end
entity(name, parent = nil, &block) click to toggle source
# File lib/graphy/dsl.rb, line 27
def entity(name, parent = nil, &block)
  entity = Entity.new(name: name, diagram: diagram)
  entity.build(&block)
  entity.add_dependency(parent, color: 'blue') if parent
end
namespace(name, &block) click to toggle source
# File lib/graphy/dsl.rb, line 10
def namespace(name, &block)
  diagram.draw_graph(Dsl.new(name, { parent: diagram.graph }, &block).diagram)
end
node(name, shape: 'circle', &block) click to toggle source
# File lib/graphy/dsl.rb, line 22
def node(name, shape: 'circle', &block)
  options = {diagram: diagram, shape: shape}
  Node.for(name, **options).build(&block)
end
note(name, &block) click to toggle source
# File lib/graphy/dsl.rb, line 18
def note(name, &block)
  node(name, shape: 'note', &block)
end
step(from, to:, **options) click to toggle source
# File lib/graphy/dsl.rb, line 33
def step(from, to:, **options)
  Node.for(from, diagram: diagram).add_dependency(to, **options)
end
write(options = {}) click to toggle source
# File lib/graphy/dsl.rb, line 37
def write(options = {})
  diagram.write(options)
end