Sha256: 6c16c45a48fee8c1b6ede37afadc86243471979735dd57dd6633ff7a72533afe

Contents?: true

Size: 1.73 KB

Versions: 5

Compression:

Stored size: 1.73 KB

Contents

module Usman
	class ErrorHash

		require 'colorized_string'

		attr_accessor :warnings,
	                :errors

	  def initialize
	  	@warnings = []
	    @errors = []
	  end

	  def warnings?
	  	@warnings.any?
	  end

	  def errors?
	  	@errors.any?
	  end

	  def print_dot
	  	if self.warnings?
        print ".".yellow
      elsif self.errors?
        print ".".red
      else
        print ".".green
      end
	  end

	  def print_all
	  	self.warnings.each do |item|
        puts "Summary: #{item[:summary]}".yellow
        puts "Details: #{item[:details]}".yellow if item[:details]
        puts "Stack Trace: #{item[:stack_trace]}".yellow if item[:stack_trace]
        puts ""
	  	end
	  	self.errors.each do |item|
        puts "Summary: #{item[:summary]}".red
        puts "Details: #{item[:details]}".red if item[:details]
        puts "Stack Trace: #{item[:stack_trace]}".red if item[:stack_trace]
        puts ""
	  	end
	  end
	end

	module ImportErrorHandler
		def import_from_csv(dummy=true, verbose=true)
    
	    if dummy
	      folder_path = "/import_data/dummy/"
	    else
	      folder_path = "/import_data/"
	    end

	    base_path = File.expand_path('../../../../db/', __FILE__) + folder_path
	    csv_path = File.expand_path(base_path + "#{self.table_name}.csv")

	    csv_table = CSV.table(csv_path, {headers: true, converters: nil, header_converters: :symbol})
	    headers = csv_table.headers

	    errors = []

	    csv_table.each do |row|
	      error_object = save_row_data(row, base_path)
	      errors << error_object if error_object
	      error_object.print_dot if error_object
	    end

	    if verbose
	      puts ""
	      errors.each do |error_object|
	        error_object.print_all if error_object
	      end
	    end
	  end
	end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
usman-0.1.5 lib/usman/extras/import_error_handler.rb
usman-0.1.4 lib/usman/extras/import_error_handler.rb
usman-0.1.3 lib/usman/extras/import_error_handler.rb
usman-0.1.2 lib/usman/extras/import_error_handler.rb
usman-0.1.1 lib/usman/extras/import_error_handler.rb