class Solr::Importer::DelimitedFileSource

For files with the first line containing field names Currently not designed for enormous files, as all lines are read into an array

Public Class Methods

new(filename, splitter=/\t/) click to toggle source
# File lib/solr/importer/delimited_file_source.rb, line 19
def initialize(filename, splitter=/\t/)
  @filename = filename
  @splitter = splitter
end

Public Instance Methods

each() { |data| ... } click to toggle source
# File lib/solr/importer/delimited_file_source.rb, line 24
def each
  lines = IO.readlines(@filename)
  headers = lines[0].split(@splitter).collect{|h| h.chomp}
  
  lines[1..-1].each do |line|
    data = headers.zip(line.split(@splitter).collect{|s| s.chomp})
    def data.[](key)
      self.assoc(key.to_s)[1]
    end
    
    yield(data)
  end
end