Class: Slurpee::CSV

Inherits:
Object
  • Object
show all
Defined in:
lib/slurpee/csv.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(keys) ⇒ CSV

create



6
7
8
9
10
11
12
13
14
15
# 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

Instance Attribute Details

#dataObject

Returns the value of attribute data.



3
4
5
# File 'lib/slurpee/csv.rb', line 3

def data
  @data
end

#key_orderObject

Returns the value of attribute key_order.



3
4
5
# File 'lib/slurpee/csv.rb', line 3

def key_order
  @key_order
end

#row_countObject

Returns the value of attribute row_count.



3
4
5
# File 'lib/slurpee/csv.rb', line 3

def row_count
  @row_count
end

Instance Method Details

#column(index) ⇒ Object

O(1) read



31
32
33
# File 'lib/slurpee/csv.rb', line 31

def column(index)
  @data[index]
end

#new_row!(params) ⇒ Object

O(k) update



37
38
39
40
41
42
43
# 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) ⇒ Object

O© ugh fix read



19
20
21
22
23
24
25
26
27
# 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

#rowsObject

O(cr) ugh super fix plz show



47
48
49
50
51
52
53
54
55
# File 'lib/slurpee/csv.rb', line 47

def rows
  rows = []

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

  rows
end