From 03884289e3954f8fb6d16a8226d60c6483191e56 Mon Sep 17 00:00:00 2001 From: Rikuoh Date: Thu, 16 May 2024 09:15:11 +0900 Subject: [PATCH] -l --- ls.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ls.rb b/ls.rb index 4bbd84f..95200da 100644 --- a/ls.rb +++ b/ls.rb @@ -26,6 +26,7 @@ def list_filenames end def ownerinfo(filenames) + file_blocks(filenames) filenames.each do |file| file_stat = File::Stat.new(file) file_type(file_stat) @@ -40,11 +41,11 @@ def ownerinfo(filenames) end end -def symbolic(file) - if File.lstat(file).symlink? - print " #{file} -> #{File.readlink(file)}" +def symbolic(filenames) + if File.lstat(filenames).symlink? + print " #{filenames} -> #{File.readlink(filenames)}" else - print " #{file}" + print " #{filenames}" end end @@ -71,6 +72,8 @@ def file_type(file_stat) print 'd' when 'characterSpecial' print 'c' + when 'blockSpecial' + print 'b' when 'fifo' print 'p' when 'link' @@ -88,6 +91,13 @@ def timestamp(file_stat) print file_stat.mtime.strftime('%_m %_d %H:%M') end +def file_blocks(filenames) + blocks = filenames.map do |file| + File::Stat.new(file).blocks + end + puts "total #{blocks.sum}" +end + def slice_filenames(listed_filenames) columns_size = listed_filenames.size.ceildiv(COLUMNS) listed_filenames.each_slice(columns_size).to_a