class ActiveMocker::DisplayErrors
Attributes
errors[R]
failed_models[RW]
model_count[R]
out[R]
success_count[RW]
Public Class Methods
new(model_count, out: STDERR)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 8 def initialize(model_count, out: STDERR) @errors = [] @success_count = 0 @model_count = model_count @failed_models = [] @out = out end
Public Instance Methods
add(errors)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 16 def add(errors) @errors.concat([*errors]) end
any_errors?()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 32 def any_errors? uniq_errors.count > 0 end
display_errors()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 36 def display_errors uniq_errors.each do |e| next unless ENV["DEBUG"] || !(e.level == :debug) display_verbosity_three(e) || display_verbosity_two(e) end display_verbosity_one end
error_summary()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 46 def error_summary display "errors: #{error_count}, warn: #{warn}, info: #{info}" display "Failed models: #{failed_models.join(", ")}" if failed_models.count > 0 end
number_models_mocked()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 51 def number_models_mocked if success_count < model_count || any_errors? display "Mocked #{success_count} ActiveRecord #{plural("Model", success_count)} out of #{model_count} #{plural("file", model_count)}." end end
uniq_errors()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 28 def uniq_errors @uniq_errors ||= errors.flatten.compact.uniq.sort_by(&:class_name) end
wrap_an_exception(e, model_name)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 24 def wrap_an_exception(e, model_name) add ErrorObject.build_from(exception: e, class_name: model_name) end
wrap_errors(errors, model_name, type: nil)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 20 def wrap_errors(errors, model_name, type: nil) add errors.map { |e| ErrorObject.build_from(object: e, class_name: model_name, type: type ? type : e.try(:type)) } end
Private Instance Methods
display(msg)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 63 def display(msg) out.puts(msg) end
display_error_header(e)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 91 def display_error_header(e) display "#{e.class_name} has the following errors:" display e.message.colorize(e.level_color) end
display_original_error(e)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 76 def display_original_error(e) original = e.original_error return unless original display original.message.colorize(e.level_color) display original.backtrace display original.class.name.colorize(e.level_color) end
display_verbosity_one()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 96 def display_verbosity_one return unless ActiveMocker::Config.error_verbosity > 0 error_summary if any_errors? number_models_mocked return unless any_errors? display "To see more/less detail set ERROR_VERBOSITY = 0, 1, 2, 3" end
display_verbosity_three(error)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 67 def display_verbosity_three(error) return unless ActiveMocker::Config.error_verbosity == 3 display_error_header(error) display error.level display_original_error(error) end
display_verbosity_two(e)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 85 def display_verbosity_two(e) return unless ActiveMocker::Config.error_verbosity == 2 display_error_header(e) end
error_count()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 107 def error_count errors_for(:red) end
errors_for(level)
click to toggle source
# File lib/active_mocker/display_errors.rb, line 119 def errors_for(level) uniq_errors.count { |e| [level].include? e.level_color } end
info()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 115 def info errors_for(:default) end
plural(string, count, plural="s")
click to toggle source
# File lib/active_mocker/display_errors.rb, line 59 def plural(string, count, plural="s") count > 1 || count.zero? ? "#{string}#{plural}" : string end
warn()
click to toggle source
# File lib/active_mocker/display_errors.rb, line 111 def warn errors_for(:yellow) end