Changeset 11985


Ignore:
Timestamp:
07/24/10 20:19:05 (19 months ago)
Author:
azawawi
Message:

Tidy up parse_wxwidgets_docs.pl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/parse_wxwidgets_docs.pl

    r11984 r11985  
    1010use HTTP::Request    (); 
    1111use Archive::Extract (); 
    12 use HTML::Parse      qw(parse_html); 
     12use HTML::Parse qw(parse_html); 
    1313use HTML::FormatText (); 
    1414 
     
    2323 
    2424# Step 3: Read WX Classes list index file 
    25 my $wx_dir = File::Spec->join($dir, 'docs', 'mshtml', 'wx'); 
     25my $wx_dir = File::Spec->join( $dir, 'docs', 'mshtml', 'wx' ); 
    2626my @wxclasses = read_wx_classes_list($wx_dir); 
    2727print "Found " . @wxclasses . " Wx Classes to parse\n"; 
    2828 
    2929# Step 4: Write the final POD while processing all html files 
    30 write_pod($wx_dir, @wxclasses); 
     30write_pod( $wx_dir, @wxclasses ); 
    3131 
    3232# and we're done 
     
    3737# 
    3838sub download_wxwidgets_html_zip { 
    39     unless(-e $WX_WIGDETS_HTML_ZIP) { 
     39    unless ( -e $WX_WIGDETS_HTML_ZIP ) { 
    4040        my $url = 'http://garr.dl.sourceforge.net/project/wxwindows/Documents/2.8.10/$WX_WIGDETS_HTML_ZIP'; 
    4141        print "Downloading $url. Please wait...\n"; 
    42         my $ua = LWP::UserAgent->new; 
    43         my $req = HTTP::Request->new(GET => $url); 
     42        my $ua  = LWP::UserAgent->new; 
     43        my $req = HTTP::Request->new( GET => $url ); 
    4444        my $res = $ua->request($req); 
    45         if(not $res->is_success) { 
     45        if ( not $res->is_success ) { 
    4646            die $res->status_line, "\n"; 
    4747        } 
     
    4949        # Write download file to disk 
    5050        print "Writing $WX_WIGDETS_HTML_ZIP...\n"; 
    51         if(open FILE, '>:raw', $WX_WIGDETS_HTML_ZIP) { 
     51        if ( open FILE, '>:raw', $WX_WIGDETS_HTML_ZIP ) { 
    5252            print FILE $res->content; 
    5353            close FILE; 
     
    6767 
    6868    my $zip = Archive::Extract->new( archive => $WX_WIGDETS_HTML_ZIP ); 
    69     die "$WX_WIGDETS_HTML_ZIP is not a zip file\n" unless ($zip->is_zip); 
     69    die "$WX_WIGDETS_HTML_ZIP is not a zip file\n" unless ( $zip->is_zip ); 
    7070    print "Extracting $WX_WIGDETS_HTML_ZIP to $dir...\n"; 
    71     $zip->extract(to => $dir) or die $zip->error; 
     71    $zip->extract( to => $dir ) or die $zip->error; 
    7272} 
    7373 
     
    7979sub read_wx_classes_list { 
    8080    my $dir = shift; 
    81      
    82     my $wx_classref = File::Spec->join($dir, 'wx_classref.html'); 
     81 
     82    my $wx_classref = File::Spec->join( $dir, 'wx_classref.html' ); 
    8383 
    8484    # Stores a list of WX classes filenames 
     
    8686 
    8787    #Step 1: Read Wx classes list from wx_classref.html 
    88     if(open(my $fh, $wx_classref)) { 
     88    if ( open( my $fh, $wx_classref ) ) { 
    8989        print "Opened $wx_classref\n"; 
    9090        my $begin; 
    91         while(my $line = <$fh>) { 
    92             if($line =~ /<H2>Alphabetical class reference<\/H2>/) { 
     91        while ( my $line = <$fh> ) { 
     92            if ( $line =~ /<H2>Alphabetical class reference<\/H2>/ ) { 
    9393                $begin = 1; 
    94             } elsif($begin && $line =~ /<A HREF="(.+?)#.+?"><B>(.+)?<\/B><\/A><BR>/) { 
    95                 my ($file, $class) = ($1, $2); 
     94            } elsif ( $begin && $line =~ /<A HREF="(.+?)#.+?"><B>(.+)?<\/B><\/A><BR>/ ) { 
     95                my ( $file, $class ) = ( $1, $2 ); 
    9696                $class =~ s/wx(.+?)/Wx::$1/; 
    9797                push @wxclasses, { file => $file, class => $class }; 
     
    107107# 
    108108# Process wxClassName HTML file 
    109 #  
     109# 
    110110sub process_class { 
    111     my ($class, $file) = @_; 
    112      
     111    my ( $class, $file ) = @_; 
     112 
    113113    my $oldclass; 
    114114    my $pod_text = ''; 
    115     if(open my $html_file, '<', $file) { 
     115    if ( open my $html_file, '<', $file ) { 
    116116        my $desc = ''; 
    117117        my $name; 
    118         while(my $line = <$html_file>) { 
    119             if($line =~ /<H3>(.+?)<\/H3>/) { 
     118        while ( my $line = <$html_file> ) { 
     119            if ( $line =~ /<H3>(.+?)<\/H3>/ ) { 
    120120                $name = $1; 
    121121                $name =~ s/wx(.+?)/Wx::$1/; 
    122                 if($name =~ /^Wx::(.+?)::(.+?)$/) { 
     122                if ( $name =~ /^Wx::(.+?)::(.+?)$/ ) { 
    123123                    my $method = $2; 
    124                     if($method eq "wx$1") { 
     124                    if ( $method eq "wx$1" ) { 
     125 
    125126                        # Convert C++ constructor to ::new 
    126127                        $name = $class . '::new'; 
    127                     } elsif($method =~ /^~.+/) { 
     128                    } elsif ( $method =~ /^~.+/ ) { 
     129 
    128130                        # Convert C++ destructor to ::DESTROY 
    129131                        $name = $class . '::DESTROY'; 
    130                     } elsif ($method =~ /^operator.+/) { 
     132                    } elsif ( $method =~ /^operator.+/ ) { 
     133 
    131134                        # Ignore operators 
    132135                        $name = undef; 
     
    134137                } 
    135138                $desc = ''; 
    136             } elsif($line =~ /^\s*$/) { 
    137                 if($name) { 
    138                     if(!$oldclass || $class ne $oldclass) { 
     139            } elsif ( $line =~ /^\s*$/ ) { 
     140                if ($name) { 
     141                    if ( !$oldclass || $class ne $oldclass ) { 
     142 
    139143                        # print out new class header 
    140144                        $pod_text .= "=head1 $class\n\n"; 
     
    143147 
    144148                    # print out method description 
    145                     $desc = HTML::FormatText->new->format(parse_html($desc)); 
     149                    $desc = HTML::FormatText->new->format( parse_html($desc) ); 
    146150                    $pod_text .= "=head2 $name\n$desc\n"; 
    147151 
     
    154158        close $html_file; 
    155159    } 
    156      
     160 
    157161    return $pod_text; 
    158162} 
     
    162166# 
    163167sub write_pod { 
    164     my ($wx_dir, @wxclasses) = @_; 
     168    my ( $wx_dir, @wxclasses ) = @_; 
    165169    my $pod_file = 'wxwidgets.pod'; 
    166170    print "Writing $pod_file\n"; 
    167     if(open(my $pod, '>', 'wxwidgets.pod')) { 
     171    if ( open( my $pod, '>', 'wxwidgets.pod' ) ) { 
    168172        my $oldclass; 
    169173        foreach my $wxclass (@wxclasses) { 
    170             my $file = File::Spec->join($wx_dir, $wxclass->{file}); 
     174            my $file = File::Spec->join( $wx_dir, $wxclass->{file} ); 
    171175            my $class = $wxclass->{class}; 
    172176            print "Processing $class...\n"; 
    173             print $pod process_class($class, $file); 
     177            print $pod process_class( $class, $file ); 
    174178        } 
    175179        close $pod; 
Note: See TracChangeset for help on using the changeset viewer.