Class: SequenceDiagramGenerator
- Inherits:
-
Object
- Object
- SequenceDiagramGenerator
- Defined in:
- lib/sequence_diagram_generator.rb
Class Method Summary collapse
Class Method Details
.generate(runtime) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/sequence_diagram_generator.rb', line 7 def self.generate runtime index = 0 total = runtime.sequences.length runtime.sequences.values.each do |sequence| index += 1 puts "Generating sequence diagram [#{index}/#{total}]: #{sequence.name}.png" generate_sequence sequence end end |
.generate_sequence(sequence) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/sequence_diagram_generator.rb', line 17 def self.generate_sequence sequence file = "docs/diagrams/#{sequence.name}.png" text = make_code sequence response = Net::HTTP.post_form(URI.parse('http://www.websequencediagrams.com/index.php'), 'style' => 'omegapple', 'message' => text) if response.body =~ /img: "(.+)"/ url = "http://www.websequencediagrams.com/#{ $1 }" url.match(/(png)=(.+)$/) open url do |content| File.open file, 'wb' do |file| file.puts content.read end end end end |
.make_code(sequence) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/sequence_diagram_generator.rb', line 32 def self.make_code sequence str = "title #{sequence.name} #{sequence.doc}\n" sequence.steps.each do |step| direction = step.direction head = '' case direction.direction when :left head = direction.server.name + ' -> ' + direction.client.name when :right head = direction.client.name + ' -> ' + direction.server.name end strParams = step..members.map { |m| m.name } .join ', ' str += head + ': ' + step..name + '(' + strParams + ') ' + step.doc + "\n" end str end |