Why not adopt me?
NAME
mk_methods.pl - generate UltraDNS::Methods module by parsing the specification
SYNOPSIS
mk_methods.pl NUS_API_XML.txt
DESCRIPTION
Parses a plain text version of the UltraDNS Transaction Protocol document (derived from http://www.ultradns.net/api/NUS_API_XML.pdf) and rewrites the UltraDNS::Methods module with descriptions of the methods and their arguments.
You do not need to run this unless you need to update the code to handle a newer version of the API.
Converting PDF To Text
The NUS_API_XML.txt isn't included in the distribution for copyright reasons. This is the procedure I used to generate the current UltraDNS::Methods module:
- Open http://www.ultradns.net/api/NUS_API_XML.pdf using Preview on Mac OSX
- Select and copy all the text
- Paste the text into the TextEdit application
- Select "Make Plain Text" from the Format menu
- Save as NUS_API_XML.txt
- Run mk_methods.pl NUS_API_XML.txt in the top directory of the distribution
If you use a different method to perform the conversion then it's likely that you'll need to make slight changes to this script.
$methname
$res\$udns->$methname$args;
EOS if (@$arg_info) { for my $arg (@$arg_info) { my $example = $arg->{example}; if ($arg->{type} eq 'array') { $example = sprintf '[ $%s, ... ]', $arg->{elem_type}; } $example = "($example, ...)" if $arg->{sigil} eq '@'; printf $pm_fh qq{ %s%s = %s\n}, $arg->{sigil}, $arg->{type}, $example; } print $pm_fh "\n"; }
} print $pm_fh "\n=cut\n";
# finish up close $pm_fh or die "Error writing $pm_filename: $!";
# sanity check the generated file system("perl -c $pm_filename") == 0 or die "Error in generated $pm_filename code";
warn Dumper(\%arg_type_usage) if $opt_trace >= 2; warn Dumper([ keys %arg_type_usage ]) if $opt_trace;
__DATA__ package UltraDNS::Methods;
NAME
UltraDNS::Methods - Available UltraDNS Transaction Protocol Methods
SYNOPSIS
use UltraDNS;
$udns = UltraDNS->connect(...);
$udns->...any of these methods...(...);
$udns->...any of these methods...(...);
$udns->...any of these methods...(...);
$udns->commit;
$udns->...any of these methods...(...);
$udns->...any of these methods...(...);
$udns->...any of these methods...(...);
$udns->commit;
# etc
DESCRIPTION
This module contains details of the UltraDNS methods defined by the UltraDNS Transaction Protocol documentation.
Refer to UltraDNS for more details.
METHODS
The methods can be called either with our without the UDNS_
prefix that appears in the UltraDNS docs. They're shown here without the prefix because it I prefer it that way.