Class WWW::Mechanize::Form::MultiSelectList
In: lib/www/mechanize/form/multi_select_list.rb
Parent: Field
Mechanize\n[lib/www/mechanize.rb\nlib/www/mechanize/content_type_error.rb\nlib/www/mechanize/cookie.rb\nlib/www/mechanize/cookie_jar.rb\nlib/www/mechanize/file.rb\nlib/www/mechanize/file_saver.rb\nlib/www/mechanize/form.rb\nlib/www/mechanize/form/button.rb\nlib/www/mechanize/form/check_box.rb\nlib/www/mechanize/form/field.rb\nlib/www/mechanize/form/file_upload.rb\nlib/www/mechanize/form/image_button.rb\nlib/www/mechanize/form/multi_select_list.rb\nlib/www/mechanize/form/option.rb\nlib/www/mechanize/form/radio_button.rb\nlib/www/mechanize/form/select_list.rb\nlib/www/mechanize/headers.rb\nlib/www/mechanize/history.rb\nlib/www/mechanize/list.rb\nlib/www/mechanize/monkey_patch.rb\nlib/www/mechanize/page.rb\nlib/www/mechanize/page/base.rb\nlib/www/mechanize/page/frame.rb\nlib/www/mechanize/page/link.rb\nlib/www/mechanize/page/meta.rb\nlib/www/mechanize/pluggable_parsers.rb\nlib/www/mechanize/response_code_error.rb\nlib/www/mechanize/unsupported_scheme_error.rb] lib/www/mechanize/headers.rb WWW dot/m_32_0.png

This class represents a select list where multiple values can be selected. MultiSelectList#value= accepts an array, and those values are used as values for the select list. For example, to select multiple values, simply do this:

 list.value = ['one', 'two']

Single values are still supported, so these two are the same:

 list.value = ['one']
 list.value = 'one'

Methods

Attributes

options  [RW] 

Public Class methods

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 15
15:         def initialize(name, node)
16:           value = []
17:           @options = WWW::Mechanize::List.new
18:       
19:           # parse
20:           (node/'option').each do |n|
21:             option = Option.new(n, self)
22:             @options << option
23:           end
24:           super(name, value)
25:         end

Public Instance methods

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 27
27:         def query_value
28:           value ? value.collect { |v| [name, v] } : ''
29:         end

Select all options

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 38
38:         def select_all
39:           @value = []
40:           options.each { |o| o.tick }
41:         end

Select no options

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 32
32:         def select_none
33:           @value = []
34:           options.each { |o| o.untick }
35:         end

Get a list of all selected options

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 44
44:         def selected_options
45:           @options.find_all { |o| o.selected? }
46:         end

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 60
60:         def value
61:           value = []
62:           value.push(*@value)
63:           value.push(*selected_options.collect { |o| o.value })
64:           value
65:         end

[Source]

    # File lib/www/mechanize/form/multi_select_list.rb, line 48
48:         def value=(values)
49:           select_none
50:           values.each do |value|
51:             option = options.find { |o| o.value == value }
52:             if option.nil?
53:               @value.push(value)
54:             else
55:               option.select
56:             end
57:           end
58:         end

[Validate]