This file is indexed.

/usr/lib/ruby/1.8/mechanize/form/multi_select_list.rb is in libwww-mechanize-ruby1.8 1.0.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
class Mechanize
  class Form
    # 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'
    class MultiSelectList < Field
      attr_accessor :options

      def initialize node
        value = []
        @options = []

        # parse
        node.search('option').each do |n|
          option = Option.new(n, self)
          @options << option
        end
        super(node, value)
      end

      def query_value
        value ? value.collect { |v| [name, v] } : ''
      end

      # Select no options
      def select_none
        @value = []
        options.each { |o| o.untick }
      end

      # Select all options
      def select_all
        @value = []
        options.each { |o| o.tick }
      end

      # Get a list of all selected options
      def selected_options
        @options.find_all { |o| o.selected? }
      end

      def value=(values)
        select_none
        [values].flatten.each do |value|
          option = options.find { |o| o.value == value }
          if option.nil?
            @value.push(value)
          else
            option.select
          end
        end
      end

      def value
        value = []
        value.push(*@value)
        value.push(*selected_options.collect { |o| o.value })
        value
      end
    end
  end
end