fjord/ls.rb

40 lines
883 B
Ruby
Raw Normal View History

2024-04-11 21:51:53 +09:00
# frozen_string_literal: true
2024-04-15 22:48:09 +09:00
COLUMNS = 3
2024-04-11 21:51:53 +09:00
2024-04-24 22:37:28 +09:00
def run
listed_filenames = list_filenames
filenames_matrix = slice_filenames(listed_filenames)
filled_filenames = fill_filenames(filenames_matrix)
arrange_filenames(filled_filenames)
2024-04-11 21:51:53 +09:00
end
2024-04-24 22:37:28 +09:00
def list_filenames
2024-04-23 07:45:29 +09:00
Dir.glob('*')
2024-04-11 21:51:53 +09:00
end
2024-04-24 22:37:28 +09:00
def slice_filenames(listed_filenames)
columns_size = listed_filenames.size.ceildiv(COLUMNS)
listed_filenames.each_slice(columns_size).to_a
2024-04-11 21:51:53 +09:00
end
2024-04-24 22:37:28 +09:00
def fill_filenames(filenames_matrix)
array_size = filenames_matrix.map(&:size).max
filenames_matrix.each do |slice|
2024-04-15 22:48:09 +09:00
slice << '' while slice.size < array_size
2024-04-11 21:51:53 +09:00
end
2024-04-24 22:37:28 +09:00
filenames_matrix.transpose
2024-04-11 21:51:53 +09:00
end
2024-04-24 22:37:28 +09:00
def arrange_filenames(filled_filenames)
filenames_count = filled_filenames.flatten.map(&:size).max
filled_filenames.each do |arrange|
2024-04-15 22:48:09 +09:00
arrange.each do |arranged|
2024-04-24 22:37:28 +09:00
print arranged.ljust(filenames_count + 5)
2024-04-11 21:51:53 +09:00
end
puts
end
end
2024-04-24 22:37:28 +09:00
run