2 use OpenSRF::System qw(SYSCONFDIR/opensrf_core.xml);
7 my $cvs_base = 'http://open-ils.org/cgi-bin/viewcvs.cgi/ILS/Open-ILS/src/perlmods/';
13 GetOptions( 'cvs_base=s' => \$cvs_base,
15 'service=s' => \$service,
16 'ignore=s' => \$sort_ignore,
17 'filter=s' => \$filter,
21 print "usage: $0 -s <service name> [-c <cvs repo base URL> -f <regex filter for method names> -n]\n";
25 OpenSRF::System->bootstrap_client();
26 my $session = OpenSRF::AppSession->create( $service );
30 $req = $session->request('opensrf.system.method', $filter);
32 $req = $session->request('opensrf.system.method.all');
37 while( my $meth = $req->recv(60) ) {
38 $meth = $meth->content;
40 $api_name = $meth->{api_name};
42 $m{$api_name}{api_name} = $meth->{api_name};
44 $m{$api_name}{package} = $meth->{package};
45 $m{$api_name}{method} = $meth->{method};
47 $m{$api_name}{api_level} = int $meth->{api_level};
48 $m{$api_name}{server_class} = $meth->{server_class} || '**ALL**';
49 $m{$api_name}{stream} = int($meth->{stream} || 0);
50 $m{$api_name}{cachable} = int($meth->{cachable} || 0);
52 $m{$api_name}{note} = $meth->{note} || 'what I do';
53 ($m{$api_name}{cvs} = $m{$api_name}{package}) =~ s/::/\//go;
55 $m{$api_name}{stream} = $m{$api_name}{stream}?'Yes':'No';
56 $m{$api_name}{cachable} = $m{$api_name}{cachable}?'Yes':'No';
58 print STDERR "." unless ($count % 10);
63 warn "\nThere are ".scalar(keys %m)." methods published by $service\n";
67 @m_list = sort keys %m;
74 length($$b[0]) <=> length($$a[0])
78 (my $x = $_) =~ s/^$sort_ignore//go;
84 for my $meth ( @m_list ) {
90 (my $x = $meth) =~ s/\./$pad++;$1/eg;
95 $pad$header $meth $header
99 * [[osrf-devel:terms#opensrf_api-level|API Level]]: $m{$meth}{api_level}
100 * [[osrf-devel:terms#opensrf_server_class|Server Class]]: $m{$meth}{server_class}
101 * Implementation Method: [[$cvs_base/$m{$meth}{cvs}.pm|$m{$meth}{package}\::$m{$meth}{method}]]
102 * Streaming [[osrf-devel:terms#opensrf_method|Method]]: $m{$meth}{stream}
103 * Cachable [[osrf-devel:terms#opensrf_method|Method]]: $m{$meth}{cachable}
106 * //param1//\\\\ what it is...
108 * //Success//\\\\ successful format
109 * //Failure//\\\\ failure format (exception, etc)