Module: Jcsv::Headerless

Defined in:
lib/reader.rb

Overview

Instance Method Summary collapse

Instance Method Details

#filters=(filters) ⇒ Object





122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/reader.rb', line 122

def filters=(filters)
  
  case filters
  when Hash
    raise MissingHeadersError.new("CSV file does not have headers.  Cannot match filters with headers")
  when Array
    @filters = []

    # Add method 'values' to filters so that it behaves as a hash and works the same
    # as headed csv files
    def @filters.values
      self
    end
    
    filters.each_with_index do |processor, i|
      @filters[i] = processor
    end
  else
    raise ArgumentError.new("Filters parameters should be an array of filters")
  end
  
end

#parse_with_block(&block) ⇒ Object





149
150
151
152
153
154
155
# File 'lib/reader.rb', line 149

def parse_with_block(&block)
  
  while (!((chunk = read_chunk).nil?))
    block.call(@reader.getLineNumber(), @reader.getRowNumber(), format(chunk), nil)
  end

end