home *** CD-ROM | disk | FTP | other *** search
/ CLIX - Fazer Clix Custa Nix / CLIX-CD.cdr / mac / lib / URI / URL / nntp.pm < prev    next >
Text File  |  1996-08-01  |  1KB  |  45 lines

  1. package URI::URL::nntp;
  2. require URI::URL::_generic;
  3. @ISA = qw(URI::URL::_generic);
  4.  
  5. use URI::Escape;
  6.  
  7. sub default_port { 119 }
  8.  
  9. sub _parse {
  10.     my($self, $init) = @_;
  11.     $self->URI::URL::_generic::_parse($init, qw(netloc path frag));
  12.  
  13.     my @parts = $self->path_components;
  14.     shift @parts if @parts && $parts[0] eq '';
  15.  
  16.     $self->{'group'} = uri_unescape($parts[0]);
  17.     $self->{'digits'}= uri_unescape($parts[1]);
  18. }
  19.  
  20. sub group   { shift->_elem('group',  @_); }
  21. sub digits  { shift->_elem('digits', @_); }
  22. sub article { shift->_elem('digits', @_); }
  23.  
  24. sub as_string {
  25.     my $self = shift;
  26.     my $str = "$self->{'scheme'}:";
  27.     $str .= "//$self->{'netloc'}" if defined $self->{'netloc'};
  28.     $str .= "/" . uri_escape($self->{'group'}) . "/" .
  29.           uri_escape($self->{'digits'});
  30.     $str;
  31. }
  32.  
  33. # Standard methods are not legal for nntp URLs
  34. *path      = \&URI::URL::bad_method;
  35. *epath     = \&URI::URL::bad_method;
  36. *query     = \&URI::URL::bad_method;
  37. *equery    = \&URI::URL::bad_method;
  38. *params    = \&URI::URL::bad_method;
  39. *eparams   = \&URI::URL::bad_method;
  40. *frag      = \&URI::URL::bad_method;
  41. *user      = \&URI::URL::bad_method;
  42. *password  = \&URI::URL::bad_method;
  43.  
  44. 1;
  45.