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
# File lib/indentation/array_mod.rb, line 4 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
# File lib/indentation/array_mod.rb, line 20 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
Get the least indentation of all elements
# File lib/indentation/array_mod.rb, line 58 def find_least_indentation(options = {:ignore_blank_lines => true, :ignore_empty_lines => true}) self.collect{|array_element| array_element.find_least_indentation }.min 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
# File lib/indentation/array_mod.rb, line 38 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
# File lib/indentation/array_mod.rb, line 51 def indent!(num = nil, i_char = ' ') self.collect! do |array_element| array_element.indent!(num, i_char) end 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
# File lib/indentation/array_mod.rb, line 64 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
# File lib/indentation/array_mod.rb, line 70 def reset_indentation!(modifier = 0) indent!(-find_least_indentation + modifier) end