Class Mechanize::History
In: lib/mechanize/history.rb
Parent: Array
Mechanize\n[lib/mechanize.rb\nlib/mechanize/chain.rb\nlib/mechanize/chain/auth_headers.rb\nlib/mechanize/chain/body_decoding_handler.rb\nlib/mechanize/chain/connection_resolver.rb\nlib/mechanize/chain/custom_headers.rb\nlib/mechanize/chain/handler.rb\nlib/mechanize/chain/header_resolver.rb\nlib/mechanize/chain/parameter_resolver.rb\nlib/mechanize/chain/pre_connect_hook.rb\nlib/mechanize/chain/request_resolver.rb\nlib/mechanize/chain/response_body_parser.rb\nlib/mechanize/chain/response_header_handler.rb\nlib/mechanize/chain/response_reader.rb\nlib/mechanize/chain/ssl_resolver.rb\nlib/mechanize/chain/uri_resolver.rb\nlib/mechanize/content_type_error.rb\nlib/mechanize/cookie.rb\nlib/mechanize/cookie_jar.rb\nlib/mechanize/file.rb\nlib/mechanize/file_response.rb\nlib/mechanize/file_saver.rb\nlib/mechanize/form.rb\nlib/mechanize/form/button.rb\nlib/mechanize/form/check_box.rb\nlib/mechanize/form/field.rb\nlib/mechanize/form/file_upload.rb\nlib/mechanize/form/image_button.rb\nlib/mechanize/form/multi_select_list.rb\nlib/mechanize/form/option.rb\nlib/mechanize/form/radio_button.rb\nlib/mechanize/form/select_list.rb\nlib/mechanize/headers.rb\nlib/mechanize/history.rb\nlib/mechanize/monkey_patch.rb\nlib/mechanize/page.rb\nlib/mechanize/page/base.rb\nlib/mechanize/page/frame.rb\nlib/mechanize/page/image.rb\nlib/mechanize/page/label.rb\nlib/mechanize/page/link.rb\nlib/mechanize/page/meta.rb\nlib/mechanize/pluggable_parsers.rb\nlib/mechanize/redirect_limit_reached_error.rb\nlib/mechanize/redirect_not_get_or_head_error.rb\nlib/mechanize/response_code_error.rb\nlib/mechanize/unsupported_scheme_error.rb\nlib/mechanize/util.rb] WWW dot/f_53.png

This class manages history for your mechanize object.

Methods

<<   clear   initialize_copy   new   pop   push   remove_from_index   shift   visited?   visited_page  

Attributes

max_size  [RW] 

Public Class methods

[Source]

    # File lib/mechanize/history.rb, line 7
 7:     def initialize(max_size = nil)
 8:       @max_size       = max_size
 9:       @history_index  = {}
10:     end

Public Instance methods

<<(page, uri = nil)

Alias for push

[Source]

    # File lib/mechanize/history.rb, line 37
37:     def clear
38:       @history_index.clear
39:       super
40:     end

[Source]

    # File lib/mechanize/history.rb, line 12
12:     def initialize_copy(orig)
13:       super
14:       @history_index = orig.instance_variable_get(:@history_index).dup
15:     end

[Source]

    # File lib/mechanize/history.rb, line 51
51:     def pop
52:       return nil if length == 0
53:       page = super
54:       remove_from_index(page)
55:       page
56:     end

[Source]

    # File lib/mechanize/history.rb, line 17
17:     def push(page, uri = nil)
18:       super(page)
19:       @history_index[(uri ? uri : page.uri).to_s] = page
20:       if @max_size && self.length > @max_size
21:         while self.length > @max_size
22:           self.shift
23:         end
24:       end
25:       self
26:     end

[Source]

    # File lib/mechanize/history.rb, line 42
42:     def shift
43:       return nil if length == 0
44:       page    = self[0]
45:       self[0] = nil
46:       super
47:       remove_from_index(page)
48:       page
49:     end

[Source]

    # File lib/mechanize/history.rb, line 29
29:     def visited?(url)
30:       ! visited_page(url).nil?
31:     end

[Source]

    # File lib/mechanize/history.rb, line 33
33:     def visited_page(url)
34:       @history_index[(url.respond_to?(:uri) ? url.uri : url).to_s]
35:     end

Private Instance methods

[Source]

    # File lib/mechanize/history.rb, line 59
59:     def remove_from_index(page)
60:       @history_index.each do |k,v|
61:         @history_index.delete(k) if v == page
62:       end
63:     end

[Validate]