package WWW::Mechanize::Image; use strict; use warnings; our $VERSION = '2.17'; #ABSTRACT: Image object for WWW::Mechanize sub new { my $class = shift; my $params = shift || {}; my $self = bless {}, $class; for my $param (qw( url base tag height width alt name attrs )) { # Check for what we passed in, not whether it's defined $self->{$param} = $params->{$param} if exists $params->{$param}; } # url and tag are always required for (qw( url tag )) { exists $self->{$_} or die "WWW::Mechanize::Image->new must have a $_ argument"; } return $self; } sub url { return ( $_[0] )->{url}; } sub base { return ( $_[0] )->{base}; } sub name { return ( $_[0] )->{name}; } sub tag { return ( $_[0] )->{tag}; } sub height { return ( $_[0] )->{height}; } sub width { return ( $_[0] )->{width}; } sub alt { return ( $_[0] )->{alt}; } sub attrs { return ( $_[0] )->{attrs}; } sub URI { my $self = shift; require URI::URL; my $URI = URI::URL->new( $self->url, $self->base ); return $URI; } sub url_abs { my $self = shift; return $self->URI->abs; } 1; __END__ =pod =encoding UTF-8 =head1 NAME WWW::Mechanize::Image - Image object for WWW::Mechanize =head1 VERSION version 2.17 =head1 SYNOPSIS Image object to encapsulate all the stuff that Mech needs =head1 Constructor =head2 new() Creates and returns a new C object. my $image = WWW::Mechanize::Image->new( { url => $url, base => $base, tag => $tag, name => $name, # From the INPUT tag height => $height, # optional width => $width, # optional alt => $alt, # optional attrs => $attr_ref, # optional } ); =head1 Accessors =head2 $image->url() Image URL from the C attribute of the source tag. May be C if source tag has no C attribute. =head2 $image->base() Base URL to which the links are relative. =head2 $image->name() Name for the field from the NAME attribute, if any. =head2 $image->tag() Tag name (either "image" or "input") =head2 $image->height() Image height =head2 $image->width() Image width =head2 $image->alt() ALT attribute from the source tag, if any. =head2 $image->attrs() Hash ref of all the attributes and attribute values in the tag. =head2 $image->URI() Returns the URL as a L object. =head2 $image->url_abs() Returns the URL as an absolute URL string. =head1 SEE ALSO L and L =head1 AUTHOR Andy Lester =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2004 by Andy Lester. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut