class DataSanity::Output
Constants
- OPTIONS
Attributes
csv_file[RW]
option[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/data_sanity/output.rb, line 8 def initialize options = {} raise Exception.new("This options to output the result of inspector is not valid") unless OPTIONS.include?(options[:option]) self.option = options[:option] @count = 0 if self.option == :csv self.csv_file = FasterCSV.open("#{Rails.root}/tmp/data_inspector.csv", 'w') self.csv_file.add_row ['table_name', 'table_primary_key', 'primary_key_value', 'validation_errors'] end end
Public Instance Methods
close()
click to toggle source
# File lib/data_sanity/output.rb, line 22 def close self.csv_file.close_write if self.csv_file end
create_from(model, instance, exception = nil)
click to toggle source
# File lib/data_sanity/output.rb, line 18 def create_from model, instance, exception = nil send("store_to_#{self.option}", model, instance, exception) end
end_log()
click to toggle source
# File lib/data_sanity/output.rb, line 30 def end_log puts "==> Inspection completed and found #{@count} validation(s) defaulters" end
start_log(model)
click to toggle source
# File lib/data_sanity/output.rb, line 26 def start_log model puts "==> Inspecting :: " + model.to_s end
Private Instance Methods
store_to_csv(model, instance, exception)
click to toggle source
# File lib/data_sanity/output.rb, line 43 def store_to_csv model, instance, exception self.csv_file.add_row [model.to_s, model.primary_key, instance.send(model.primary_key), ( exception || instance.errors.full_messages.to_sentence) ] @count += 1 end
store_to_table(model, instance, exception)
click to toggle source
# File lib/data_sanity/output.rb, line 35 def store_to_table model, instance, exception DataInspector.create(:table_name => model.to_s, :table_primary_key => model.primary_key, :primary_key_value => instance.send(model.primary_key), :validation_errors => (exception || instance.errors.full_messages.to_yaml)) @count += 1 end