This file is indexed.

/usr/lib/ruby/vendor_ruby/mercenary/option.rb is in ruby-mercenary 0.3.4-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
80
81
82
83
84
85
86
87
module Mercenary
  class Option
    attr_reader :config_key, :description, :short, :long, :return_type

    # Public: Create a new Option
    #
    # config_key - the key in the config hash to which the value of this option
    #              will map
    # info       - an array containing first the switches, then an optional
    #              return type (e.g. Array), then a description of the option
    #
    # Returns nothing
    def initialize(config_key, info)
      @config_key  = config_key
      while arg = info.shift
        begin
          @return_type = Object.const_get("#{arg}")
          next
        rescue NameError
        end
        if arg.start_with?("-")
          if arg.start_with?("--")
            @long = arg
          else
            @short = arg
          end
          next
        end
        @description = arg
      end
    end

    # Public: Fetch the array containing the info OptionParser is interested in
    #
    # Returns the array which OptionParser#on wants
    def for_option_parser
      [short, long, return_type, description].flatten.reject{ |o| o.to_s.empty? }
    end

    # Public: Build a string representation of this option including the
    #   switches and description
    #
    # Returns a string representation of this option
    def to_s
      "#{formatted_switches}  #{description}"
    end

    # Public: Build a beautifully-formatted string representation of the switches
    #
    # Returns a formatted string representation of the switches
    def formatted_switches
      [
        switches.first.rjust(10),
        switches.last.ljust(13)
      ].join(", ").gsub(/ , /, '   ').gsub(/,   /, '    ')
    end

    # Public: Hash based on the hash value of instance variables
    #
    # Returns a Fixnum which is unique to this Option based on the instance variables
    def hash
      instance_variables.map do |var|
        instance_variable_get(var).hash
      end.reduce(:^)
    end

    # Public: Check equivalence of two Options based on equivalence of their
    #   instance variables
    #
    # Returns true if all the instance variables are equal, false otherwise
    def eql?(other)
      return false unless self.class.eql?(other.class)
      instance_variables.map do |var|
        instance_variable_get(var).eql?(other.instance_variable_get(var))
      end.all?
    end

    # Public: Fetch an array of switches, including the short and long versions
    #
    # Returns an array of two strings. An empty string represents no switch in
    # that position.
    def switches
      [short, long].map(&:to_s)
    end

  end
end