aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMarkus Reiter2016-10-15 17:15:20 +0200
committerMarkus Reiter2016-10-15 17:22:10 +0200
commit581a1245bf2c038a2f35fb10445592c7655108e3 (patch)
tree2c27248754a6c2b234adc7faae70e28c67ca0d17 /Library
parentef70677e881855f1e7b51f158752e1ee78b27a96 (diff)
downloadbrew-581a1245bf2c038a2f35fb10445592c7655108e3.tar.bz2
Move `Formatter.columns` into `utils/formatter`.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/utils/formatter.rb42
-rw-r--r--Library/Homebrew/utils/formatter/columns.rb46
2 files changed, 41 insertions, 47 deletions
diff --git a/Library/Homebrew/utils/formatter.rb b/Library/Homebrew/utils/formatter.rb
index 3759e2b4f..a29a0d491 100644
--- a/Library/Homebrew/utils/formatter.rb
+++ b/Library/Homebrew/utils/formatter.rb
@@ -1,4 +1,3 @@
-require "utils/formatter/columns"
require "utils/tty"
module Formatter
@@ -50,4 +49,45 @@ module Formatter
end
end
private_class_method :prefix
+
+ def columns(*objects, gap_size: 2)
+ objects = objects.flatten.map(&:to_s)
+
+ fallback = proc do
+ return objects.join("\n").concat("\n")
+ end
+
+ fallback.call if objects.empty?
+ fallback.call if respond_to?(:tty?) ? !tty? : !$stdout.tty?
+
+ console_width = Tty.width
+ object_lengths = objects.map { |obj| Tty.strip_ansi(obj).length }
+ cols = (console_width + gap_size) / (object_lengths.max + gap_size)
+
+ fallback.call if cols < 2
+
+ rows = (objects.count + cols - 1) / cols
+ cols = (objects.count + rows - 1) / rows # avoid empty trailing columns
+
+ col_width = (console_width + gap_size) / cols - gap_size
+
+ gap_string = "".rjust(gap_size)
+
+ output = ""
+
+ rows.times do |row_index|
+ item_indices_for_row = row_index.step(objects.size - 1, rows).to_a
+
+ first_n = item_indices_for_row[0...-1].map { |index|
+ objects[index] + "".rjust(col_width - object_lengths[index])
+ }
+
+ # don't add trailing whitespace to last column
+ last = objects.values_at(item_indices_for_row.last)
+
+ output.concat((first_n + last).join(gap_string)).concat("\n")
+ end
+
+ output
+ end
end
diff --git a/Library/Homebrew/utils/formatter/columns.rb b/Library/Homebrew/utils/formatter/columns.rb
deleted file mode 100644
index 6488ef35f..000000000
--- a/Library/Homebrew/utils/formatter/columns.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-require "utils/tty"
-
-module Formatter
- module_function
-
- def columns(*objects, gap_size: 2)
- objects = objects.flatten.map(&:to_s)
-
- fallback = proc do
- return objects.join("\n").concat("\n")
- end
-
- fallback.call if objects.empty?
- fallback.call if respond_to?(:tty?) ? !tty? : !$stdout.tty?
-
- console_width = Tty.width
- object_lengths = objects.map { |obj| Tty.strip_ansi(obj).length }
- cols = (console_width + gap_size) / (object_lengths.max + gap_size)
-
- fallback.call if cols < 2
-
- rows = (objects.count + cols - 1) / cols
- cols = (objects.count + rows - 1) / rows # avoid empty trailing columns
-
- col_width = (console_width + gap_size) / cols - gap_size
-
- gap_string = "".rjust(gap_size)
-
- output = ""
-
- rows.times do |row_index|
- item_indices_for_row = row_index.step(objects.size - 1, rows).to_a
-
- first_n = item_indices_for_row[0...-1].map { |index|
- objects[index] + "".rjust(col_width - object_lengths[index])
- }
-
- # don't add trailing whitespace to last column
- last = objects.values_at(item_indices_for_row.last)
-
- output.concat((first_n + last).join(gap_string)).concat("\n")
- end
-
- output
- end
-end