Class: CSVUtils::CSVWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/csv_utils/csv_wrapper.rb

Overview

Wraps a CSV object, if wrapper opens the csv file it will close it

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(csv, mode, csv_options) ⇒ CSVWrapper

Returns a new instance of CSVWrapper.



5
6
7
# File 'lib/csv_utils/csv_wrapper.rb', line 5

def initialize(csv, mode, csv_options)
  open(csv, mode, csv_options)
end

Instance Attribute Details

#csvObject (readonly)

Returns the value of attribute csv.



3
4
5
# File 'lib/csv_utils/csv_wrapper.rb', line 3

def csv
  @csv
end

Class Method Details

.open(file, mode, csv_options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/csv_utils/csv_wrapper.rb', line 9

def self.open(file, mode, csv_options = {})
  csv = new(file, mode, csv_options)

  if block_given?
    yield csv
    csv.close
  else
    csv
  end
end

Instance Method Details

#<<(row) ⇒ Object



30
31
32
# File 'lib/csv_utils/csv_wrapper.rb', line 30

def <<(row)
  csv << row
end

#closeObject



42
43
44
# File 'lib/csv_utils/csv_wrapper.rb', line 42

def close
  csv.close if close_when_done?
end

#open(csv, mode, csv_options) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/csv_utils/csv_wrapper.rb', line 20

def open(csv, mode, csv_options)
  if csv.is_a?(String)
    @close_when_done = true
    @csv = CSV.open(csv, mode, **csv_options)
  else
    @close_when_done = false
    @csv = csv
  end
end

#rewindObject



38
39
40
# File 'lib/csv_utils/csv_wrapper.rb', line 38

def rewind
  csv.rewind
end

#shiftObject



34
35
36
# File 'lib/csv_utils/csv_wrapper.rb', line 34

def shift
  csv.shift
end