/usr/lib/ruby/vendor_ruby/indentation/array_mod.rb is in ruby-indentation 0.0.6-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 | class Array
# Appends a given separator(s) to all but the last element in an array of Strings
# or if performed on an array of arrays, appends the separator element to the end of each array except the last
def append_separator(*separators)
len = self.length
ret_array = Array.new
self.each_with_index do |element, i|
new_element = element.dup
unless i == len - 1
separators.each do |separator|
new_element << separator
end
end
ret_array << new_element
end
ret_array
end
# Append the given separator(s) to the current array
def append_separator!(*separators)
len = self.length
self.each_with_index do |element, i|
unless i == len - 1
separators.each do |separator|
element << separator
end
end
end
end
# Return an indented array of strings (or an array of other arrays containing strings)
# Arguments:
# * num - How many of the specified indentation to use.
# Default for spaces is 2. Default for other is 1.
# If set to a negative value, removes that many of the specified indentation character,
# tabs, or spaces from the beginning of the string
# * i_char - Character (or string) to use for indentation
def indent(num = nil, i_char = ' ')
self.collect do |array_element|
array_element.indent(num, i_char)
end
end
# Apply indentation to this array
# Arguments:
# * num - How many of the specified indentation to use.
# Default for spaces is 2. Default for other is 1.
# If set to a negative value, removes that many of the specified indentation character,
# tabs, or spaces from the beginning of the string
# * i_char - Character (or string) to use for indentation
def indent!(num = nil, i_char = ' ')
self.collect! do |array_element|
array_element.indent!(num, i_char)
end
end
# Get the least indentation of all elements
def find_least_indentation(options = {:ignore_blank_lines => true, :ignore_empty_lines => true})
self.collect{|array_element| array_element.find_least_indentation }.min
end
# Find the least indentation of all elements and remove that amount (if any)
# Can pass an optional modifier that changes the indentation amount removed
def reset_indentation(modifier = 0)
indent(-find_least_indentation + modifier)
end
# Replaces the current array with one that has its indentation reset
# Can pass an optional modifier that changes the indentation amount removed
def reset_indentation!(modifier = 0)
indent!(-find_least_indentation + modifier)
end
end
|