lib/open_classes/string.rb in tbpgr_utils-0.0.6 vs lib/open_classes/string.rb in tbpgr_utils-0.0.7
- old
+ new
@@ -1,57 +1,71 @@
-# encoding: utf-8
-
-# =String
-class String
- # ==justify pipe using table format
- 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
+# 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