Class: Oolite::CSVDoc

Inherits:
Object
  • Object
show all
Defined in:
lib/oolite/csv_doc.rb

Instance Method Summary collapse

Instance Method Details

#add(line = []) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/oolite/csv_doc.rb', line 17

def add line = []
  new_line = Array.new

  Array(line).each do |elem|
    if elem.include?(',')
      # Quote element if it contains a comma
      new_line << "\"#{elem}\""
    else
      new_line << elem
    end
  end

  lines << new_line
end

#linesObject



13
14
15
# File 'lib/oolite/csv_doc.rb', line 13

def lines
  @lines ||= Array.new
end

#pad_linesObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/oolite/csv_doc.rb', line 44

def pad_lines
  max = 0
  lines.each do |line|
    len = line.count
    if len > max
      max = len
    end
  end

  padded_lines = Array.new
  lines.each do |line|
    if line.count < max
      pads = max = line.count
      pads.times.each do
        line << ''
      end
    end
    padded_lines << line
  end

  @lines = padded_lines
end

#write(filepath) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/oolite/csv_doc.rb', line 32

def write filepath
  pad_lines
  output_lines = Array.new
  lines.each do |line|
    output_lines << line.join(',')
  end

  File.open(filepath, 'w') do |f|
    f.write(output_lines.join("\n"))
  end
end