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

Comparing COMP/SCRAM/src/URL/URLclass.pm (file contents):
Revision 1.1 by williamc, Fri Nov 12 16:02:42 1999 UTC vs.
Revision 1.8 by williamc, Tue Nov 16 17:46:03 1999 UTC

# Line 12 | Line 12
12   # url()         : return the full url name with all expansion
13   # expandurl(URLbase) : expand the url to include the given base
14   # file()        : return the filename from the end of the path
15 + # base()        : return the basename of the path
16 + # fullfile()    : return base/file
17   # param(var)    : return the value of a url parameter
18   #
19   # -- specialised use methods
20   # type()        : get/set the url type
21   # vars()        : get/set the vars hash
22 < # base(base)    : push a base into the url path if it dosnt already mactch
22 > # base(base)    : push a base into the url path if it dosnt already match
23   # transfervars(varhash)  : transfer any variables from varhash into vars
24   #                          only if they do not already exist
25  
# Line 59 | Line 61 | sub expandurl {
61          $self->{vars}={};
62          $self->_url($self->{origurl}); # reset the current url;
63          $self->transfervars($base->cmds());
64 <        $self->base($base->base());
64 >        $self->_base($base->base());
65   }
66  
65 sub base {
66        my $self=shift;
67        if ( @_ ) {
68          my $server=shift;
69          if ( ($server ne "") && ($self->{server}!~/\/\//) &&
70                        ($self->{server}!~/$server/) ) {
71             # only set if not already in there
72             $self->{server}=$server."/".$self->{server};
73          }
74        }
75        return $self->{server};
76 }
67  
68   sub url {
69          my $self=shift;
70          
71          my $vars=$self->_vartostring();
72 <        my $fullurl=$self->type()."://".$self->{server}.
73 <                        (($vars ne "")?"\?".$vars:"");
72 >        my $base=$self->base();
73 >        print "base= $base\n";
74 >        my $fullurl=$self->type()."://".(($base ne "")?$base."/":"").
75 >                        $self->file().(($vars ne "")?"\?".$vars:"");
76          return $fullurl;
77   }
78  
# Line 95 | Line 87 | sub transfervars {
87          }
88   }
89  
90 + sub fullfile {
91 +        my $self=shift;
92 +        return $self->{server}
93 + }
94 +
95 + sub base {
96 +        my $self=shift;
97 +        my $base="";
98 +        if ( $self->{server}=~/\/\// ) {
99 +          ($base=$self->{server})=~s/(.*)\/\/.*/$1/;
100 +        }
101 +        elsif ( $self->{server}=~/\// ) {
102 +          ($base=$self->{server})=~s/(.*)\/.*/$1/;
103 +        }  
104 +        return $base;
105 + }
106 +        
107   sub file {
108          my $self=shift;
109          my $file;
110  
111 <        if ( $self->{server}=~/\// ) {
111 >        if ( $self->{server}=~/\/\// ) {
112 >          ($file=$self->{server})=~s/.*\/\/(.*)/$1/;
113 >        }
114 >        elsif ( $self->{server}=~/\// ) {
115            ($file=$self->{server})=~s/.*\///g;
116          }
117          else {
# Line 112 | Line 124 | sub param {
124          my $self=shift;
125          my $param=shift;
126  
127 <        $self->{vars}{'param'};
127 >        $self->{vars}{$param};
128   }
129  
130   #
131   # --- Support Routines
132   #
133 +
134 + # push a base name into the url string
135 + sub _base {
136 +        my $self=shift;
137 +        if ( @_ ) {
138 +          my $server=shift;
139 +          if ( ($server ne "") && ($self->{server}!~/\/\//) &&
140 +                        ($self->{server}!~/$server/) ) {
141 +             # only set if not already in there
142 +             $self->{server}=$server."\/\/".$self->{server};
143 +          }
144 +        }
145 +        return $self->{server};
146 + }
147 +
148   sub _vartostring {
149          my $self=shift;
150  
151          my $string="";
152 <        foreach $key ( keys %{$self->{vars}} ) {
152 >        foreach $key ( sort(keys %{$self->{vars}}) ) {
153            $string=$string.(($string eq "")?"":"\&").$key."=".$self->{vars}{$key};
154          }
155          return $string;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines