lib/open_classes/string.rb in tbpgr_utils-0.0.38 vs lib/open_classes/string.rb in tbpgr_utils-0.0.39
- old
+ new
@@ -1,71 +1,3 @@
# encoding: utf-8
-
-# String
-class String
- # Justify pipe using table format
- #
- # before justify
- #
- # |* first name|* family name|
- # |eiichiro|oda|
- # |akira|toriyama|
- # |yusei|matsui|
- #
- # after justify
- #
- # |* first name|* family name|
- # |eiichiro |oda |
- # |akira |toriyama |
- # |yusei |matsui |
- def justify_table
- return self if self.empty?
- max_sizes = get_column_maxes
- return self if max_sizes.nil?
- justify_lines max_sizes
- end
-
- private
-
- def get_column_maxes
- max_sizes = []
- each_line do |line|
- return nil unless table? line
- columns = get_columuns(line)
- max_sizes = get_column_max(columns, max_sizes)
- end
- max_sizes
- end
-
- def justify_lines(max_sizes)
- ret = []
- each_line do |line|
- columns = get_columuns(line)
- line_ret = []
- columns.each_with_index do |column, cnt|
- line_ret << column.ljust(max_sizes[cnt])
- end
- ret << "|#{line_ret.join('|')}|"
- end
- ret.join("\n") + "\n"
- end
-
- def get_columuns(line)
- line.split('|')[1..-2]
- end
-
- def get_column_max(columns, max_sizes)
- columns.each_with_index do |column, index|
- current_size = column.size
- if max_sizes[index].nil?
- max_sizes << current_size
- next
- end
- max_sizes[index] = current_size if current_size > max_sizes[index]
- end
- max_sizes
- end
-
- def table?(text)
- text.count('|') > 0
- end
-end
+require 'open_classes/string/justify_table'
+require 'open_classes/string/surround'