From f2d78eafe9928f36c8194f8c842b3c65b4331e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20G=C3=B3recki?= Date: Wed, 5 Jul 2017 08:59:20 +0200 Subject: [PATCH] Corrected chunkifying --- colorls.rb | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/colorls.rb b/colorls.rb index ba02cc2..499c75c 100755 --- a/colorls.rb +++ b/colorls.rb @@ -73,7 +73,6 @@ class ColorLS # rubocop:disable ClassLength def ls @contents = chunkify - @max_widths = @contents.transpose.map { |c| c.map(&:length).max } @contents.each { |chunk| ls_line(chunk) } print "\n" display_report if @report @@ -100,22 +99,24 @@ class ColorLS # rubocop:disable ClassLength def chunkify if @one_per_line - @contents.zip - else - chunk_size = @contents.count - - until in_line(chunk_size) || chunk_size <= 1 - chunk_size -= 1 - chunk = get_chunk(chunk_size) - end - - chunk || [@contents] + @max_widths = [@max_widths.max] + return @contents.zip end + + chunk_size = @contents.count + + until in_line(chunk_size) || chunk_size <= 1 + chunk_size -= 1 + chunk = get_chunk(chunk_size) + end + + chunk || [@contents] end def get_chunk(chunk_size) - chunk = @contents.each_slice(chunk_size).to_a - chunk.last += [''] * (chunk_size - chunk.last.count) + chunk = @contents.each_slice(chunk_size).to_a + chunk.last += [''] * (chunk_size - chunk.last.count) + @max_widths = chunk.transpose.map { |c| c.map(&:length).max } chunk end