class WWW::Mechanize::Form::MultiSelectList
list.value = ‘one’
list.value = [‘one’]
Single values are still supported, so these two are the same:
list.value = [‘one’, ‘two’]
simply do this:
values for the select list. For example, to select multiple values,
MultiSelectList#value= accepts an array, and those values are used as
This class represents a select list where multiple values can be selected.
def initialize(name, node)
def initialize(name, node) value = [] @options = WWW::Mechanize::List.new # parse (node/'option').each do |n| option = Option.new(n, self) @options << option end super(name, value) end
def query_value
def query_value value ? value.collect { |v| [name, v] } : '' end
def select_all
def select_all @value = [] options.each { |o| o.tick } end
def select_none
def select_none @value = [] options.each { |o| o.untick } end
def selected_options
def selected_options @options.find_all { |o| o.selected? } end
def value
def value value = [] value.push(*@value) value.push(*selected_options.collect { |o| o.value }) value end
def value=(values)
def value=(values) select_none values.each do |value| option = options.find { |o| o.value == value } if option.nil? @value.push(value) else option.select end end end