ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/ActiveDoc/SimpleURLDoc.pm
(Generate patch)

Comparing COMP/SCRAM/src/ActiveDoc/SimpleURLDoc.pm (file contents):
Revision 1.2 by williamc, Mon Aug 28 07:43:21 2000 UTC vs.
Revision 1.6 by sashby, Tue Feb 27 11:59:42 2007 UTC

# Line 10 | Line 10
10   # ---------
11   # new(URLcache[,DocVersionTag]  : A new SimpleURLDoc object. You can also
12   #                                 specify an alternative doc version tag
13 # addbasetags(parse)    : Add Base Tags to the given parse
13   # urlget(urlstring[,location]) : get the given url - using the cache.
14   #                                Returns (url, filename)
15   # urldownload(urlstring[,location]) : get the given url ignoring any cached
# Line 18 | Line 17
17   # expandurl(urlstring)  : return a URLclass object of the given url expanded
18   #                         according to the base settings
19   # cache([cache])        : get/set the current URL cache
21 # doctype()             : return the (type,version) of the document
22 #                         as specified by the DocVersionTag
20  
21   package ActiveDoc::SimpleURLDoc;
22   use ActiveDoc::SimpleDoc;
# Line 27 | Line 24 | use URL::URLhandler;
24   require 5.001;
25   @ISA=qw(ActiveDoc::SimpleDoc);
26  
27 < sub new {
28 <        my $class=shift;
29 <        my $self={};
30 <        bless $self, $class;
31 <        $self->cache(shift);
32 <        $self->_initdoc("doc",@_);
33 <        #$self->{switch}=ActiveDoc::SimpleDoc->new(@_);
34 <        return $self;
35 < }
36 <
37 < sub addbasetags {
38 <        my $self=shift;
39 <        my $parse=shift;
40 <
41 <        $self->addtag($parse,"base", \&Base_start, $self,
42 <                                     "", $self,
43 <                                     \&Base_end,$self);
44 < }
45 <
46 < sub cache {
47 <        my $self=shift;
48 <        if ( @_ ) {
49 <          $self->{cache}=shift;
50 <          $self->{urlhandler}=URL::URLhandler->new($self->{cache});
51 <        }
52 <        return $self->{cache};
53 < }
54 <
55 < sub expandurl {
56 <        my $self=shift;
57 <        my $urlstring=shift;
58 <
59 <        return $self->{urlhandler}->expandurl($urlstring);
60 < }
61 <
62 < sub urldownload {
63 <        my $self=shift;
64 <        my $urlstring=shift;
65 <
66 <        ($fullurl,$filename)=$self->{urlhandler}->download($urlstring, @_);
67 <        if ( ( ! defined $filename ) || ( $filename eq "" ) ) {
68 <          $self->parseerror("Failed to get $fullurl");
69 <        }
70 <        return ($fullurl,$filename);
71 < }
72 <
73 < sub urlget {
74 <        my $self=shift;
75 <        my $urlstring=shift;
76 <
77 <        ($fullurl,$filename)=$self->{urlhandler}->get($urlstring, @_);
78 <        if ( ( ! defined $filename ) || ( $filename eq "" ) ) {
79 <          $self->parseerror("Failed to get $fullurl");
80 <        }
81 <        return ($fullurl,$filename);
85 < }
86 <
87 < #sub AUTOLOAD {
88 < #       my $self=shift;
89 < #
90 <        # dont propogate destroy methods
91 < #       return if $AUTOLOAD=~/::DESTROY/;
92 <
93 <        # remove this package name
94 < #       ($name=$AUTOLOAD)=~s/ActiveDoc::SimpleURLDoc:://;
95 <
96 <        # pass the message to SimpleDoc
97 < #       $self->{switch}->$name(@_);
98 < #}
99 <
100 < # ------------------------ Support Routines ---------------------------
27 > sub new()
28 >   {
29 >   my $class=shift;
30 >   my $self={};
31 >   bless $self, $class;
32 >   my ($cache)=@_;
33 >   $self->cache($cache);
34 >   return $self;
35 >   }
36 >
37 > sub cache()
38 >   {
39 >   my $self=shift;
40 >   if ( @_ )
41 >      {
42 >      $self->{cache}=shift;
43 >      $self->{urlhandler}=URL::URLhandler->new($self->{cache});
44 >      }
45 >   return $self->{cache};
46 >   }
47 >
48 > sub expandurl()
49 >   {
50 >   my $self=shift;
51 >   my $urlstring=shift;
52 >  
53 >   return $self->{urlhandler}->expandurl($urlstring);
54 >   }
55 >
56 > sub urldownload()
57 >   {
58 >   my $self=shift;
59 >   my $urlstring=shift;
60 >  
61 >   ($fullurl,$filename)=$self->{urlhandler}->download($urlstring, @_);
62 >   if ( ( ! defined $filename ) || ( $filename eq "" ) )
63 >      {
64 >      $self->parseerror("Failed to get $fullurl");
65 >      }
66 >   return ($fullurl,$filename);
67 >   }
68 >
69 > sub urlget()
70 >   {
71 >   my $self=shift;
72 >   my $urlstring=shift;
73 >  
74 >   ($fullurl,$filename)=$self->{urlhandler}->get($urlstring, @_);
75 >        
76 >   if ( ( ! defined $filename ) || ( $filename eq "" ) )
77 >      {
78 >      $self->parseerror("Failed to get $fullurl");
79 >      }
80 >   return ($fullurl,$filename);
81 >   }
82  
83   # ------------------------ Tag Routines -------------------------------
84 + sub base()
85 +   {
86 +   my $self=shift;
87 +   my (%attributes)=@_;
88 +   my $url=$self->{urlhandler}->setbase($attributes{'url'});
89 +   # Add store for url of the file currently being parsed. This info can
90 +   # then be extracted in Requirements objects
91 +   $self->{configurl}=$url;
92 +   push @{$self->{basestack}}, $url->type();
93 +   }
94 +
95 + sub base_()
96 +   {
97 +   my $self=shift;
98 +   if ( $#{$self->{basestack}} >= 0 )
99 +      {
100 +      my $type=pop @{$self->{basestack}};
101 +      $self->{urlhandler}->unsetbase($type);
102 +      }
103 +   else
104 +      {
105 +      $self->parseerror("Unmatched <$name>");
106 +      }
107 +   }
108  
109 < sub Base_start {
105 <        my $self=shift;
106 <        my $name=shift;
107 <        my $hashref=shift;
108 <
109 <        $self->checktag($name, $hashref, "url");
110 <        my $url=$self->{urlhandler}->setbase($$hashref{'url'});
111 <        push @{$self->{basestack}}, $url->type();
112 < }
113 <
114 < sub Base_end {
115 <        my $self=shift;
116 <        if ( $#{$self->{basestack}} >= 0 ) {
117 <          my $type=pop @{$self->{basestack}};
118 <          $self->{urlhandler}->unsetbase($type);
119 <        }
120 <        else {
121 <          $self->parseerror("Unmatched <$name>");
122 <        }
123 < }
109 > 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines