Module: Markdoc::Sequence

Defined in:
lib/markdoc/sequence.rb

Defined Under Namespace

Classes: Message, Parser, Role

Class Method Summary collapse

Class Method Details

.draw(code) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/markdoc/sequence.rb', line 3

def self.draw(code)
  parser = Parser.new(code)

  digest = Digest::MD5.hexdigest code

  pic = nil
  Tempfile.open([digest, '.pic']) do |file|
    file.write parser.parse
    pic = file.path
  end

  image = Tempfile.new([digest, '.svg'])
  image.close

  if system("pic2plot -Tsvg #{pic} > #{image.path}")
    IO.read image
  else
    raise "Can't generate sequence diagram"
  end
end