1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
package WWW::Mechanize::Image;
use strict;
use warnings;
our $VERSION = '2.19';
#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.19
=head1 SYNOPSIS
Image object to encapsulate all the stuff that Mech needs
=head1 Constructor
=head2 new()
Creates and returns a new C<WWW::Mechanize::Image> 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<src> attribute of the source tag.
May be C<undef> if source tag has no C<src> 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<URI::URL> object.
=head2 $image->url_abs()
Returns the URL as an absolute URL string.
=head1 SEE ALSO
L<WWW::Mechanize> and L<WWW::Mechanize::Link>
=head1 AUTHOR
Andy Lester <andy at petdance.com>
=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
|