/usr/local/CPAN/Scraper/WWW/Scraper/Opcode/GRUB.pm



use strict;

package WWW::Scraper::Opcode::GRUB;
use base qw(WWW::Scraper::Opcode);
use vars qw($VERSION);

# new() Scraper::Opcode
#  $cls - Op class
#  $scaffold - current scaffold
#  $params - ref to array of params in the 'OP()' portion of the scaffold.
sub new {
    my ($cls, $scaffold, $params) = @_;
    my $self = bless {};
    return $self;
}

sub scrape {
    my ($self, $scraper, $scaffold, $TidyXML, $hit) = @_;

    my @grubFields = @$scaffold;
    shift @grubFields;
    for ( @grubFields ) {
        my $grubName = $_;
        my @grubUrls = $hit->$grubName();
        my $grubLevel = $hit->_grubLevel;
        my $grubUrl = $grubUrls[$grubLevel];
        if ( $grubUrl ) {
            my $url = new URI::URL($$grubUrl, $scraper->{_base_url});
            $grubUrl = $url->abs();
            $hit->_gotDetailPage(''); # gotDetailPage() helps JIT processing, but this is not JIT, it's "GRUB".
            $hit->_grubLevel($grubLevel+1);
            $hit->ScrapeDetailPage(\$grubUrl);
            $hit->_grubLevel($grubLevel);
        }
    }
    return undef;
}


1;