Sha256: 51dce4039c84ddd28555118b6a952a8368db72e47c086f7f9d8097e300005d66

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module WWW
  class Mechanize
    class Form
      # This class represents a select list or drop down box in a Form.  Set the
      # value for the list by calling SelectList#value=.  SelectList contains a
      # list of Option that were found.  After finding the correct option, set
      # the select lists value to the option value:
      #  selectlist.value = selectlist.options.first.value
      # Options can also be selected by "clicking" or selecting them.  See Option
      class SelectList < MultiSelectList
        def initialize(name, node)
          super(name, node)
          if selected_options.length > 1
            selected_options.reverse[1..selected_options.length].each do |o|
              o.unselect
            end
          end
        end

        def value
          value = super
          if value.length > 0
            value.last
          elsif @options.length > 0
            @options.first.value
          else
            nil
          end
        end

        def value=(new)
          if new != new.to_s and new.respond_to? :first
            super([new.first])
          else
            super([new.to_s])
          end
        end

        def query_value
          value ? [[name, value]] : nil
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 4 rubygems

Version Path
eric-mechanize-0.9.3.20090623142847 lib/www/mechanize/form/select_list.rb
knu-mechanize-0.9.3.20090623142847 lib/www/mechanize/form/select_list.rb
tenderlove-mechanize-0.9.3.20090617085936 lib/www/mechanize/form/select_list.rb
tenderlove-mechanize-0.9.3.20090623142847 lib/www/mechanize/form/select_list.rb
mechanize-0.9.3 lib/www/mechanize/form/select_list.rb