class ActiveAdminImporter::CsvFile
Constants
- CSV_READ_OPTIONS
Public Class Methods
new(descriptor)
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 12 def initialize(descriptor) @descriptor = descriptor end
read(path)
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 8 def self.read(path) new(::File.new(path)) end
Public Instance Methods
__getobj__()
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 16 def __getobj__ @descriptor end
each_row(&block)
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 20 def each_row(&block) ::CSV.parse(self, CSV_READ_OPTIONS, &block) end
find_row_by_number(number)
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 24 def find_row_by_number(number) result = ::CSV.foreach(self, CSV_READ_OPTIONS).with_index do |row, i| return row if i == number - 1 end result end
headers()
click to toggle source
# File lib/active_admin_importer/csv_file.rb, line 32 def headers @headers ||= ::CSV.open(@descriptor, 'r') { |csv| csv.first } end
md5()
click to toggle source
read file in chunks for memory efficiency
# File lib/active_admin_importer/csv_file.rb, line 37 def md5 @md5 ||= ::File.open(@descriptor, "rb") do |io| _md5 = ::Digest::MD5.new buffer = "" _md5.update(buffer) while io.read(4096, buffer) _md5 end end