class Array
Public Instance Methods
Source
# 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
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
Source
# 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
Append the given separator(s) to the current array
Source
# File lib/indentation/array_mod.rb, line 75 def english_join(conjunction = 'and', separator = ', ', oxford_comma = true) len = self.length return '' if len == 0 return self[0].to_s if len == 1 return "#{self[0].to_s} #{conjunction} #{self[1].to_s}" if len == 2 join_str = '' self.each_with_index{|ele, i| str = if !oxford_comma && i == len - 2 "#{ele} #{conjunction} " elsif i == len - 2 "#{ele}#{separator}#{conjunction} " elsif i == len - 1 "#{ele}" else "#{ele}#{separator}" end join_str << str } join_str end
Join an array of strings using English list punctuation.
Source
# 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
Get the least indentation of all elements
Source
# 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
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
Source
# 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
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
Source
# File lib/indentation/array_mod.rb, line 64 def reset_indentation(modifier = 0) indent(-find_least_indentation + modifier) 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
Source
# File lib/indentation/array_mod.rb, line 70 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