Class: Fastererer::Statistics

Inherits:
Object
  • Object
show all
Defined in:
lib/fastererer/file_traverser.rb

Instance Method Summary collapse

Constructor Details

#initialize(traverser) ⇒ Statistics

Returns a new instance of Statistics.



139
140
141
142
143
# File 'lib/fastererer/file_traverser.rb', line 139

def initialize(traverser)
  @files_inspected_count  = traverser.scannable_files.count
  @offenses_found_count   = traverser.offenses_total_count
  @unparsable_files_count = traverser.parse_error_paths.count
end

Instance Method Details

#inspected_files_outputObject



153
154
155
156
157
# File 'lib/fastererer/file_traverser.rb', line 153

def inspected_files_output
  Painter.paint(
    "#{@files_inspected_count} #{pluralize(@files_inspected_count, 'file')} inspected", :green
  )
end

#offenses_found_outputObject



159
160
161
162
163
164
165
# File 'lib/fastererer/file_traverser.rb', line 159

def offenses_found_output
  color = @offenses_found_count.zero? ? :green : :red

  Painter.paint(
    "#{@offenses_found_count} #{pluralize(@offenses_found_count, 'offense')} detected", color
  )
end

#pluralize(count, singular, plural = nil) ⇒ Object



176
177
178
179
180
181
182
183
184
# File 'lib/fastererer/file_traverser.rb', line 176

def pluralize(count, singular, plural = nil)
  if count == 1
    singular.to_s
  elsif plural
    plural.to_s
  else
    "#{singular}s"
  end
end

#to_sObject



145
146
147
148
149
150
151
# File 'lib/fastererer/file_traverser.rb', line 145

def to_s
  [
    inspected_files_output,
    offenses_found_output,
    unparsable_files_output
  ].compact.join(', ')
end

#unparsable_files_outputObject



167
168
169
170
171
172
173
174
# File 'lib/fastererer/file_traverser.rb', line 167

def unparsable_files_output
  return if @unparsable_files_count.zero?

  Painter.paint(
    "#{@unparsable_files_count} unparsable #{pluralize(@unparsable_files_count, 'file')} found",
    :red
  )
end