class Mechanize::Page::MetaRefresh
This class encapsulates a meta element with a refresh http-equiv. Mechanize treats meta refresh elements just like 'a' tags. MetaRefresh objects will contain links, but most likely will have no text.
Constants
- CONTENT_REGEXP
Matches the content attribute of a meta refresh element. After the match:
$1:: delay $3:: url
- UNSAFE
Regexp of unsafe URI characters that excludes % for Issue #177
Attributes
Time to wait before next refresh
This MetaRefresh links did not contain a url= in the content attribute and links to itself.
Public Class Methods
# File lib/mechanize/page/meta_refresh.rb, line 55 def self.from_node node, page, uri = nil http_equiv = node['http-equiv'] and /\ARefresh\z/i =~ http_equiv or return delay, uri, link_self = parse node['content'], uri return unless delay new node, page, delay, uri, link_self end
# File lib/mechanize/page/meta_refresh.rb, line 66 def initialize node, page, delay, href, link_self = false super node, page.mech, page @delay = delay.include?(?.) ? delay.to_f : delay.to_i @href = href @link_self = link_self end
Parses the delay and url from the content attribute of a meta refresh element.
Returns an array of [delay, url, #link_self], where the first two are strings containing the respective parts of the refresh value, and #link_self is a boolean value that indicates whether the url part is missing or empty. If base_uri, the URI of the current page is given, the value of url becomes an absolute URI.
# File lib/mechanize/page/meta_refresh.rb, line 42 def self.parse content, base_uri = nil m = CONTENT_REGEXP.match(content) or return delay, url = m[1], m[3] url &&= url.empty? ? nil : Mechanize::Util.uri_escape(url, UNSAFE) link_self = url.nil? if base_uri url = url ? base_uri + url : base_uri end return delay, url, link_self end
Public Instance Methods
# File lib/mechanize/page/meta_refresh.rb, line 74 def noreferrer? true end