This file is indexed.

/usr/lib/ruby/vendor_ruby/fog/core/attributes/default.rb is in ruby-fog-core 1.45.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
68
69
70
71
72
73
74
75
76
77
78
module Fog
  module Attributes
    # = Fog Default Attribute
    #
    # This class handles the attributes without a type force.
    # The attributes returned from the provider will keep its original values.
    class Default
      attr_reader :model, :name, :squash, :aliases, :default, :as

      def initialize(model, name, options)
        @model = model
        @model.attributes << name
        @name = name
        @squash = options.fetch(:squash, false)
        @aliases = options.fetch(:aliases, [])
        @default = options[:default]
        @as = options.fetch(:as, name)
        create_setter
        create_getter
        create_aliases
        set_defaults
        create_mask
      end

      def create_setter
        if squash
          model.class_eval <<-EOS, __FILE__, __LINE__
              def #{name}=(new_data)
                if new_data.is_a?(Hash)
                  if new_data.has_key?(:'#{squash}')
                    attributes[:#{name}] = new_data[:'#{squash}']
                  elsif new_data.has_key?("#{squash}")
                    attributes[:#{name}] = new_data["#{squash}"]
                  else
                    attributes[:#{name}] = [ new_data ]
                  end
                else
                  attributes[:#{name}] = new_data
                end
              end
          EOS
        else
          model.class_eval <<-EOS, __FILE__, __LINE__
              def #{name}=(new_#{name})
                attributes[:#{name}] = new_#{name}
              end
          EOS
        end
      end

      def create_getter
        model.class_eval <<-EOS, __FILE__, __LINE__
          def #{name}
            return attributes[:#{name}] unless attributes[:#{name}].nil?
            if !attributes.key?(:#{name}) && !self.class.default_values[:#{name}].nil? && !persisted?
              return self.class.default_values[:#{name}]
            end
            attributes[:#{name}]
          end
        EOS
      end

      def create_aliases
        Array(aliases).each do |alias_name|
          model.aliases[alias_name] = name
        end
      end

      def set_defaults
        model.default_values[name] = default unless default.nil?
      end

      def create_mask
        model.masks[name] = as
      end
    end
  end
end