Sha256: f7b981b5ef6c0442907dd5319bb48df363db42898a65f13c652edeb5a5e60f1e

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

module Csvlint
  
  module ErrorCollector
      
    def build_message(type, category, row, column, content, constraints)
      Csvlint::ErrorMessage.new({
                                  :type => type,
                                  :category => category,
                                  :row => row,
                                  :column => column,
                                  :content => content,
                                  :constraints => constraints
                                })
    end
    
    MESSAGE_LEVELS = [
      :errors,
      :warnings,
      :info_messages
    ]
    
    MESSAGE_LEVELS.each do |level|
      
      attr_reader level
      
      define_method "build_#{level}" do |type, category = nil, row = nil, column = nil, content = nil, constraints = {}|
        instance_variable_get("@#{level}") << build_message(type, category, row, column, content, constraints)
      end
      
    end
    
    def valid?
      errors.empty?
    end
    
    def reset
      MESSAGE_LEVELS.each do |level|
        instance_variable_set("@#{level}", [])
      end
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
csvlint-0.0.1 lib/csvlint/error_collector.rb