3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/markdoc/sequence.rb', line 3
def self.draw(code, format = :svg)
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
if format == :pic
return IO.read(pic)
end
image = Tempfile.new([digest, ".#{format}"])
image.close
if system("pic2plot -T#{format} #{pic} > #{image.path}")
IO.read image
else
raise "Can't generate sequence diagram"
end
end
|