This file is indexed.

/usr/lib/ruby/vendor_ruby/enumerize/set.rb is in ruby-enumerize 1.1.1-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
68
69
70
71
72
73
74
75
76
77
78
79
require 'active_support/core_ext/module/delegation'

module Enumerize
  class Set
    include Enumerable
    include Predicatable

    attr_reader :values

    def initialize(obj, attr, values)
      @obj    = obj
      @attr   = attr
      @values = []

      if values.respond_to?(:each)
        values.each do |input|
          value = @attr.find_value(input)

          if value && !@values.include?(value)
            @values << value
          end
        end
      end
    end

    def <<(value)
      @values << value
      mutate!
    end

    alias_method :push, :<<

    delegate :each, :empty?, :size, to: :values

    def to_ary
      @values.to_a
    end

    def texts
      @values.map(&:text)
    end

    delegate :join, to: :to_ary

    def ==(other)
      return false unless other.respond_to?(:each)
      other.size == size && other.all? { |v| @values.include?(@attr.find_value(v)) }
    end

    alias_method :eql?, :==

    def include?(value)
      @values.include?(@attr.find_value(value))
    end

    def delete(value)
      @values.delete(@attr.find_value(value))
      mutate!
    end

    def inspect
      "#<Enumerize::Set {#{join(', ')}}>"
    end

    def encode_with(coder)
      coder.represent_object(Array, @values)
    end

    private

    def predicate_call(value)
      include?(value)
    end

    def mutate!
      @values = @obj.public_send("#{@attr.name}=", @values).values
    end
  end
end