diff options
Diffstat (limited to 'utils/spore2dot.pl')
| -rw-r--r-- | utils/spore2dot.pl | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/utils/spore2dot.pl b/utils/spore2dot.pl index 034e8c7..f7e0e7e 100644 --- a/utils/spore2dot.pl +++ b/utils/spore2dot.pl @@ -65,12 +65,52 @@ foreach my $spec (@specs) { print $_, "\\]"; $first = 0; } + if ($desc->{optional_payload}) { + print "\\["; + print ", " unless $first; + print "payload\\]"; + $first = 0; + } + if ($desc->{unattended_params} || $spec->{unattended_params}) { + print ", " unless $first; + print "..."; + } print ")"; print " ⊗" if $desc->{authentication} || $spec->{authentication}; + print " DEPRECATED" if $desc->{deprecated}; print "\\l"; - print " ", $desc->{method}, " ", $desc->{path}, "\\l" if $ENV{SPORE_PATH}; + if ($ENV{SPORE_DETAILS}) { + print " ", $desc->{method}, " ", $desc->{path}, "\\l"; + for my $h (sort keys %{$desc->{headers}}) { + print " ", $h, ": ", $desc->{headers}->{$h}, "\\l"; + } + for my $f (sort keys %{$desc->{'form-data'}}) { + print " form-data \\\"", $f, "\\\" ", $desc->{'form-data'}->{$f}, "\\l"; + } + my $status = $desc->{expected_status} || $spec->{expected_status}; + print " ", join(', ', @{$status}), "\\l" if $status; + } } print "}\"];\n\n"; + + my $note = $spec->{description}; + if ($note && $ENV{SPORE_NOTES}) { + $note =~ s/\n/\\n/g; + print " \"__note__", $name, "\"\n"; + print " [label=\"", $note, "\" shape=note];\n\n"; + + print " \"", $name, "\" -> \"__note__", $name, "\"\n"; + print " [arrowhead = none, arrowtail = none, style = dashed];\n\n"; + } + my $doc = $spec->{meta}->{documentation}; + if ($doc && $ENV{SPORE_NOTES}) { + $doc =~ s/\n/\\n/g; + print " \"__doc__", $name, "\"\n"; + print " [label=\"", $doc, "\" shape=note];\n\n"; + + print " \"", $name, "\" -> \"__doc__", $name, "\"\n"; + print " [arrowhead = none, arrowtail = none, style = dashed];\n\n"; + } } print "}\n"; |
