class Slurpee::CSV

Attributes

data[RW]
key_order[RW]
row_count[RW]

Public Class Methods

new(keys) click to toggle source

create

# File lib/slurpee/csv.rb, line 6
def initialize(keys)
  @data = {}
  @key_order = {}
  @row_count = 0

  keys.each_with_index do |key, i|
    @key_order[i] = key
    @data[key] = []
  end
end

Public Instance Methods

column(index) click to toggle source

O(1) read

# File lib/slurpee/csv.rb, line 31
def column(index)
  @data[index]
end
new_row!(params) click to toggle source

O(k) update

# File lib/slurpee/csv.rb, line 37
def new_row!(params)
  @key_order.each do |k, v|
    @data[v] << (params[v].nil?? "" : params[v])
  end

  @row_count+=1
end
row(index) click to toggle source

O© ugh fix read

# File lib/slurpee/csv.rb, line 19
def row(index)
  row_str = ""

  @data.each do |j, w|
    row_str << "#{w[index]}, "
  end

  row_str
end
rows() click to toggle source

O(cr) ugh super fix plz show

# File lib/slurpee/csv.rb, line 47
def rows
  rows = []

  (0..@row_count).each do |i|
    rows << row(i)
  end

  rows
end