69 lines
2 KiB
Ruby
69 lines
2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
COLUMNS = 3
|
|
files = []
|
|
|
|
def run(files)
|
|
served = serve(files)
|
|
sliced = slice(served)
|
|
filled = fill(sliced)
|
|
arranged(filled)
|
|
end
|
|
|
|
# def serve(files)
|
|
# Dir.glob('*').each do |file|
|
|
# files = file
|
|
# end
|
|
# end
|
|
|
|
def serve(files)
|
|
files.concat(Dir.glob('*'))
|
|
end
|
|
|
|
def slice(served)
|
|
element = if (served.size % COLUMNS).zero?
|
|
served.size / COLUMNS
|
|
else
|
|
served.size / COLUMNS + 1
|
|
end
|
|
served.each_slice(element).to_a
|
|
end
|
|
|
|
def fill(sliced)
|
|
array_size = sliced.map(&:size).max
|
|
sliced.each do |slice|
|
|
slice << '' while slice.size < array_size
|
|
end
|
|
sliced.transpose
|
|
end
|
|
|
|
def arranged(filled)
|
|
element2 = filled.flatten.map(&:size).max
|
|
filled.each do |arrange|
|
|
arrange.each do |arranged|
|
|
print arranged.ljust(element2 + 5)
|
|
end
|
|
puts
|
|
end
|
|
end
|
|
|
|
run(files)
|
|
|
|
# ls.rb:13:11: W: [Correctable] Lint/UnusedMethodArgument: Unused method argument - files. If it's necessary, use _ or _files as an argument name to indicate that it won't be used. If it's unnecessary, remove it. You can also write as serve(*) if you want the method to accept any arguments but don't care about them.
|
|
# def serve(files)
|
|
# ls.rb:27:27: C: [Correctable] Style/SymbolProc: Pass &:size as an argument to map instead of a block.
|
|
# array_size = sliced.map { |array| array.size }.max
|
|
# ^^^^^^^^^^^^^^^^^^^^^^
|
|
# ls.rb:34:1: C: Metrics/AbcSize: Assignment Branch Condition size for arranged is too high. [<5, 20, 6> 21.47/17]
|
|
# def arranged(filled) ...
|
|
# ^^^^^^^^^^^^^^^^^^^^
|
|
# ls.rb:34:1: C: Metrics/MethodLength: Method has too many lines. [14/10]
|
|
# def arranged(filled) ...
|
|
# ^^^^^^^^^^^^^^^^^^^^
|
|
# ls.rb:35:33: C: [Correctable] Style/SymbolProc: Pass &:size as an argument to map instead of a block.
|
|
# element2 = filled.flatten.map { |array| array.size }.max
|
|
# ^^^^^^^^^^^^^^^^^^^^^^
|
|
# ls.rb:43:32: W: Lint/ShadowingOuterLocalVariable: Shadowing outer local variable - arrange.
|
|
# arrange.compact.each do |arrange|
|
|
# ^^^^^^^
|
|
|