HTML::LinkChanger::Absolutizer - subclass of HTML::LinkChanger that converts


HTML-LinkChanger documentation Contained in the HTML-LinkChanger distribution.

Index


Code Index:

NAME

Top

HTML::LinkChanger::Absolutizer - subclass of HTML::LinkChanger that converts all relative URLs to absolute ones.

SYNOPSIS

Top

use HTML::LinkChanger; use HTML::LinkChanger::Absolutizer;

my $filters = [ new HTML::LinkChanger::Absolutizer( base_url => 'http://www.google.com/' ) ];

my $changer = new HTML::LinkChanger( url_filters => $filters );

my $out = $changer->filter($in);

DESCRIPTION

Top

HTML::LinkChanger::Absolutizer is an implementation of HTML::LinkChanger::URLFilter that can be used in HTML::LinkChanger to convert all relative URLs to absolute.

This module can be very useful when processing RSS feeds for example since RSS standards are not very strict about relative URL handling and might misinterpret them.

AUTHOR

Top

Sergey Chernyshev <sergeyche@cpan.org>

SEE ALSO

Top

HTML::LinkChanger


HTML-LinkChanger documentation Contained in the HTML-LinkChanger distribution.

package HTML::LinkChanger::Absolutizer;

# Version: $Id: Absolutizer.pm 4 2007-10-05 15:51:37Z sergey.chernyshev $

use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;
require HTML::LinkChanger::URLFilter;
require URI;
require HTML::LinkChanger;

@ISA = qw(Exporter AutoLoader HTML::LinkChanger::URLFilter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@EXPORT = qw(
	
);
$VERSION = sprintf("2.%d", q$Rev: 4 $ =~ /(\d+)/);

# Preloaded methods go here.

# Autoload methods go after =cut, and are processed by the autosplit program.

sub new
{
	my $class = shift;
	my %args = @_;

	die "Must specify base URL" unless $args{base_url};

	my $self = $class->SUPER::new();

	$self->{_absolutizer_base} = URI->new($args{base_url});

	$self;
}

sub url_filter
{
	my $self = shift;
	my %args = @_;

	my $url	= $args{url};   # url of the link
	my $tag = $args{tag};   # tag containing a link to change
	my $attr = $args{attr}; # attribute containing a link to change
					
	my $base = $self->{_absolutizer_base};

	return URI->new($url, $base)->abs($base);
}

1;
__END__