Skip to content

Commit

Permalink
Merge pull request #502 from goar5670/short-report
Browse files Browse the repository at this point in the history
  • Loading branch information
avdv authored Mar 19, 2022
2 parents 234815d + e9166e8 commit 1f2c7ee
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 18 deletions.
24 changes: 16 additions & 8 deletions lib/colorls/core.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,24 @@ def ls_files(files)
ls
end

def display_report
puts <<~REPORT
def display_report(report_mode)
if report_mode == :short
puts <<~REPORT
Found #{@count.values.sum} items in total.
\s\s\s\sFolders: #{@count[:folders]}, Files: #{@count[:recognized_files] + @count[:unrecognized_files]}.
REPORT
.colorize(@colors[:report])
else
puts <<~REPORT
Found #{@count.values.sum} items in total.
\tFolders\t\t\t: #{@count[:folders]}
\tRecognized files\t: #{@count[:recognized_files]}
\tUnrecognized files\t: #{@count[:unrecognized_files]}
REPORT
.colorize(@colors[:report])
\tFolders\t\t\t: #{@count[:folders]}
\tRecognized files\t: #{@count[:recognized_files]}
\tUnrecognized files\t: #{@count[:unrecognized_files]}
REPORT
.colorize(@colors[:report])
end
end

private
Expand Down
9 changes: 6 additions & 3 deletions lib/colorls/flags.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def initialize(*args)
@light_colors = false

@opts = default_opts
@show_report = false
@report_mode = false
@exit_status_code = 0

parse_options
Expand Down Expand Up @@ -88,7 +88,7 @@ def process_args
$stderr.puts "#{dir}: #{e}".colorize(:red)
end

core.display_report if @show_report
core.display_report(@report_mode) if @report_mode

@exit_status_code
end
Expand Down Expand Up @@ -142,8 +142,11 @@ def add_common_options(options)
options.on('-d', '--dirs', 'show only directories') { @opts[:show] = :dirs }
options.on('-f', '--files', 'show only files') { @opts[:show] = :files }
options.on('--gs', '--git-status', 'show git status for each file') { @opts[:git_status] = true }
options.on('--report', 'show brief report') { @show_report = true }
options.on('-p', 'append / indicator to directories') { @opts[:indicator_style] = 'slash' }
options.on('--report=[WORD]', %w[short long], 'show report: short, long (default if omitted)') do |word|
word ||= :long
@report_mode = word.to_sym
end
options.on(
'--indicator-style=[STYLE]',
%w[none slash], 'append indicator with style STYLE to entry names: none, slash (-p) (default)'
Expand Down
25 changes: 18 additions & 7 deletions spec/color_ls/flags_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@
end.not_to output(/((r|-).*(w|-).*(x|-).*){3}/).to_stdout
}

it('does not display hidden files') { expect { subject }.not_to output(/\.hidden-file/).to_stdout }
it('does not show a report') { expect { subject }.not_to output(/Found \d+ contents/).to_stdout }
it('displays dirs & files alphabetically') { expect { subject }.to output(/a-file.+symlinks.+z-file/m).to_stdout }
it('does not display hidden files') { expect { subject }.not_to output(/\.hidden-file/).to_stdout }
it('displays dirs & files alphabetically') { expect { subject }.to output(/a-file.+symlinks.+z-file/m).to_stdout }

it 'does not show a report' do
expect { subject }.not_to output(/(Found \d+ items in total\.)|(Folders: \d+, Files: \d+\.)/).to_stdout
end

it 'displays multiple files per line' do
allow($stdout).to receive(:tty?).and_return(true)
Expand Down Expand Up @@ -352,11 +355,19 @@
end
end

context 'with unrecognized files' do
let(:args) { ['--report', FIXTURES] }
context 'with --report flag' do
let(:args) { ['--report', '--report=long', FIXTURES] }

it 'shows a report with recognized and unrecognized files' do
expect { subject }.to output(/Recognized files\s+: 3\n.+Unrecognized files\s+: 3/).to_stdout
end
end

context 'with --report=short flag' do
let(:args) { ['--report=short', FIXTURES] }

it 'shows a report with unrecognized files' do
expect { subject }.to output(/Unrecognized files\s+: 3/).to_stdout
it 'shows a brief report' do
expect { subject }.to output(/Folders: \d+, Files: \d+\./).to_stdout
end
end

Expand Down
3 changes: 3 additions & 0 deletions test/checks
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ OK colorls --color=never
OK colorls --color=always
OK colorls --tree spec
OK colorls --tree=1
OK colorls --report
OK colorls --report=long
OK colorls --report=short

LC_ALL=C OK colorls spec/fixtures/
LC_ALL=C OK colorls --git spec/fixtures/
Expand Down

0 comments on commit 1f2c7ee

Please # to comment.