class Mechanize::Page::Image
An image element on an HTML page
Attributes
Public Class Methods
Creates a new Mechanize::Page::Image from an image
node
and source page
.
# File lib/mechanize/page/image.rb, line 14 def initialize node, page @node = node @page = page @mech = page.mech end
Public Instance Methods
The alt attribute of the image
# File lib/mechanize/page/image.rb, line 23 def alt node['alt'] end
The caption of the image. In order of preference, the title, alt, or empty string “”.
# File lib/mechanize/page/image.rb, line 31 def caption title || alt || '' end
The class attribute of the image
# File lib/mechanize/page/image.rb, line 40 def dom_class node['class'] end
The id attribute of the image
# File lib/mechanize/page/image.rb, line 47 def dom_id node['id'] end
The suffix of the url. The dot is a part of suffix, not a delimiter.
p image.url # => "http://example/test.jpg" p image.extname # => ".jpg"
Returns an empty string if url has no suffix:
p image.url # => "http://example/sampleimage" p image.extname # => ""
# File lib/mechanize/page/image.rb, line 62 def extname return nil unless src File.extname url.path end
Downloads the image.
agent.page.image_with(:src => /logo/).fetch.save
The referer is:
- page(“parent”)
-
all images on http html, relative src images on https html
- (no referer)
-
absolute src images on https html
- user specified
-
img.fetch(nil, my_referer_uri_or_page)
# File lib/mechanize/page/image.rb, line 82 def fetch parameters = [], referer = nil, headers = {} mech.get src, parameters, referer || image_referer, headers end
The height attribute of the image
# File lib/mechanize/page/image.rb, line 89 def height node['height'] end
MIME type guessed from the image url suffix
p image.extname # => ".jpg" p image.mime_type # => "image/jpeg" page.images_with(:mime_type => /gif|jpeg|png/).each do ...
Returns nil if url has no (well-known) suffix:
p image.url # => "http://example/sampleimage" p image.mime_type # => nil
# File lib/mechanize/page/image.rb, line 117 def mime_type suffix_without_dot = extname ? extname.sub(/\A\./){''}.downcase : nil Mechanize::Util::DefaultMimeTypes[suffix_without_dot] end
The src attribute of the image
# File lib/mechanize/page/image.rb, line 139 def src node['src'] end
The title attribute of the image
# File lib/mechanize/page/image.rb, line 146 def title node['title'] end
The URL string of this image
# File lib/mechanize/page/image.rb, line 153 def to_s url.to_s end
URI for this image
# File lib/mechanize/page/image.rb, line 160 def url if relative? then if page.bases[0] then page.bases[0].href + src.to_s else page.uri + Mechanize::Util.uri_escape(src.to_s) end else URI Mechanize::Util.uri_escape(src) end end
The width attribute of the image
# File lib/mechanize/page/image.rb, line 177 def width node['width'] end