Skip to content

Instantly share code, notes, and snippets.

@TrevorS
Created May 27, 2014 13:26
Show Gist options
  • Save TrevorS/ddedeaa3439ca86c20fe to your computer and use it in GitHub Desktop.
Save TrevorS/ddedeaa3439ca86c20fe to your computer and use it in GitHub Desktop.
namespace :db do
desc "Injects a Ciber file into the database."
task :load_ciber_data, [:file_name] => :environment do |t, args|
require 'csv'
records = []
CSV.foreach("#{args.file_name}", {:col_sep => "|", :headers => true}) do |row|
record = CiberRecord.new
record.return_code = row[1].strip unless row[1].nil?
record.ciber_record_return_reason_code = row[2].strip unless row[2].nil?
record.invalid_field_identifier = row[3].strip unless row[3].nil?
record.home_carrier_sid = row[4].strip unless row[4].nil?
record.msid_indicator = row[5].strip unless row[5].nil?
record.msid = row[6].strip unless row[6].nil?
record.msisdn_mdn = row[8].strip unless row[8].nil?
record.esn_uimid_imei_meid_indicator = row[9].strip unless row[9].nil?
record.esn_uimid_imei_meid = row[10].strip unless row[10].nil?
record.serving_carrier_sid = row[11].strip unless row[11].nil?
record.total_charges_and_taxes = row[12].strip unless row[12].nil?
record.total_state_province_taxes = row[14].strip unless row[14].nil?
record.local_other_taxes = row[16].strip unless row[16].nil?
record.call_date = row[18].strip unless row[18].nil?
record.call_direction = row[19].strip unless row[19].nil?
record.call_completion_indicator = row[20].strip unless row[20].nil?
record.call_termination_indicator = row[21].strip unless row[21].nil?
record.caller_id = row[23].strip unless row[23].nil?
record.called_number_digits = row[25].strip unless row[25].nil?
record.location_routing_number = row[27].strip unless row[27].nil?
record.tldn = row[29].strip unless row[29].nil?
record.currency_type = row[30].strip unless row[30].nil?
record.original_batch_sequence_number = row[32].strip unless row[32].nil?
record.initial_cell_site = row[33].strip unless row[33].nil?
record.time_zone_indicator = row[34].strip unless row[34].nil?
record.daylight_savings_indicator = row[35].strip unless row[35].nil?
record.message_accounting_digits = row[36].strip unless row[36].nil?
record.air_connect_time = row[37].strip unless row[37].nil?
record.air_chargeable_time = row[38].strip unless row[38].nil?
record.air_elapsed_time = row[39].strip unless row[39].nil?
record.air_rate_period = row[40].strip unless row[40].nil?
record.air_multi_rate_period = row[41].strip unless row[41].nil?
record.air_charge = row[42].strip unless row[42].nil?
record.other_charge_1_indicator = row[44].strip unless row[44].nil?
record.other_charge_1 = row[45].strip unless row[45].nil?
record.printed_call = row[48].strip unless row[48].nil?
record.fraud_indicator = row[49].strip unless row[49].nil?
record.fraud_sub_indicator = row[50].strip unless row[50].nil?
record.special_features_used = row[51].strip unless row[51].nil?
record.called_place = row[52].strip unless row[52].nil?
record.called_state_province = row[53].strip unless row[53].nil?
record.called_country = row[54].strip unless row[54].nil?
record.serving_place = row[55].strip unless row[55].nil?
record.serving_state_province = row[56].strip unless row[56].nil?
record.serving_country = row[57].strip unless row[57].nil?
record.toll_connect_time = row[58].strip unless row[58].nil?
record.toll_chargeable_time = row[59].strip unless row[59].nil?
record.toll_elapsed_time = row[60].strip unless row[60].nil?
record.toll_tariff_descriptor = row[61].strip unless row[61].nil?
record.toll_rate_period = row[62].strip unless row[62].nil?
record.toll_multi_rate_period = row[63].strip unless row[63].nil?
record.toll_rate_class = row[64].strip unless row[64].nil?
record.toll_rating_point = row[66].strip unless row[66].nil?
record.toll_charge = row[67].strip unless row[67].nil?
record.toll_state_province_taxes = row[69].strip unless row[69].nil?
record.toll_local_taxes = row[71].strip unless row[71].nil?
record.toll_network_carrier_id = row[73].strip unless row[73].nil?
records << record
end
CiberRecord.import records
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment