NamedColumnsParser   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 2
c 2
b 0
f 0
dl 0
loc 19
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A parse() 0 17 2
1
require 'csv'
2
3
module Koine
4
  module Csv
5
    class NamedColumnsParser < CsvParser
6
      def parse(contents, &block)
7
        options = parser_options.merge({ headers: true })
8
        csv = CSV.parse(contents, options)
9
        column_names = csv.headers
10
        collection = []
11
12
        csv.each do |line|
13
          element = {}
14
          column_names.each do |name|
15
            element[name] = line[name]
16
          end
17
          collection << element
18
        end
19
20
        return collection.each(&block) if block
21
        collection
22
      end
23
    end
24
  end
25
end
26